软件包管理:rpm和yum

今天小编与大家聊聊软件包管理 的俩大神器:rpmyum,它俩在我们在对软件进行安装,查询,卸载,升级等等方面可给我们带来了非常,相当,特别多的方便,哈哈,听到小编说这么多副词来形容它们就知道它们非常重要。接下来小编从下面几个方面来介绍他们,废话不多,全是干货。

1.包管理器的功能

1)将软件包打包成一个文件,其中包括:
二进制应用程序的组成部分:
1.都有配置文件,通过设置配置文件来改变程序启动时的运行特征
2.都具有二进制的程序主体
3.都自带库文件,供程序主体进行调用
4.都带有帮助文件,对程序的使用方法进行说明
2)程序包管理器:
debian:deb文件, dpkg包管理器
redhat: rpm文件, rpm包管理器
rpm: Redhat Package Manager
RPM Package Manager

2.rpm与yum的区别于联系

rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

3.RPM的用法

CentOS系统上使用rpm命令管理程序包:
安装、卸载、升级、查询、校验、数据库维护

1.安装
rpm包安装
rpm -i [install-options] 包名
-v 显示详细信息
-vv 显示更详细信息
-h 显示进度
-ivh rpm包名
–test: 测试安装,但不真正执行安装,即dry run模式
–nodeps:忽略依赖关系直接安装
–replacepkgs | replacefiles 已安装过的包重装。
–nosignature: 不检查来源合法性
–nodigest:不检查包完整性
–noscripts:不执行程序包脚本
%pre: 安装前脚本; –nopre
%post: 安装后脚本; –nopost
%preun: 卸载前脚本; –nopreun
%postun: 卸载后脚本; –nopostun
Rpm2cpio 软件包名 > name
实例:
1.安装
这里写图片描述
2 Rpm -iv 软件名和-ih 软件名
这里写图片描述
Rpm -ivh 显示名字和安装进度
这里写图片描述
-ivvh 软件名 显示详细信息
这里写图片描述
3.rpm -ivh –test 测试安装,但不真正执行安装
这里写图片描述
这里写图片描述
4–nodeps:忽略依赖关系直接安装
这里写图片描述
危害:
这里写图片描述

可以用–replacepkgs | replacefiles (已安装过的包重新安装)挽救。
这里写图片描述
这里写图片描述

5–nosignature: 不检查来源合法性
这里写图片描述
6
这里写图片描述
2.升级
 rpm {-U|–upgrade} [install-options] PACKAGE_FILE…
 rpm {-F|–freshen} [install-options] PACKAGE_FILE…
upgrade:安装有旧版程序包,则“升级”
如果不存在旧版程序包,则“安装”
freshen:安装有旧版程序包,则“升级”
如果不存在旧版程序包,则不执行升级操作
rpm -Uvh PACKAGE_FILE …
rpm -Fvh PACKAGE_FILE …
–oldpackage:降级
–force: 强制安装
-Uvh 当有旧的版本的包时,则卸载旧包再装新包,如没有旧包,直接装新包。
-Fvh 当有旧的包时,卸载旧包装新包,无旧包时,nothing
–oldpackage 降级 已有新包,装旧包。
–force 强制安装。–replacepkgs –replacefiles –oldpackage
实例:
1 -Uvh 当有旧的版本的包时,则卸载旧包再装新包,如没有旧包,直接装新包。
这里写图片描述
2 对内核进行升级
这里写图片描述
3 降级 –oldpackage 降级 已有新包,装旧包。
这里写图片描述

3 查询
包查询
 rpm {-q|–query} [select-options] [query-options]
 [select-options]
-a: 所有包
-f: 查看指定的文件由哪个程序包安装生成
-p rpmfile:针对尚未安装的程序包文件做查询操作
–whatprovides CAPABILITY:查询指定的CAPABILITY 由哪个包所提供
–whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖
 rpm2cpio 包文件|cpio –itv 预览包内文件
 rpm2cpio 包文件|cpio –id “*.conf” 释放包内文件

