每日一问:如何安装和升级一个RPM软件包?

文章作者 100test 发表时间 2007:03:14 16:54:27
来源 100Test.Com百考试题网


如何安装和升级一个RPM软件包?
解决方法:

为了安装一个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来安装一个新的软件包,这些软件包位于红帽网络中,可以实现自动下载并安装。



相关文章


每日一问:如何把一个Linux系统加入一个Windows2000_2003的活动目录域?
每日一问:如何安装和升级一个RPM软件包?
每日一问:忘记了root密码,如何进入系统?
如何搭建安全的Linux操作系统平台
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