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 找到你想要的找的文件
rpm
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

(0)
王乐王乐
上一篇 2018-04-22
下一篇 2018-04-22

相关推荐

  • RHCE考试笔记

    (2)下午RHCE部分

    Linux笔记 2018-07-14
  • 迁移/home目录到新的分区上步骤

    迁移/home目录到新的分区上步骤 1、 安装一个新的硬盘 2、 查看新硬盘的设备名,如下图所示: 3、 在新硬盘上创建一个主分区,如下图所示: 4、 将新创建的分区格式化为ext4文件系统,并加上/home卷标,如下图所示: 5、 创建/home目录临时挂载点,并将分区挂载到临时挂载点上,如下图所示: 6、 切换单用户,将除了root用户之外的用户踢出,如…

    2018-04-27
  • 随堂笔记1

    记马哥Linux运维课程第一周知识点(持续更新中) CPU 中央处理单元ROM 只读 不可变 只能使用,不能修改RAM 易失性 运行内存 处理的数据皆为0、1 内部转换为二进制 obase=2 output ibase=2 input 辅助存储器 硬盘 仓库 主存储器 车间 处理数据 机架式Rack服务器 1U=1.75英寸=44.45mm C/S结构 cl…

    Linux笔记 2018-07-22
  • 如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的

    获取命令帮助     内部命令:     ~]# help COMMAND     外部命令:     (1) ~]# COMMAND –help     (2) 使用手册 manual 位于/usr/share/man         ~]# man CHAPTER COMMAND         ~]# man 5 passwd       …

    Linux笔记 2018-05-13
  • 文本三剑客之sed

    我们知道,sed被称为Linux中被称为文本处理三剑客之一,相比于grep命令匹配内容的功能,sed则能够做到对匹配到的文本内容对其进行编辑。

    2018-04-15
  • shell脚本之判断httpd是否有异常

    案例 以web为例 大全讲解:如http为例 #/etc/init.d/httpd start      开启httpd #lsof –i :80 [root@centos6 ~/bin]$curl -I -s -o /dev/null -w “%{http_code}\n” http://172.16.0.1 析:-I 是响应头,响…

    Linux笔记 2018-05-20