-q 软件包名  查询已安装过的软件包名。
     -qa 列出所有的已安装过的rpm包
        -qa "name*"
        -qa |grep name
     -qf 查询一个文件来自于哪一个rpm包 (已安装的rpm)在数据库中查询
     -q --changelog 版本更新日志
     -qc 查询软件包的配置文件(不是所有包都有配置文件)
     -qd 查询软件包的帮助文档
     -qi 查询![这里写图片描述](https://img-blog.csdn.net/20170818204428639?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvS2V0Y2h1cF8=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)软件包的详细信息
     -ql 查询软件包所安装到系统当中的所有文件路径
     -q --scripts 查询软件包自带的脚本
     -q --provides 查询自身的功能
     -qR 查询实现自身的功能需要什么能力
     -qp[licd] rpm包 查看未安装的rpm包的各项信息

实例
1.当一个文件找不到时,而你又不知道来自哪个包:
rpm2cpio aide-0.15.1-11.el7.x86_64.rpm |cpio -id ( 解包)
这里写图片描述
这里写图片描述

这里写图片描述

这里写图片描述
2 -qa 列出所有的已安装过的rpm包
这里写图片描述
结合正则
这里写图片描述
3 -qf 查询一个文件来自于哪一个rpm包 (已安装的rpm)在数据库中查询
这里写图片描述

这里写图片描述
4 -q –changelog 版本更新日志
这里写图片描述
5 -qd 查询软件包的帮助文档
这里写图片描述
6-qi 查询软件包的详细信息
这里写图片描述

  1. -ql 查询软件包所安装到系统当中的所有文件路径
    这里写图片描述
    这里写图片描述

  2. -q –scripts 查询软件包自带的脚本
    这里写图片描述
    9.-q –provides 查询自身的功能

这里写图片描述
10 -qR 查询实现自身的功能需要什么能力
这里写图片描述
11 -qc 查询软件包的配置文件(不是所有包都有配置文件)
这里写图片描述
12用 -qp[licd] rpm包 查看未安装的rpm包的各项信息

4.校验
1包来源合法性验正及完整性验正
完整性验正:SHA256
来源合法性验正:RSA
2 公钥加密
对称加密:加密、解密使用同一密钥
非对称加密:密钥是成对儿的
public key: 公钥,公开所有人
secret key: 私钥, 不能公开
3 导入所需要公钥
rpm -K|checksig rpmfile 检查包的完整性和签名
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS 7发行版光盘提供:RPM-GPG-KEY-CentOS-7
rpm -qa “gpg-pubkey*”
–import GPG-KEY…. 导入公钥
-qa “gpg-pubkey*” 显示所有已导入的公钥
-e gpg-pubkey….
-K rpm包 验证某rpm签名是否合法
-V验证
实例
1–import GPG-KEY…. 导入公钥
这里写图片描述
2 -K rpm包 验证某rpm签名是否合法
这里写图片描述
5 数据库维护
 数据库重建:
/var/lib/rpm
 rpm {–initdb|–rebuilddb}
initdb: 初始化
如果事先不存在数据库,则新建之
否则,不执行任何操作
rebuilddb:重建已安装的包头的数据库索引目录
6 卸载
rpm -e 软件名
–nodeps 忽略依赖性。强制卸载
这里写图片描述

4.yum的用法

1.yum配置文件
 yum客户端配置文件:
/etc/yum.conf:为所有仓库提供公共配置
/etc/yum.repos.d/*.repo:为仓库的指向提供配置
2.yum仓库
这里写图片描述
仓库指向的定义:
[repositoryID]
name=Some name for this repository
baseurl=url://path/to/repository/
enabled={1|0}
gpgcheck={1|0}
gpgkey=URL
enablegroups={1|0}
failovermethod={roundrobin|priority}
roundrobin:意为随机挑选,默认值
priority:按顺序访问
cost= 默认为1000
仓库的实例
这里写图片描述
这里写图片描述
3 yum-config-manage
生成172.16.0.1_cobbler_ks_mirror_CentOS-X-x86_64_.repo
yum-config-manager –add-repo=
http://172.16.0.1/cobbler/ks_mirror/7/
这里写图片描述
对设置进行补充
1. yum-config-manager –disable “仓库名” 禁用仓库
2. yum-config-manager –enable “仓库名” 启用仓库
1.这里写图片描述
2这里写图片描述

这里写图片描述
yum命令1
 yum命令的用法:
yum [options] [command] [package …]
 显示仓库列表:
yum repolist [all|enabled|disabled]
 显示程序包:
yum list
yum list [all | glob_exp1] [glob_exp2] […]
yum list {available|installed|updates} [glob_exp1] […]
 安装程序包:
yum install package1 [package2] […]
yum reinstall package1 [package2] […] (重新安装)
 升级程序包:
yum update [package1] [package2] […]
yum downgrade package1 [package2] […] (降级)
 检查可用升级:
yum check-update
 卸载程序包:
yum remove | erase package1 [package2] […]
 查看程序包information:
yum info […]
 查看指定的特性(可以是某文件)是由哪个程序包所提供:
yum provides | whatprovides feature1 [feature2] […]
 清理本地缓存:
清除/var/cache/yum/basearch/ releasever缓存
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
 构建缓存:
yum makecache
1.显示仓库列表yum repolist [all|enabled|disabled] 列出repo信息
这里写图片描述
2 安装程序包yum install package1 [package2] […]
这里写图片描述
这里写图片描述
3.显示安装过的程序包:
这里写图片描述
4.显示没安装过的程序包:
这里写图片描述
5.显示要更新的程序包:
这里写图片描述
6. 检查可用升级 :
这里写图片描述
7. -e修改之后,在卸载,用rm 删除,配置文件会另保存
这里写图片描述
8.查看程序包information:
这里写图片描述
9.查看指定的特性(可以是某文件)是由哪个程序包所提供
whatprovides查看某个文件来自那个包
这里写图片描述当文件的名称也记不全时
这里写图片描述
这里写图片描述

10.清除/var/cache/yum/basearch/ releasever缓存
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
这里写图片描述

yum makecache就是把服务器的包信息下载到本地电脑缓存起来
这里写图片描述
yum命令2
这里写图片描述
4.搜索
yum list 显示所有已经安装和可以安装的程序包
yum list package1 显示指定程序包安装情况package1
通过rpm -qa | grep filename去查询,发现没有返回。没返回说明没装
yum源里面有没有呢?
执行yum list | filename
Search 只是找到相关的软件包,但是是不是已经安装了,那可不一定
通过rpm -qa
这里写图片描述
这里写图片描述

2.yum history
info [number] 查看具体那一条
undo [number]
undo - 会撤销一个指定的事务。
redo - 重复一次指定的事务
这里写图片描述

这里写图片描述

3.查看日志
这里写图片描述

这里写图片描述
5安装及升级本地程序包:
yum localinstall rpmfile1 [rpmfile2] […]
(用install替代)
yum localupdate rpmfile1 [rpmfile2] […]
(用update替代)
 包组管理的相关命令:
yum grouplist
yum groupinfo “包组名”
yum groupinstall “包组名”
yum groupremove “包组名” 只删除包组中的包,不删除依赖包,可以用yum history undo 操作数字来删除包含依赖包。
yum groupupdate 更新包组中的包a
实例:
1.yum groupinfo group1 […]
这里写图片描述
2.yum grouplist [hidden] [groupwildcard] […]
这里写图片描述
3.remove和undo删除的区别
remove可以卸载包本身
undo可以卸载有依赖的包
这里写图片描述
这里写图片描述

这里写图片描述

yum的命令行选项:
–nogpgcheck:禁止进行gpg check
-y: 自动回答为“yes”
-q:静默模式
–disablerepo=repoidglob:临时禁用此处指定的repo
–enablerepo=repoidglob:临时启用此处指定的repo
–noplugins:禁用所有插件

1 –nogpgcheck:禁止进行gpg check
这里写图片描述
2静默模式
这里写图片描述

这里写图片描述
这里写图片描述
这里写图片描述

好了,今天小编就介绍到这 。
这里写图片描述

发布了33 篇原创文章 · 获赞 16 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章