Fedora教程

使用 RPM 命令更新软件包

更新 (Freshening) 选项 与升级 (Upgrading) 选项十分相似,唯一的不同是 -F 选项只会更新系统中已安装的软件包,对于没有安装的软件包,不会像 -U 选项那样,直接对其进行安装。

更新 (Freshening) 选项 与升级 (Upgrading) 选项十分相似,唯一的不同是 -F 选项只会更新系统中已安装的软件包,对于没有安装的软件包,不会像 -U 选项那样,直接对其进行安装。

~]# rpm -Fvh foo-2.0-1.fc12.x86_64.rpm

RPM 的 -F 选项会对比已安装的软件包的版本和要提供的软件包的版本,如果提供的软件包的版本更新,RPM 则执行升级操作。但当系统中没有安装某软件包的老版本时, -F 选项不会安装软件包 (-U 选项会执行安装操作)。

以下是一个使用 -F 选项的场合。比如你得到一张新的软件包光盘,你想对系统中的软件包做一次大面积地更新,却又不想安装那些光盘中有,而系统中没有安装的软件包。使用 -F 选项,就能做到只对安装的软件包进行更新。

~]# rpm -Fvh *.rpm

使用 RPM 命令升级软件包

升级软件包与安装软件包的命令十分相似,只是升级使用 -U 选项,而安装是使用 -i 选项。当系统中没有安装先前版本的软件包时,-U 选项则会执行安装的操作。

升级软件包与安装软件包的命令十分相似,只是升级使用 -U 选项,而安装是使用 -i 选项。

假设名为 tree-1.5.3.0-1.fc12.x86_64.rpm 的软件名位于当前目录,并且我们已经在系统中安装了名为 tree-1.5.2.2-4.fc12.x86_64.rpm 的软件包,我们则可以通过以下命令对软件包进行升级

~]# rpm -Uvh tree-1.5.3.0-1.fc12.x86_64.rpm

作为升级软件包进程的一部分,RPM 会自动卸载之前老版本的 tree 软件包。当系统中没有安装先前版本的软件包时,-U 选项则会执行安装的操作。因此使用 -U 选项,即能够安装,也能够升级软件包。

使用 RPM 安装软件包的常见问题

使用 RPM 命令安装软件包的常见问题包括:软件包已经被安装、文件冲突,以及未被解析的软件包依赖性。

软件包已经被安装

如果某个名称和版本号都相同的软件包已经被安装在系统中,在使用 rpm 命令进行安装时则会输出以下信息,提示你软件已经被安装 (already installed)

Preparing...                ########################################### [100%]
 package tree-1.5.2.2-4.fc12.x86_64 is already installed

使用 --replacepkgs 选项让 RPM 忽略上述错误信息,执行软件包的覆盖安装。

使用 RPM 命令卸载软件包

使用 RPM 卸载软件包十分简单,只需要通过命令行中输入 rpm -e <package_name> 即可,对于未解决依赖性的软件包,可以使用 --provides 选项可以查询文件所需的软件包

使用 RPM 卸载软件包十分简单,只需要通过命令行中输入 rpm -e <package_name> 即可

~]# rpm -e foo
 注意:卸载软件包时,只需要提供软件包的名称即可,即 foo,使用 RPM 软件包的全名 (foo-1.0-1.fc12.x86_64) 则会提示“错误的软件包”。

如果你要卸载的软件包被其它软件包所依赖,系统则会提示"依赖性错误"

使用 RPM 命令安装软件包

输入以下命令即可执行软件包的安装了,其中 -i 选择告诉 rpm 执行安装操作,v 和 h 选项不是必须的,它们的功能是用于显示一些输出信息和安装进程。

RPM 软件包的文件名称通常像 tree-1.5.2.2-4.fc12.x68_64.rpm。这个文件名中包含了软件包名称 (tree),版本号 (1.5.2.2),发行版 (4),操作系统主版本 (fc12) 以及 CPU 平台 (x86_64)。假设 tree-1.5.2.2-4.fc12.x86_64.rpm 软件包位于当前目录,在命令行中切换到 root 用户,输入以下命令即可执行软件包的安装了

rpm -ivh tree-1.5.2.2-4.fc12.x86_64.rpm

其中 -i 选择告诉 rpm 执行安装(install)操作,v 和 h 选项不是必须的,它们的功能是用于显示一些输出信息和安装进程。

另外,你也能够使用 -U 选项来升级 (或安装) 软件包

取得 RPM 软件包

RPM 一共有五个基本操作模式:安装、卸载、升级、查询和验证 。当然封装也算 RPM 的一大功能,但大众用户很少会用到。从本节开始,将逐个介绍 RPM 的五个基本操作模式。

