1. rpm 常用命令
安装包 -ivh
[root@localhost ~]# rpm -ivh /mnt/a/yum/fedora/packages/wget-1.11.4-1.fc10.i386.rpm warning: /mnt/a/yum/fedora/packages/wget-1.11.4-1.fc10.i386.rpm: Header V3 DSA signature: NOKEY, key ID 4ebfc273 Preparing... ########################################### [100%] 1:wget ########################################### [100%]
升级包 -Uvh
rpm -Uvh
移走包 -e
rpm -e
查询包 -q
[root@localhost ~]# rpm -q wget wget-1.11.4-1.fc10.i386
得到包信息 -qi
[root@localhost ~]# rpm -qi wget Name : wget Relocations: (not relocatable) Version : 1.11.4 Vendor: Fedora Project Release : 1.fc10 Build Date: 2008年08月13日 星期三 20时53分38秒 Install Date: 2009年03月11日 星期三 10时40分50秒 Build Host: x86-7 ...
列出该包中文件 -ql
[root@localhost ~]# rpm -ql wget /etc/wgetrc /usr/bin/wget /usr/share/doc/wget-1.11.4 /usr/share/doc/wget-1.11.4/AUTHORS ...
查询文件属于什么包 -qf
[root@localhost ~]# rpm -qf /bin/ls coreutils-6.12-17.fc10.i386
综合参数 -qil
很多参数可以一起使用,例如下例查询软件包的信息,再列出包包含的文件。
[root@localhost ~]# rpm -qil coreutils Name : coreutils Relocations: (not relocatable) Version : 6.12 Vendor: Fedora Project Release : 17.fc10 Build Date: 2008年11月03日 星期一 19时13分01秒 ... /bin/arch /bin/basename /bin/cat /bin/chgrp /bin/chmod ...
列出所有安装的包 -qa
[root@localhost ~]# rpm -qa|head ca-certificates-2008-7.noarch basesystem-10.0-1.noarch ncurses-base-5.6-20.20080927.fc10.i386 rhino-1.6-0.1.r5.1.3.fc10.noarch ql2400-firmware-4.04.04-1.fc10.noarch ipw2100-firmware-1.3-8.noarch words-3.0-13.fc10.noarch popt-1.13-4.fc10.i386 freetype-2.3.7-1.fc10.i386 nss-3.12.2.0-3.fc10.i386
列出未安装包类容 -qpl
[root@localhost ~]# rpm -qpl /root/firefox-3.0.6-1.fc10.src.rpm find-external-requires firefox-3.0.6-source.tar.bz2 firefox-langpacks-3.0.6-20090204.tar.bz2 firefox-mozconfig firefox-mozconfig-branded firefox-redhat-default-prefs.js firefox.1 firefox.desktop firefox.png firefox.sh.in firefox.spec
2. RPM中文手册
安装
- 命令格式:
rpm -i ( or --install) [选项] file1.rpm ... fileN.rpm
- 参数:
file1.rpm ... fileN.rpm 将要安装的RPM包的文件名
- 选项:
-h (or --hash) 安装时输出hash记号 (``#'')
--test 只对安装进行测试,并不实际安装。
--percent 以百分比的形式输出安装的进度。
--excludedocs 不安装软件包中的文档文件
--includedocs 安装文档
--replacepkgs 强制重新安装已经安装的软件包
--replacefiles 替换属于其它软件包的文件
--force 忽略软件包及文件的冲突
--noscripts 不运行预安装和后安装脚本
--prefix 将软件包安装到由prefix后面指定的路径下
这里只有可以relocatable包,用“rpm -qi/-qpi”查询包是否可以。
--ignorearch 不校验软件包的结构
--ignoreos 不检查软件包运行的操作系统
--nodeps 不检查依赖性关系
--ftpproxy 用作为FTP代理
--ftpport 指定FTP的端口号为
- 通用选项:
-v 显示附加信息
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和
后安装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为
删除
- 命令格式:
rpm -e ( or --erase) [选项] pkg1 ... pkgN
- 参数:
pkg1 ... pkgN :要删除的软件包
- 选项:
--test 只执行删除的测试 --noscripts 不运行预安装和后安装脚本程序 --nodeps 不检查依赖性
- 通用选项:
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和
后安装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为
升级
- 命令格式:
rpm -U ( or --upgrade) [选项] file1.rpm ... fileN.rpm
- 参数:
file1.rpm ... fileN.rpm 软件包的名字
- 选项:
-h (or --hash) 安装时输出hash记号 (``#'') --oldpackage 允许"升级"到一个老版本 --test 只进行升级测试 --excludedocs 不安装软件包中的文档文件 --includedocs 安装文档 --replacepkgs 强制重新安装已经安装的软件包 --replacefiles 替换属于其它软件包的文件 --force 忽略软件包及文件的冲突 --percent 以百分比的形式输出安装的进度。 --noscripts 不运行预安装和后安装脚本 --prefix 将软件包安装到由 指定的路径下 --ignorearch 不校验软件包的结构 --ignoreos 不检查软件包运行的操作系统 --nodeps 不检查依赖性关系 --ftpproxy 用作为 FTP代理 --ftpport 指定FTP的端口号为
- 通用选项:
-v 显示附加信息 -vv 显示调试信息 --root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下 --rcfile 设置rpmrc文件为 --dbpath 设置RPM 资料库存所在的路径为
查询
命令格式:
rpm -q ( or —query) options
参数:
pkg1 ... pkgN :查询已安装的软件包
详细选项
-p (or ``-'') 查询软件包的文件 -f 查询属于哪个软件包 -a 查询所有安装的软件包 —whatprovides 查询提供了 功能的软件包 -g 查询属于 组的软件包 —whatrequires 查询所有需要 功能的软件包
信息选项
显示软件包的全部标识 -i 显示软件包的概要信息 -l 显示软件包中的文件列表 -c 显示配置文件列表 -d 显示文档文件列表 -s 显示软件包中文件列表并显示每个文件的状态 —scripts 显示安装、卸载、校验脚本 —queryformat (or —qf) 以用户指定的方式显示查询信息 —dump 显示每个文件的所有已校验信息 —provides 显示软件包提供的功能 —requires (or -R) 显示软件包所需的功能
通用选项
-v 显示附加信息 -vv 显示调试信息 —root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下 —rcfile 设置rpmrc文件为 —dbpath 设置RPM 资料库存所在的路径为
校验已安装的软件包
命令格式:
rpm -V ( or —verify, or -y) options
参数
pkg1 ... pkgN 将要校验的软件包名
软件包选项
-p Verify against package file -f 校验所属的软件包 -a Verify 校验所有的软件包 -g 校验所有属于组 的软件包
详细选项
—noscripts 不运行校验脚本 —nodeps 不校验依赖性 —nofiles 不校验文件属性
通用选项
-v 显示附加信息 -vv 显示调试信息 —root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下 —rcfile 设置rpmrc文件为 —dbpath 设置RPM 资料库存所在的路径为
校验软件包中的文件
语法:
rpm -K ( or —checksig) options file1.rpm ... fileN.rpm
参数:
file1.rpm ... fileN.rpm 软件包的文件名
Checksig—详细选项
—nopgp 不校验PGP签名
通用选项
-v 显示附加信息 -vv 显示调试信息 —rcfile 设置rpmrc文件为
其它RPM选项
—rebuilddb 重建RPM资料库 —initdb 创建一个新的RPM资料库 —quiet 尽可能的减少输出 —help 显示帮助文件 —version 显示RPM的当前版本 附录: 台湾Linux方面高手VBird(鸟哥)所写<<RPM 與 SRPM 套件管理>> http://linux.ournb.net/index/article.php/310
3. 系统的rpm宏
查询宏定义值
rpm --eval %{_topdir}
rpm --eval %{_arch}
—qf
%{n},%{v},%{r} 是nvr。
rpm -qa --qf="%{n}-%{v}-%{r}\n"
详细用法
查询
参考: http://www.rpm.org/max-rpm/s1-rpm-query-parts.html
# rpm -qp --qf '[%{FILEUSERNAME} %{FILEGROUPNAME} %{FILENAMES}\n]' /dist/gtes11.3/rhel/GeoIP-1.4.7-0.1.20090931cvs.el5.src.rpm
mockbuild mockbuild GeoIP-1.4.6.tar.gz
mockbuild mockbuild GeoIP.spec
mockbuild mockbuild LICENSE.txt
mockbuild mockbuild README.Fedora
mockbuild mockbuild fetch-geoipdata-city.pl
mockbuild mockbuild fetch-geoipdata.pl
mockbuild mockbuild geoip-1.4.6-ipv6.patch
rpm 的 -p 选项决定查询未安装的包还是已安装的包:
# rpm -q --qf '[%{FILEUSERNAME} %{FILEGROUPNAME} %{FILENAMES}\n]' GeoIP
root root /etc/GeoIP.conf
root root /etc/GeoIP.conf.default
root root /usr/bin/geoiplookup
root root /usr/bin/geoiplookup6
root root /usr/bin/geoipupdate
root root /usr/lib64/libGeoIP.so.1
root root /usr/lib64/libGeoIP.so.1.4.6
root root /usr/lib64/libGeoIPUpdate.so.0
其中 —qf 是 —queryformat 的缩写,查询的格式字符串非特殊字符直接输出:
# rpm -q --qf '%{NAME} | %{VERSION} | %{RELEASE}\n' bash
bash | 3.2 | 24
而且还能这样:
# rpm -q --qf '%{NAME} | %20{VERSION} | %{RELEASE}\n' bash
bash | 3.2 | 24
[root@builder4-x86 kvm]# rpm -q --qf '%{NAME} | %-20{VERSION} | %{RELEASE}\n' bash
bash | 3.2 | 24
