为了安装一个RPM包,你必须有希望安装的软件的RPM包。你可以从一个网站来下载相应的RPM包,当然红帽网络提供在我们发行版中所有的软件包。有两个主要的选项用来安装和升级RPM软件包:
-i 用于安装一个新的软件包。经常用于内核的升级和安装 -U 用于升级一个RPM包,如果这个软件包在你系统的RPM数据库中不存在,它将安装这个软件包。
你可以在命令行上输入man rpm来得到详细的使用方法和选项的说明。这里是关于-i和-U选项的说明。
INSTALL AND UPGRADE OPTIONS
The general form of an rpm install command is
rpm {-i|--install} [install-options] PACKAGE_FILE ...
This installs a new package.
The general form of an rpm upgrade command is
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
This install the package or upgrades the package currently installed to a newer version. This is the same as install, except all other version(s) of the package are removed after the new package is installed.
注:这些例子假设这些软件包在你系统的一个目录中。下面的RPM命令在你存放新的RPM包的当前工作路径下执行。
我们使用-i选项来安装一个RPM软件包。正如我们上面提到的,升级内核必须用-i来安装,系统会同时有多个内核,防止新内核无法启动时导致无法进入系统,万一当新核心不能启动的时候,你可以选择启动原有的核心。
在这个例子中,我们首先使用ls命令检查新的RPM软件包的名字。然后查询RPM数据库检查哪个核心的软件包已经安装了。 在查询的时候不需要指定版本号,直接使用:rpm -q <软件包的名字>。我们可以使用下面的命令来安装一个RPM包:rpm -ivh <软件包的名字>. 其中-v选项表示详细输出,-h选项显示井号表示,来代表安装的进展情况。最后,我们可以运行另一个RPM查询命令来验证这个软件包是否存在。
# ls kernel-2.4.21-15.0.3.EL.i686.rpm kernel-smp-2.4.21-15.0.3.EL.i686.rpm # rpm -q kernel; rpm -q kernel-smp kernel-2.4.21-4.0.1.EL kernel-2.4.21-15.0.2.EL kernel-smp-2.4.21-4.0.1.EL kernel-smp-2.4.21-15.0.2.EL # rpm -ivh kernel-2.4.21-15.0.3.EL.i686.rpm Preparing... ########################################### [100%] 1:kernel ########################################### [100%] # rpm -ivh kernel-smp-2.4.21-15.0.3.EL.i686.rpm Preparing... ########################################### [100%] 1:kernel-smp ########################################### [100%] # rpm -q kernel; rpm -q kernel-smp kernel-2.4.21-4.0.1.EL kernel-2.4.21-15.0.2.EL kernel-2.4.21-15.0.3.EL kernel-smp-2.4.21-4.0.1.EL kernel-smp-2.4.21-15.0.2.EL kernel-smp-2.4.21-15.0.3.EL
我们可以使用-U选项来升级一个RPM软件包。在这个例子中,我们使用ls命令来检验新的软件包的名字。然后运行查询命令rpm -q <软件包>来检查这个将要安装的软件报是否存在在RPM数据库中。使用rpm -Uvh <软件包>来升级RPM包。
其中-v选项表示详细输出,-h选项显示井号表示,来代表安装的进展情况。
最后,我们可以运行另一个RPM查询命令来验证这个软件包是否存在。
# ls httpd-2.0.46-32.ent.3.i386.rpm mod_ssl-2.0.46-32.ent.3.i386.rpm |# rpm -q httpd; rpm -q mod_ssl httpd-2.0.46-32.ent mod_ssl-2.0.46-32.ent # rpm -Uvh httpd-2.0.46-32.ent.3.i386.rpm mod_ssl-2.0.46-32.ent.3.i386.rpm Preparing... ########################################### [100%] 1:httpd ########################################### [ 50%] 2:mod_ssl ########################################### [100%] # rpm -q httpd; rpm -q mod_ssl httpd-2.0.46-32.ent.3 mod_ssl-2.0.46-32.ent.3 注:由于依赖关系httpd和mod_ssl需要同时安装。否则你就会得到下面的错误: # rpm -Uvh httpd-2.0.46-32.ent.3.i386.rpm error: Failed dependencies: httpd = 2.0.46-32.ent is needed by (installed) mod_ssl-2.0.46-32.ent
注:你如果已经通过红帽网络注册了你的机器,你可以使用up2date来安装一个新的软件包,这些软件包位于红帽网络中,可以实现自动下载并安装。