③ 安装 RPM 软件包

一个软件的流程:准备 → 安装 → 升级 → 卸载

通产情况下软件的安装就是文件的复制,软件安装是会把所需要用到的文件复制到特定的目录。

目录

1. RPM 软件包安装

1.1 RPM 在安装软件包的时候需要:

1.2 PRM 安装失败的情况

1.3 安装 RPM 包

1.4 安装示列

1. RPM 软件包安装

1.1 RPM 在安装软件包的时候需要:

检查软件的依赖关系 → 检查软件包的冲突 → 执行安装前脚本程序 → 处理配置文件 → 解压软件包并存放到相应位置 → 执行安装后脚本程序 → 更新 RPM 数据库 → 执行安装时触发脚本程序

RPM 对配置文件有特别的处理,PRM 会将原配置文件换个名字保存起来,会将原文件以 源文件.rpmorig 的形式将原配置文件保存起来。

触发脚本程序:软件包满足特定的条件才会执行的脚本程序,这用于软件包之间的交互控制。

软件包名 和 软件名 是不同的

1.2 PRM 安装失败的情况

  • ① 检查软件包的依赖,当 RPM 发现所依赖的动态库或程序等不存在、不满足相关要求的时候,终止安装。
  • ② 检查软件包的冲突,有些软件和其他软件不能共存,通常这些信息在 RPM 包中有记录。
  • ③ RPM 包可能含有在安装过程中以 root 身份运行的任意脚本

1.3 安装 RPM 包

rpm -ivh PACKAGE_FILE ... ...
rpm {-i|--install} {install-option} PACKAGE_FILE ... ...
rpm -i [安装选项1 安装选项2 ...] [包文件1] [包文件2] ... 
选项 描述

-i

安装指定的包文件
-v显示指令的执行过程
-vv详细显示指令执行过程、方便排错
-h显示安装过程的进度条
--test测试安装、检查并报告依赖关系及冲突消息等
--nodeps忽略软件包的依赖关系强制进行安装
--replacepkage无论软件包是否已经被安装,都重新安装软件包
--nosignature无检查包签名信息、不检查来源合法性
--nodigest不检查完整性信息

其他安装选项和说明

安装选项说明安装选项说明
--excludedocs不安装软件包中的文档文件--nodeps不检查依赖关系
--force忽略软件包及文件的冲突--noscripts不运行预定安装脚本和安装后安装脚本
--ftpport port指定FTP的端口号为port--percent以百分比的形式显示安装的进度
--ftpproxy host用 host 作为 FTP 代理--prefix path安装到由 path 指定的路径下
--h ( or --bash )安装时输出 bash 记号 #--replacefiles替换属于其他软件包的文件
--ignorarch不校验软件包的结构--replacepkgs强制重新安装已安装的软件包
--ignoreos不检查软件包运行的操作系统--test只对安装进行测试,不实际安装
--includedocs安装软件包中的文档文件

通用选项和其他 RPM 选项及其说明

通用选项其他 RPM 选项
选项说明选项说明
--dppath path设置 RPM 资料库所在的路径为 PATH--help显示帮助文件
--rcfile rcfile设置 rpmrc 文件为 rcfile--initdb创建一个新的 RPM 资料库
--root path

让 RPM 将 path 指定的路径作为 根目录

这样预安装程序和后安装程序都会安装到

这个目录下

--quiet尽可能地减少输出
-v显示附加信息--rebuilddb重建 RPM 资料库
--vv显示调试信息--version显示 RPM 的当前版本

解决 RPM 包的依赖关系是麻烦的,这通常需要解决多个依赖,使用 rpm -qR 软件名 来查询安装包的依赖关系。

[root@localhost ~]# rpm -qR tree
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1

1.4 安装示列

[root@localhost ~]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
Preparing...                          ################################# [100%]
        package tree-1.6.0-10.el7.x86_64 is already installed

由于 tree 比较简单,所以不需要考虑 tree 的依赖关系

包的来源:

http://mirror.centos.org/centos/7/os/x86_64/Packages/tree-1.6.0-10.el7.x86_64.rpm

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值