找回密码
 注册
搜索
热搜: 回贴
微赢网络技术论坛 门户 服务器 Linux/BSD 查看内容

使用 RPM 来管理软件包

2009-12-20 13:43| 发布者: admin| 查看: 69| 评论: 0|原作者: 飞燕

RPM
软件包管理器(RPM)是开放打包系统,任何人都可以使用。它在 Red Hat Linux,以及其它 Linux 和 UNIX
系统上运行。Red Hat, Inc. 鼓励其它销售商在他们自己的产品上使用 RPM 技术。RPM 按照 GPL 条款被发行。
对于终端用户来说,RPM 简化了系统更新。安装、卸载、升级 RPM 软件包可以使用简短的命令就可完成。RPM 维护一个已安装软件包和它们的文件的数据库,因此,你可以在系统上使用功能强大的查询和校验。
对于开发者来说,RPM允许你把软件编码和程序打包,然后提供给终端用户。这个进程非常简单,它能从你创建的单个文件或补丁中驱动。这种对你的“纯净”源码、补丁和建构指令的清晰描述减轻了发行软件新版本所带来的维护负担。
RPM 有五种基本操作模式:安装、卸载、升级、查询和校验。本章节包括对每一模式的总览。想了解完整的选项和细节,请使用 rpm --help 命令。
1、安装
典型的 RPM 软件包名称类似于 foo-1.0-1.i386.rpm。该文件名包括软件包名称(foo)、版本(1.0)、发行版本(1)、以及体系(i386)。安装软件包简单之极,登录为根用户,然后在 shell 提示下键入下面的命令:
#rpm -ivh foo-1.0-1.i386.rpm
如果某软件包的同一版本已经安装,你就会看到如下提示:
package foo-1.0-1 is already installed
这是如果你在软件包已安装的情况下仍打算安装同一版本的软件包,你可以使用 --replacepkgs 选项,它告诉 RPM 来忽略这个错误:
#rpm -ivh --replacepkgs foo-1.0-1.i386.rpm
如果从 RPM 安装的文件有一些不小心被删除了,或者你想安装 RPM 中的最初配置文件,该选项就会很有用。
2、卸载
要卸载刚才安装的软件包也非常简单,只要在 shell 提示下键入下面的命令:
#rpm -e foo
注意:我们使用软件包名称 foo,而不是软件包文件 foo-1.0-1.i386.rpm。要删除某软件包,你需要把 foo 换成原始软件包的实际名称。
你在删除安装某软件包时也会遇到依赖关系错误,当另一个已安装的软件包依赖于你试图删除的软件包时,依赖关系错误就会发生。例如会有如下提示:
error: removing these packages would break dependencies:
foo is needed by bar-2.0.20-3.i386.rpm
要使 RPM 忽略这个错误,并强制删除该软件包,可以使用--nodeps 选项:
#rpm -e –nodeps foo
3、升级
在Linux中使用RPM升级软件包和安装软件包类似,只要在 shell 提示下键入以下命令即可:
#rpm -Uvh foo-2.0-1.i386.rpm
你在上面的例子里看不到的是,RPM 自动删除 foo 软件包的任何老版本。事实上,你可能想一直使用 -U 来安装软件包,因为即便没有安装软件包的任何先前版本,它也可以用来安装该软件包。
4、查询
使用 rpm -q 命令可以查询安装的软件包的数据库,如在 shell 提示下键入以下命令:
#rpm -q foo
这时可以显示安装的软件包 foo 的名称、版本、和发行号码:foo-2.0-1
与其指定软件包名称,你可以和 -q 一起使用下列选项来指定你要查询的软件包。它们叫做软件包指定选项。
· -a 查询所有已安装的软件包。
· -f 会查询拥有 的软件包。当指定文件时,你必须指定文件的完整路径(如 /usr/bin/ls)。
· -p 查询软件包 。
指定被查询的软件包要显示哪些信息的方法多种多样。以下选项用来选择你要搜索的信息类型。它们叫做信息选择选项。
· -i 显示软件包信息,包括名称、描述、发行版本、大小、制造日期、生产商,以及其它杂项。
· -l 显示软件包所含的文件列表。
· -s 显示软件包中所有文件的状态。
· -d 显示被标记为文档(man 页、info 页、README 等等)的文件列表。
· -c 显示被标记为配置文件的文件列表。你在安装后改变这些文件来使
软件包适用于你的系统(譬如,sendmail.cf、passwd、inittab 等等)。
对于用来显示文件列表的选项,你可以在命令后添加 -v 来用你熟悉的 ls -l 格式来显示文件列表。
5、校验
校验软件包比较从某软件包安装的文件和原始软件包中的同一文件的信息。它校验每个文件的大小、MD5 值、权限、类型、所有者、以及组群。
rpm -V 命令校验软件包。你可以查询任何软件包选择选项列举的条目来指定要校验的软件包。校验的最简单用法是 rpm -V foo,它校验所有在 foo 软件包内的文件是否和最初安装时一样。例如:
· 要校验包含某一特定文件的软件包:
#rpm -Vf /bin/vi
· 要校验所有安装了的软件包:
#rpm -Va
· 要根据 RPM 软件包文件来校验安装了的软件包:
#rpm -Vp foo-1.0-1.i386.rpm
如果你怀疑 RPM 数据库已被损坏,该命令就会很有用。
如果一切都被校验正确,就不会有输出。如果出现矛盾,它们就会被显示。输出的格式为包括八个字符的字符串(c 代表配置文件),然后是文件名称。这八个字符的每个字符都代表一种文件属性的比较结果,所比较的是文件的属性和 RPM 数据库中记录的属性。单用一个 .(点)意味着测试通过。下列字符代表某类测试失败:
· 5 — MD5 校验
· S — 文件大小
· L — 符号链接
· T — 文件修改时间
· D — 设备
· U — 用户
· G — 组群
· M — 模式(包括权限和文件类型)
· ? — 不可读文件
如果你看到任何输出,最好开动脑筋来判断是应该删除还是重新安装该软件包,或用另一种方法来解决这个问题。







最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 09:32 , Processed in 0.124876 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部