LinuxDay11——软件包管理
rpm包管理
CentOS系统上使用rpm命令管理程序包:
安装、卸载、升级、查询、校验、数据库维护
安装
rpm {-i|--install} [install-option] PACKAGE_FILE...
-v:verbose -vv:显示过程
-h:以#显示程序包管理执行数据
rpm -ivh PACKAGE_FILE...
[install-options]
--test:测试安装,但不真执行安装,即dry run模式
--nodeps:忽略依赖关系
--replacepkgs | replacefiles
--nosignature:不检查来源合法性
--nodigest:不检查包完整性
--noscripts:不执行程序包脚本
--nopre:安装前脚本;%pre
--nopost:安装后脚本;%post
--nopreun:卸载前脚本;%preun
--nopostun:卸载后脚本;%nopostun
升级
rpm {-U|--upgrade} [install-options] PACKAGE_FILE...
-U升级安装
rpm {-F|--freshen} [install-options] PACKAGE_FILE...
-F升级
upgrade:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则“安装”
freshen:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则不执行升级操作
rpm -Uvh PACKAGE_FILE ...
rpm -Fvh PACKAGE_FILE ...
--oldpackage:降级
--force: 强制安装
升级主要事项
(1)不要对内核做升级操作;Linux支持多内核版本并存,因此,应直接安装新版本内核
(2)如果源程序包的配置文件安装后曾被修改,升级时,新版本的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名
查询
rpm {-q|--query} [select-options] [query-options]
-q查询
[select-options]
-a: 显示所有包
-f: 查看指定的文件由哪个程序包安装生成
-p rpmfile:针对尚未安装的程序包文件做查询操作
-c:只看配置文件
-d:显示文档
-i:包的说明信息
-l:查看程序包提供了哪些文件
--scripts:查询包的脚本信息
--provides:列出包提供的“能力”
-R:查询包所依赖的“能力”
--whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供
--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖
rpm2cpio 包文件|cpio –itv 预览包内文件
rpm2cpio 包文件|cpio –id “*.conf” 释放包内文件
校验
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 differrpm {-V|--verify} [select-options] [verify-options]
导入所需要公钥
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*”
数据库
数据库重建:
/var/lib/rpm
rpm {--initdb|--rebuilddb}
initdb: 初始化
如果事先不存在数据库,则新建之
否则,不执行任何操作
rebuilddb:重建已安装的包头的数据库索引目录
yum包管理器
yum(Yellowdog Update Modifier)是一个基于rpm的交互式软件包管理器。
用法:
yum [options] [command] [package ...]
配置文件
yum客户端配置文件:
/etc/yum.conf:为所有仓库提供公共配置
/etc/yum.repos.d/*.repo:为仓库的指向提供配置
/etc/yum.conf 配置文件
cachedir 缓存目录
keepcache=0|1 安装时是否保留缓存的rpm包
logfile 日志文件
gpgcheck=0|1 检查签名和完整性
/var/log/yum.log 日志
/etc/yum.repos.d/FILE.repo yum源文件
/var/cache/yum/x86_64/6 缓存路径
# yum-config-manager --add-repo=https://mirrors.aliyun.com/centos/6/os/x86_64/
# yum-config-manager --disable “仓库名" 禁用仓库
# yum-config-manager --enable “仓库名” 启用仓库
# createrepo /rpmdir 创建元数据
仓库指向的定义:
[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
yum的repo配置文件中可用的变量:
$releasever: 当前OS的发行版的主版本号
$arch: 平台,i386,i486,i586,x86_64等
$basearch:基础平台;i386, x86_64
$YUM0-$YUM9:自定义变量
选项:
-y 安装或卸载是直接回答yes,不进入交互式
-q 静默模式
--disablerepo=repoidglob:临时禁用此处指定的repo
--enablerepo=repoidglob:临时启用此处指定的repo
--noplugins:禁用所有插件
子命令:
list 列出repo源包含的所有软件包
installed 列出所有已安装的包
install 安装
reinstall 重新安装
repolist [all|disabled] 列出当前生效的repo源[所有|已关闭的]
clean all 清除缓存
update [package1...] 升级软件包
downgrade [package1...] 降级软件包
check-update 检查可升级的包
remove 卸载软件包
info 查看包的详细信息
provides 查找命令由哪些包提供
makecheck 手动生成缓存
search 模糊搜索包信息
deplist 检查依赖包
history 安装卸载的历史
list # 列出指定的操作
info # 列出指定操作的详细信息
undo # 撤销指定id的操作
redo # 重新执行
groupinstall 安装包组
groupupdate 升级包组
grouplist 列出所有包组
groupremove 移除包组
groupinfo 查看包组的详细信息