linux系统下rpm包的安装、删除等
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这表示用户对配置文件的修改,不一定能 "向上兼容" 该软件包中的配置文件。 因此,RPM 会备份 原始的文件,再安装新文件。用户应当尽快解决这两个配置文件的不同之处,以便系统能持续正常运 行。 因为升级其实就是软件包的卸载与安装的综合,也可能会遇见那些操作中所可能发生的错误。 再有 就是: 在使用 旧 版本的 RPM 软件包来升级新版本的软件时,会产生以下信息: # rpm -Uvh foo-1.0-1.i386.rpm foo package foo-2.0-1 (which is newer) is already installed error: foo-1.0-1.i386.rpm cannot be installed #
软件包已被安装
如果软件包已被安装, 会出现以下信息:
# rpm -ivh foo-1.0-1.i386.rpm
foo
package foo-1.0-1 is already installed
error: foo-1.0-1.i386.rpm cannot be installed
#
如果仍要安装该包, 可以在命令行中使用 --replacepkgs 选项, 这样 RPM 将忽略该错误信息:
安装软件包 rpm -i 包全名 删除 rpm -e name(不是包名) 参数 -ivh 获得一个详细的安装进程 --nodeps 忽略依赖关系 --force 强制安装 -U 包名:升级安装 -F 更新不管是什么直接覆盖 --replacepkgs 这样 RPM 将忽略该错误信息 -vih --replacepkgs -q name :查询 -qa 查询所有已安装的 RPM -qi name 查询这个软件详细信息 -ql 显示列表 -qf path :查询一个文件属于哪个包 -qp 包名 :查文件是什么 -qpl 包名 :针对一个没装过的包
foo
/usr/bin/foo conflicts with file from bar-1.0-1
error: foo-1.0-1.i386.rpm cannot be installed #
要想让 RPM 忽略该错误信息, 请使用 --replacefiles 命令行选项:
# rpm -ivh --replacefiles foo-1.0-1.i386.rpm
rpm -qc 配置文件
效验 rpm -Va rpm -Vf /bin/ls rpm -Vp 包名
5 -- MD5 校验和 S -- 文件长度 L -- 符号链接 T -- 文件修改日期 D -- 设备 U -- 用户 G -- 用户组 M -- 模式 (包含许可和文件类型) ? -- 不可读文件
详细课程
请注意 注意这里使用软件包的 名字 "foo" , 而不是原始软件包的 文件名 "foo-1.0-1.i386.rpm"。卸载
软件包时, 需要用原始包的实际文件名替换 foo 包名。
在卸载某个软件包时,可能会发生依赖关系错误,这说明其它包与此包之间有安装依赖关系。例如: # rpm -e foo removing these packages would break dependencies:
foo is needed by bar-1.0-1 #
要使 RPM 在卸载此包时忽略该错误 (这不是个好办法,因为卸载后,与它有依赖关系的软件包未必
能正常运行), 使用 --nodeps 命令行选项。
3.2.3 升级
升级软件包和安装软件包十分类似。
# rpm -Uvh foo-2.0-1.i386.rpm
请注意 尽管通常是使用 rpm -ivh foo-1.0-1.i386.rpm 来安装包, 但也可以用 rpm -Uvh
foo-1.0-1.i386.rpm 来替代。 -U 是包升级参数, 也可以用来安装新包。参看 升级 有关 RPM 中 -U 参数的详细使用情况。
软件包的安装设计非常简单, 但还是有可能发生以下错误:
foo
####################################
#
RPM 将自动卸载已安装的老版本的 foo 软件包,用户无法看到有关信息。事实上用户可能总是使用 -U 来安装软件包, 因为即便以往未安装过该软件包,也能正常运行。 因为 RPM 执行智能化的软件包升级,自动处理配置文件,会显示如下信息: saving /etc/foo.conf as /etc/foo.conf.rpmsave
发行号 (1), 和硬件平台 (i386)。安装一个软件包只需简单的键入以下命令:
# rpm -ivh foo-1.0-1.i386.rpm
foo
####################################
#
Hale Waihona Puke Baidu
正如您所看到的, RPM 将会打印出软件包的名字 ( 并不一定要与文件名相同, 可能是 1.rpm), 而后 打印出一连串的 # 号以表示安装进度。
foo is needed by bar-1.0-1 #
只有先安装完所依赖的软件包,才能解决这个问题。 如果想强制安装 (这不是个好办法,因为安装后 的软件包未必能正常运行), 可以使用 --nodeps 命令行选项。 3.2.2 卸载 卸载软件包就象安装软件包时一样简单: # rpm -e foo #
使用 RPM
RPM 有五个基本的操作 模式(不包括包的编译): 安装,卸载,升级,查询,校验。本节将对它们一
一介绍。要了解完整的细节和选项,可以使用 rpm --help, 或转到 the section called 其它 RPM
资源 得到更多关于 RPM 的信息。
1 安装
典型的 RPM 有着类似 foo-1.0-1.i386.rpm 这样的名称, 其中指明了包名 (foo), 版本号 (1.0),
# rpm -ivh --replacepkgs foo-1.0-1.i386.rpm
foo
####################################
#
文件冲突
如果要安装的软件包中有一个文件已在安装其它包时被安装,会显示以下信息:
# rpm -ivh foo-1.0-1.i386.rpm
foo
####################################
#
未解决依赖关系 一个 RPM 包可能会 "依赖" 其它软件包, 也就是说要求在安装了特定的软件包之后才能安装该软件 包。 如果在安装这个软件包时未解决这种存在的依赖关系, 会看到: # rpm -ivh bar-1.0-1.i386.rpm failed dependencies: