一、概要
RPM:RPM Package Manager(rpm軟件包管理器)的縮寫。它能將編譯好的程序打包一個文件或有限的幾個文件,可用于實現安裝、卸載、升級、查詢等功能。
二、rpm軟件包管理
rpm包的命名格式:name-version-relase.arch.rpm
例如:bash-1.1.0-5.el6.x86_64.rpm
其中bash是就是我們的軟件名字,1.1.0-5是該軟件的版本號,el6.x86_64這兩個部分是指我們該rpm包的運行平臺的操作系統版本。例如el6就表示是針對于RHEL6的發現版本,我們使用的是什么版本的Linux操作系統,我們就要去下載對應的rpm版本,x86_64表示是運行在64位上的系統。
rpm的基礎命令: rpm [option] /path/to/package_file(rpm+選項+安裝包文件)
rpm的使用方法相當簡單,常用選項有:
安裝軟件:rpm -i /path/to/package_file
卸載軟件:rpm -epackage_name(軟件名字)
以升級方式安裝:rpm -U /path/to/package_file //軟件原先存在則升級,否則安裝
常用組合命令:
-v: 顯示安裝過程
-h:以#顯示安裝進度,一個#表示2%
例如:我們安裝下bash的rpm包
[root@jxf home]# rpm -ivh bash-1.1.0-5.el6.x86_64.rpm // 通常我們一般安裝時跟上 -ivh參數,來顯示安裝的詳細信息
Preparing… ########################################## [100%]
1:tigervnc ########################################### [100%]
此時,我們發現軟件已經安裝完畢。
另外:rpm –test /path/to/package_file 將對安裝包進行安裝測試,不會直接安裝
rpm –replacepkgs /path/to/package_file 將對軟件進行覆蓋安裝
注意:在卸載程序包時,如果此程序被其他包所依賴,則將依賴于此包的所有包一并卸載,或者,使用–nodpes選項忽略依賴關系;但是,依賴于此程序的程序包可能無法正常運行。
RPM常用查詢命令:
rpm -qa 列出所有已安裝的rpm軟件
[root@jxf home]# rpm -qa
java-1.6.0-openjdk-devel-1.6.0.0-1.50.1.11.5.el6_3.x86_64
qimageblitz-0.0.4-1.el6.x86_64
gnome-python2-gnomevfs-2.28.0-3.el6.x86_64
perl-ExtUtils-ParseXS-2.2003.0-129.el6.x86_64
iscsi-initiator-utils-6.2.0.873-2.el6.x86_64
libhbaapi-2.2.6-1.el6.x86_64
perl-BSD-Resource-1.29.03-3.el6.x86_64
sane-backends-1.0.21-3.el6.x86_64
gtkspell-2.0.16-1.el6.x86_64
rpm -qf filename 查詢指定文件屬于哪個rpm包
[root@xiaoluo home]# rpm -qf /usr/share/mysql/
-libs-.-.el6_3.x86_64
rpm -qi packagename 查詢已軟件包的信息
[root@localhost jjh]# rpm -qi libmtp
Name : libmtp Relocations: (not relocatable)
Version : 1.0.1 Vendor: CentOS
Release : 2.el6 Build Date: Wed 18 Aug 2010 09:30:05 PM CST
Install Date: Tue 03 Mar 2015 04:41:08 PM CST Build Host: c6b3.bsys.dev.centos.org
Group : System Environment/Libraries Source RPM: libmtp-1.0.1-2.el6.src.rpm
Size : 711583 License: LGPLv2+
Signature : RSA/8, Sun 03 Jul 2011 12:36:58 PM CST, Key ID 0946fca2c105b9de
Packager : CentOS BuildSystem <http://bugs.centos.org>
URL : http://libmtp.sourceforge.net/
Summary : A software library for MTP media players
Description :
This package provides a software library for communicating with MTP
(Media Transfer Protocol) media players, typically audio players, video
players etc.
rpm -ql packagename 查詢指定軟件包包含的文件
[root@localhost jjh]# rpm -ql libmtp
/lib/udev/rules.d/60-libmtp.rules
/usr/lib64/libmtp.so.8
/usr/lib64/libmtp.so.8.3.1
/usr/share/hal/fdi/information/10freedesktop/10-usb-music-players-libmtp.fdi
rpm -qip software.rpm 查詢rpm文件的信息
[root@jxf home]# rpm -qip zip-3.0-1.el6.x86_64.rpm
Name : zip Relocations: (not relocatable)
Version : 3.0 Vendor: CentOS
Release : 1.el6 Build Date: Wed 18 Aug 2010 09:30:05 PM CST
Install Date: (not installed) Build Host: c6b3.bsys.dev.centos.org
Group : Applications/Archiving Source RPM: zip-3.0-1.el6.src.rpm
Size : 823612 License: BSD
Signature : Tue 03 Mar 2015 04:41:08 PM CST Key ID 0946fca2c105b9de
Packager : CentOS BuildSystem <http://bugs.centos.org>
URL : http://www.info-zip.org/Zip.html
Summary : A file compression and packaging utility compatible with PKZIP
Description :
The zip program is a compression and file packaging utility. Zip is
analogous to a combination of the UNIX tar and compress commands and
is compatible with PKZIP (a compression and file packaging utility for
MS-DOS systems).
Install the zip package if you need to compress files using the zip
program.
rpm -qlp software.rpm 查詢rpm文件包含的文件
[root@jxf home]# rpm -qlp zip-3.0-1.el6.x86_64.rpm
/usr/bin/zip
/usr/bin/zipcloak
/usr/bin/zipnote
/usr/bin/zipsplit
/usr/share/doc/zip-3.0
/usr/share/doc/zip-3.0/CHANGES
/usr/share/doc/zip-3.0/LICENSE
/usr/share/doc/zip-3.0/README
/usr/share/doc/zip-3.0/README.CR
/usr/share/doc/zip-3.0/TODO
/usr/share/doc/zip-3.0/WHATSNEW
/usr/share/doc/zip-3.0/WHERE
/usr/share/doc/zip-3.0/algorith.txt
/usr/share/man/man1/zip.1.gz
/usr/share/man/man1/zipcloak.1.gz
/usr/share/man/man1/zipnote.1.gz
/usr/share/man/man1/zipsplit.1.gz
rpm校驗命令:
rpm -V package_name:查詢包安裝后文件屬性是否發生變化
[root@localhost jjh]# rpm -V libmtp
[root@localhost jjh]#
如果沒有任何顯示,則說明該軟件是完整的,否則顯示以下數據。
例如:S..D…..P
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 differ
如果某項屬性沒有變化,則顯示為:"."
rpm -K /path/to/package_file: 手動檢查包的完整性
[root@xiaoluo home]# rpm -K zip-3.0-1.el6.x86_64.rpm
zip-3.0-1.el6.x86_64.rpm: rsa sha1 (md5) pgp md5
數據庫目錄 /var/lib/rpm
使用rpm –initdb:初始化
如果事先沒有庫,會新建一個,如果有,則不重建
rpm –rebuilddb:重建
如果重建,覆蓋原有的數據庫
原創文章,作者:傲劍,如若轉載,請注明出處:http://www.www58058.com/3602