yum/rpm常用命令总结
Yum (Yellow dog Updater, Modified) ,Fedora、RedHat以及CentOS中的Shell前端软件包管理器,基于RPM。
yum常用命令
显示可用的yum仓库
1
yum repolist
指定某一个repo内搜索某个rpm包
1
yum --disablerepo=* --enablerepo=xxx search xxxx
列出某个yum源中可用的rpm包
1
sudo yum --disablerepo="*" --enablerepo="xxxx" list available
查找某条命令的yum源
1
yum whatprovides "*/whoami"
查找某条命令由什么包提供
1
yum provides ${cmd}
替换安装某个rpm包
1
2yum install yum-plugin-replace
yum replace php-common --replace-with=php56-common降级安装
1
yum downgrade packages
安装程序组
1
yum groupinstall 'Development Tools’
从yum源中下载rpm包
1
2yum -y install yum-utils
yumdownloader xxxxyum下载依赖文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15方法一:
yumdownloader 下载包名称 --resolve --destdir=/tmp/openresty
参考:
http://www.cnblogs.com/toSeek/p/6093679.html
方法二:
1.安装yum-plugin-downloadonly
yum -y install ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/Virtualization:/Appliances/CentOS_CentOS-6/noarch/yum-plugin-downloadonly-1.1.31-2.2.noarch.rpm
2.下载:
yum install -y --downloadonly --downloaddir=/tmp/php php
参考:
http://graybull.is-programmer.com/posts/37702.html
http://www.jianshu.com/p/5930545b5591yum 查看so库文件所在的rpm包
1
yum whatprovides libXpm.so.4
Yum 事务完整的历史记录
1
2
3
4
5
6
7
8yum history list all # 查看历史yum命令
yum history info nginx # 查看yum涉及指定软件包的事务详情
yum history summary nginx # 查看yum涉及指定软件包的事务摘要
yum history package-list nginx # 查看yum涉及指定软件包的历史记录
yum history addon-info # 提供更多的信息来源
yum history stats # 显示当前历史数据库的统计信息
yum history sync # 更改为所有已安装软件包存储的rpmdb/yumdb数据
yum history new # 创建新的历史文件
rpm常用命令
强制降级
1
2
3rpm -Uvh oldpackage.rpm --oldpackage
或
rpm -Uvh oldpackage.rpm --force查看rpm包安装前后执行的脚本
1
rpm -qp --scripts xxxx.rpm
rpm包安装前后执行脚本被传入参数$1的意义
1
2
30:卸载
1:安装、升级卸载
2:升级查看rpm包提供的命令
1
rpm -qp --provides xxxx.rpm
查看rpm包注册的冲突信息
1
rpm -qp --conflicts xxxx.rpm
查看rpm包注册的依赖信息
1
rpm -qpR xxxx.rpm
查看rpm包中注册的配置文件
1
rpm -qpc xxxx.rpm
查看rpm包的打包信息
1
rpm -qpi xxxx.rpm
查看打包spec文件中的tag信息
1
2
3
4
5rpm -q --qf %{tag} rpm_name
tag list: Name|Version|Release|Summary|Group|License|URL
eg:
rpm -q --qf %{Version} rpm_name
内网yum源维护
创建repodata
1
2yum -y install createrepo
createrepo /path/to/RPMS/epel/7/x86_64/更新repodata
1
createrepo --update /path/to/RPMS/epel/7/x86_64
镜像yum源
1
2
3
4
5
6
7reposync -r "repoid"
eg:
reposync -r webtatic-archive -nu
-r 指定镜像源
-n 只下载最新镜像
-u 只列出,不下载自定义yum源配置
1
2
3
4
5
6
7
8
9
10
11
12[epel.xxx]
name=repo.xxx.xxx
baseurl=http://repo.xxx/epel/$releasever/$basearch
skip_if_unavailable=True # 在CentOS7系统上测试当前yum源如果不可用,会直接跳过,默认False,提示错误.
gpgcheck=0
enabled=1
[epel-archive.xxx]
name=archive.xxx.xxx
baseurl=http://repo.xxx/archive/$releasever/$basearch
gpgcheck=0
enabled=0配置文件中$releasever变量是取redhat-release-server(redhat)或centos-release(centos) rpm包的属性 %{version} 的值。验证方法:
1
2
3
4$basearch:
rpm -q --qf %{arch} redhat-release-server
$releaseserver:
rpm -q --qf %{version} redhat-release-serverrh和centos的$releasever稍有不同,一般rh的$releasever值是${Version}Server,centos的$releasever值直接是${Version}数值,所以在定义配置文件的时候要注意验证。
常见yum报错处理
- yum报错:
Rpmdb checksum is invalid: dCDPT(pkg checksums)
- 解决方案
1
2rpm --rebuilddb
yum clean all