RPM 一共有五个基本操作模式:安装、卸载、升级、查询和验证 。当然封装也算 RPM 的一大功能,但大众用户很少会用到。从本节开始,将逐个介绍 RPM 的五个基本操作模式。

有关 rpm 命令的用法、选项和参数的作用,可使用 rpm --help 或 man rpm 命令查看。也可以从《有关 RPM 的附加资源》中寻找有关 RPM 的参考信息。

 

获取 RPM 软件包

在使用任何 RPM 软件包之前,你必须先要知道从哪里能够取得它们。除了能从 Fedora 官方的软件包仓库取得由 Fedora 项目组创建的 RPM 软件包,也还能够通过互联网能够找到许多 RPM 软件包仓库,以及一些 RPM 软件包下载站点。
以下是常用来寻找 RPM 软件包的位置:

RPM 软件包管理工具的设计意图

理解 RPM 的设计意图,有利于帮助你了解如何使用 RPM,以及 RPM 的某些功能是如何实现的,在这个基本上,方便你更好的使用它对系统中的 RPM 软件包进行管理和维护。

理解 RPM 的设计意图,有利于帮助你了解如何使用 RPM,以及 RPM 的某些功能是如何实现的,在这个基本上,方便你更好的使用它对系统中的 RPM 软件包进行管理和维护。

可升级性:
使用 RPM,你能够单独的升级系统上某个单独的组件,而无需重新安装整个软件包或者整个系统。当你取得一个基于 RPM 软件格式的新操作系统 (如 Fedora ) 的发行版时,你无需在机器上重新安装一个 Fedora 操作系统,RPM 能够聪明地、全自动化地为你升级系统。并且,所有软件包配置文件中的自定义设置都将被保留。
RPM 软件包既可用于安装,也可用于升级软件包,如果你要升级某个软件包,只需获得最新的 rpm 软件包就行了。

RPM 使用教程

RPM 软件包管理器是一套开放的软件包封装机制,除了 Fedora,在其它 Linux 和 Unix 操作系统上同样能够使用 RPM。红帽公司 (Red Hat, Inc.) 及 Fedora 项目组也建议其它软件厂商使用 RPM 来封装它们的产品。

RPM 软件包管理器是一套开放的软件包封装机制,除了 Fedora,在其它 Linux 和 Unix 操作系统上同样能够使用 RPM。红帽公司 (Red Hat, Inc.) 及 Fedora 项目组也建议其它软件厂商使用 RPM 来封装它们的产品。

RPM 基于 GPL (GNU 通用公共许协议) 发布的软件产品。

RPM 软件包管理器只能管理以 RPM 形式封装的软件包,并且 RPM 本身也是一个预先安装好的 rpm 形式的软件包。

对于终端用户而言,RPM 使得系统升级变得十分容易,同时只需要十分简单的命令就能完成 RPM 软件包的安装、卸载和升级。

RPM 为已安装的软件包,以及软件包所包含的文件建立了一份数据库,因此,你能够在系统上使用调用非常强大的请求和验证功能。

如果你更喜欢图形界面而不是命令行,你可以使用 PackageKit,详细信息请参考《PackageKit》

常用 Yum 插件介绍

一般而言,Yum 插件软件包的名称都遵寻 yum-plugin-<plugin_name> 这样的格式,但也并非所有的插件都是如此,例如 presto 插件的软件包名称是 yum-presto。

一般而言,Yum 插件软件包的名称都遵寻 yum-plugin-<plugin_name> 这样的格式,但也并非所有的插件都是如此,例如 presto 插件的软件包名称是 yum-presto。

在对常用的 Yum 插件进行介绍之前,还是先向你说明如何安装 Yum 插件。实际上,安装 Yum 插件十分简单,就和安装其它软件一样,例如要安装 yum-plugin-security 插件,只需执行以下命令即可。

启用、配置及禁用 Yum 插件

通过安装 Yum 插件,能够扩展及加强 Yum 的功能。当你使用 yum 命令的时候,yum 总是会向你显示已启用的插件信息。

通过安装 Yum 插件,能够扩展及加强 Yum 的功能。当你使用 yum 命令的时候,yum 总是会向你显示已启用的插件信息。

[lugir@hope ~]$ yum info yum
已加载插件:presto, refresh-packagekit, security
...
注意:跟在 “已加载插件”(Loaded plugins) 后面的就是插件名称,你可以通过使用
--disableplugins=<plugin_name> 禁用指定的插件。

要启用 yum 插件,确认 /etc/yum.conf 配置文件的 [main] 片段中存在以 plugins=1 的选项

plugins=1

将 plugins 的值设置为 0 即可禁用 yum 插件。

页面