Red-Hat Package Manager 工具常见用法记录

rpm

rpm 的数据库为 /var/lib/rpm,公钥目录 /etc/pki/rpm-gpg/

-i        install 的意思
-e        卸载
-v        察看更细部的安装信息画面
-h        以安装信息列显示安装进度
--nodeps            不检查依赖
--replacefiles      直接覆盖文件
--replacepkgs       允许重复安装
--force             --replacefiles --replacepkgs
--test              只是测试安装
--justdb            更新数据库
--nosignature       忽略签名
--prefix            指定新路径
--noscripts         只是简单的安装,不执行安装前的一些前置的命令
rpm -ivh tmp.rmp        #安装
rpm -Uvh tmp.rmp        #更新软件
rpm -Fvh tmp.rmp        #只更新已经安装的软件
rpm -e tmp              #卸载

rpm --rebuilddb         #重建数据库

下面是查询

-q       仅查询,后面接的软件名称是否有安装;
-qa      列出所有的,已经安装在本机 Linux 系统上面的所有软件名称;
-qi      列出该软件的详细信息
-ql      列出该软件所有的文件与目录所在完整文件名
-qc      列出该软件的所有配置文件(/etc/)
-qd      列出该软件的所有说明文档 ( 找出与 man 有关的文件而已)
-qR      列出与该软件有关的相依软件所含的文件 ( Required 的意思)
-qf      由后面接的文件名称,找出该文件属于哪一个已安装的软件
-q --scripts     列出是否含有安装后需要执行的脚本档,可用以 debug 喔

-qp      注意 -qp 后面接的所有参数以上面的说明一致。但用途仅在于找出某个 RPM
rpm -qa                #列出所有已安装的rpm包
rpm -ql xx.rpm         #列出xx.rpm中的文件全路径(已安装)
rpm -qlp xx.rpm        #列出xx.rpm中的文件全路径(没有安装)
rpm -qf /bin/ls             #列出包含ls的rpm包
rpm -q --scripts httpd      #列出安装前,安装后要执行的脚本
rpm -qR httpd               #列出依赖


yum

缓存目录 /var/cache/yum/,/var/lib/rpm/ 目录损坏会导致 Cannot find a valid baseurl for repo。

grouplist        列出所有可使用的软件群组组,例如 Development Tools 之类的;
groupinfo        后面接 group_name,则可了解该 group 内含的所有软件名;
groupinstall     这个好用!可以安装一整组的软件群组,相当的不错用!
groupremove      移除某个软件群组;
yum  search  php
yum  install  php
yum  clean  all
yum  remove  php

yum install php         #安装
yum check-update        #检查更新
yum update              #更新升级所有软件
yum list                #列出所有课安装的软件包
yum remove              #删除软件包
yum search              #搜索软件包
yum provides  /usr/bin/ls	#搜索哪个包包含这个命令

yum clean packages
yum clean headers
yum clean all              #packages,headers

yum repolist all           #列出repo

yum grouplist
yum groupinfo    "Scientific Support"
yum groupinstall "Scientific Support"

#默认关闭一些次要镜像站,需要的时候打开安装
yum --enablerepo=epel install netcdf

#下载
yum install yum-utils
yumdownloader php


yum install yum-downloadonly

#只下载不安装,自动解决依赖跟更新
#然后可以把这些rpm包拷贝到同环境但是没网路的电脑上安装
#一般通过这种方式可以实现在无网络电脑上一键部署
#部署的之后执行 rpm -ivh --nodeps --force `find ./ -name '*.rpm'`
yum install --downloadonly --downloaddir=/tmp/ php


进阶

先查找 /var/lib/rpm/pubkeys/*.key 公钥,找不到就找 /var/lib/rpm/ 数据库。

/var/lib/rpm/ 一旦被黑客删除,就查不到系统上的rpm,所以对安全有要求的一定要备份。

-V        后面加的是软件名称,若该软件所含的文件被更动过,才会列出来;
-Va       列出目前系统上面所有可能被更动过的文件;
-Vp       后面加的是文件名称,列出该软件内可能被更动过的文件
-Vf       列出某个文件是否被更动过~
-vv       打印出详细信息
-K        验证rpm包

S    文件的容量大小是否被改变
M    文件的类型或文件的属性rwx 
5    MD5 这一种指纹码的内容已经不同
D    设备的主/次代码已经改变
L    Link 路径已被改变
U    文件的所属人已被改变
G    文件的所属群组已被改变
T    文件的创建时间已被改变
P    功能已经被改变
rpm -V httpd                     #列出该rpm包被更改过的文件
rpm -K httpd.rpm -vv             #验证新的rpm包
rpm2cpio  xx.rpm  |  cpio  -idmv          #提取rpm包的内容到当前路径



上一篇: debian package 包管理工具常见用法记录
下一篇: 关于ssh-keygen与openssl公私钥问题
作者邮箱: 203328517@qq.com