rpm

rpm

ABI 操作系统接口
API 库的调用接口
汇编语言 是 .a 后缀的文件
二进制程序依赖系统 (ABI)
二进制需要链接库才能运行
静态编译 二进制文件和库打包成一个文件带 .a后缀的
静态编译 把库打包到文件
动态编译 软链接指向库 运行的时候就去访问调用它
Java 编译两次 先生成。先把源文件通过 Java编译器生成class的文件 再通过解释器(Java虚拟机)编译成与操作系统接口API的二进制程序 才能运行 在系统上跑
rpm包不需要编译安装 直接给打包成一个文件 就可以运行
包分为 主包和其他子包
yum 只适用于centos 系列的及红帽系列的
yum能一键安装存在依赖关系的 甚至循环依赖的包 智能
yum:rpm包管理器的前端工具 (yum底层调用的还是rpm包)
apt-get:deb包管理器前端工具(解决包的依赖性)
zypper: suse上的rpm前端管理工具
dnf: Fedora 18+ rpm包管理器前端管理工具 (以后估计会代替yum)
var/lib/rpm 包的数据库(包括包的信息)
ldd 二进制程序的命令 查询这个命令依赖的库文件
ldconfig -p 查看所有的库
库的主要路径 /etc/ld.so.conf
缓存文件:/etc/ld.so.cache
  • 包文件组成 (每个包独有)
  • RPM包内的文件
  • RPM的元数据,如名称,版本,依赖性,描述等
  • 安装或卸载时运行的脚本
数据库(公共):/var/lib/rpm
程序包名称及版本
依赖关系
功能说明
包安装后生成的各文件路径及校验码信息
rpm -ivh
  • -i 安装
  • -v 显示过程
  • -h 显示进度
  • -vv 详细过程
  • -e 卸载包
  • -q 查询(跟包名) 某个装好的包
  • -qa 查询所有安装包 可以配合grep 找到你想要的找的文件
6. -ql (后跟包名)查看 包 里的文件列表
7 -qf 后跟文件 查看 文件 属于哪个包 (文件删除了 也可以查看它属于哪个包 应为你下载包的 会把文件的数据 放在数据库中 /var/lib/rpm) 数据库没有的话 就查询不了安装了什么包 下载不了删除不了
-p 针对尚未安装的程序包文件做查询操作
8 -qpl (后跟包里的文件) 表示查看未安装的包里的文件
9 -q –whatprovides 后跟关键字 查询命令是由哪个包提供的
10 -q –whatrequires bash 查询那些包依赖bash
11 -qc 只看配置文件
12 -qi 显示包的信息 (作用 说明 官网 什么时候装的包 时间等等
–provides: 列出指定程序包所提供的CAPABILITY
-R: 查询指定的程序包所依赖的CAPABILITY
rpm2cpio 包文件|cpio –itv 预览包内文件
rpm2cpio 包文件|cpio –idv 后也可以单独安装一个文件
rpm包安装 [–install-options ]:
跟在条件后面
  1. –test 测试安装 但不真正执行安装 dry run 模式
  2. — nodeps : 安装时忽略依赖关系
  3. –replacepkgs 重新安装 如果包改过 重新安装时会覆盖
  4. –replacefiles 重新安装 目录重名时
  5. –oldpackage 降级安装 (kernel) 不覆盖的
  6. — force 强制安装
  7. –upgrade 安装有旧版本包 则升级 升级后旧版本覆盖 -U
如果不存在旧版本包 则安装
8. — freshen 安装有旧版本包 则升级 -F
如果不存在旧版本 则不执行升级操作
  • 如果原程序包的配置文件安装后曾被修改,升级时,新版本的提供的同一个配
置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名
(FILENAME.rpmnew)后保留 (它只会备份配置文件 )
  • 不要对内核做升级操作;Linux支持多内核版本并存,因此,对直接安装新版
本内核
–changelog 查看包的变化的历史过程
-c 查询程序的配置文件
-d 查询程序的文档
-i 查看包的信息
-q –scripts:程序包自带的脚本
-q 查看程序依靠哪个能力
— allmatches 如果有两个版本的包 会全卸载
–nodeps 安装时忽略依赖关系
包安装后 会更新 /var/log/rpm
rpm {-V|–verify} [select-options] [verify-options]
S file Size differs 大小
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs 哈希值
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs 所有者
G Group ownership differs 所有组
T mTime differs 时间
P capabilities differ
安装前检查 是否完整 签名
-K
rpm -import 导钥匙
挂光盘 rpm -import /光盘的路径/RPM-GPG-KEY-CentOS-6
公钥 etc/下也有 在 /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
导入的钥匙 也会生成一个包 gpg-pubkey
删除钥匙 rpm -qa “gpg-pubkey” rpm -e gpg-pubkey-c105b9de-4e0fd3a3
删除/bin/rpm
通过rpm2cpio 光盘路径下的rpm包 | cpio -ivd ./bin/rpm 会安装到当前路径 在复制到/biin/下
如果删除rpm包
重启 通过cdrom 进入救援模式
在当前根上 默认是 /mnt/sysinmage mount 光盘
再 通过 rpm -ivh /光盘路径/Packages/rpm-4. …… –root=/mnt/sysimagc/ (这样包才安装到/root .里 不会安装到救援模式下)
重启即可
再求援页面 可以切换到系统的根 chroot /mnt/sysimagc

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96814

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班