rpm命令手冊
rpm:軟件包的管理工具
功能選項
rpm命令是RPM軟件包的管理工具。rpm原本是Red Hat Linux發(fā)行版專門用來管理Linux各項套件的程序,由于它遵循GPL規(guī)則且功能強大方便,因而廣受歡迎。逐漸受到其他發(fā)行版的采用。RPM套件管理方式的出現(xiàn),讓Linux易于安裝,升級,間接提升了Linux的適用度。
命令語法
rpm [選項] [參數(shù)]
選項含義
| 選項 | 含義 |
|---|---|
| -i | 安裝軟件包 |
| -v | 輸出詳細信息 |
| -h | 安裝軟件包時打哈希標記 (和 -v 一起使用效果更好) |
| -c | 查詢rpm包的配置文件 |
| -e | 卸載軟件包 |
| -U | 升級軟件包 |
| -a | 查詢所有的軟件包 |
| -f | 查詢文件或命令屬于哪個軟件包 |
| -l | 顯示軟件包的文件列表 |
| -s | 顯示文件狀態(tài),本參數(shù)需配合”-l”參數(shù)使用 |
| -p | 查詢指定的rpm軟件包 |
| -q | 查詢軟件包 |
| -R | 顯示軟件包的依賴關(guān)系 |
| --force | 忽略軟件包和文件的沖突 |
| --percent | 以百分比的形式輸出安裝進度 |
| --nodeps | 不驗證軟件包的依賴關(guān)系 |
| --excludedocs | 不安裝軟件包中的文檔文件 |
| --test | 只對安裝進行測試,并不實際安裝 |
參數(shù)含義
參數(shù)指軟件包,即 指定要操縱的rpm軟件包。
參考實例
實例1 安裝rpm軟件包
// (1)安裝rpm 軟件包:
rpm -ivh your-package.rpm
安裝過程中可能出現(xiàn)下面的警告或者提示:
... conflict with ...
// (2)要安裝的軟件包有一些文件可能會覆蓋現(xiàn)有文件,可使用 --force 強制安裝
rpm --force -ivh your-package.rpm
若出現(xiàn)以下提示:
... is needed by ...
... is not installed ...
// (3)使用 --force --nodeps 忽略依賴關(guān)系和文件問題,什么包都能安裝上(這種強制安裝的軟件包不能保證完全發(fā)揮功能)
rpm --force --nodeps -ivh your-package.rpm
實例2 安裝 .src.rpm軟件包
有些軟件包是以.src.rpm 結(jié)尾的,這類軟件包是包含了源代碼的rpm包,在安裝時需要進行編譯。這類軟件包有兩種安裝方法:
方法一:
rpm -i your-package.src.rpm
cd /usr/src/redhat/SPECS
rpmbuild -bp your-package.specs #一個和你的軟件包同名的specs文件
cd /usr/src/redhat/BUILD/your-package/ #一個和你的軟件包同名的目錄
./configure #這一步和編譯普通的源碼軟件一樣,可以加上參數(shù)
make
make install
方法二:
rpm -i you-package.src.rpm
cd /usr/src/redhat/SPECS
前兩步和方法一相同
rpmbuild -bb your-package.specs #一個和你的軟件包同名的specs文件
這時在 /usr/src/redhat/RPM/i386(根據(jù)具體包的不同,也可能是i686,noarch等等)在這個目錄下,有一個新的rpm包,這個是編譯好的二進制文件。執(zhí)行rpm -i new-package.rpm即可安裝完成。
實例3 卸載rpm軟件包
// (1)卸載rpm包
rpm -e you-package.rpm
有時會出現(xiàn)一些錯誤或者警告:
... is needed by ...
// (2)這說明這個軟件被其他軟件需要,不能隨便卸載,可以用rpm -e --nodeps強制卸載
rpm -e --nodeps you-package
實例4 查看與rpm包相關(guān)的文件和其他信息
// (1)列出所有安裝過的rpm包
[root@cnLinuxer ~]# rpm -qa
// (2)查找所有安裝過的包中含字符串ftp的軟件包
[root@cnLinuxer ~]# rpm -qa | grep ftp
ftp-0.17-67.el7.x86_64
// (3)獲取某個軟件包的文件全名
[root@cnLinuxer ~]# rpm -q ftp
ftp-0.17-67.el7.x86_64
// (4)確認rpm包中的文件安裝到哪里去了
[root@cnLinuxer ~]# rpm -ql ftp
/usr/bin/ftp
/usr/bin/pftp
/usr/share/man/man1/ftp.1.gz
/usr/share/man/man1/pftp.1.gz
/usr/share/man/man5/netrc.5.gz
// (5)確認未安裝的rpm包中包含哪些文件
[root@cnLinuxer ~]# rpm -qlp ***.rpm
// (6)獲取已安裝過的軟件包的版本、用途等相關(guān)信息
[root@cnLinuxer ~]# rpm -qi ftp
Name : ftp
Version : 0.17
Release : 67.el7
Architecture: x86_64
Install Date: 2021年09月24日 星期五 23時58分48秒
Group : Applications/Internet
Size : 98723
License : BSD with advertising
Signature : RSA/SHA256, 2016年11月21日 星期一 01時45分48秒, Key ID 24c6a8a7f4a80eb5
Source RPM : ftp-0.17-67.el7.src.rpm
// (7)獲取未安裝過的軟件包的版本、用途等相關(guān)信息
[root@cnLinuxer ~]# rpm -qip ***.rpm
// (8)確認某個程序是由哪個軟件包安裝的,或者哪個軟件包包含這個程序。
rpm -qf `which 程序名` #返回軟件包的全名
rpm -qif `which 程序名` #返回軟件包的有關(guān)信息
rpm -qlf `which 程序名` #返回軟件包的文件列表
// (9)查詢ftp軟件包的依賴關(guān)系
[root@cnLinuxer ~]# rpm -qR ftp
libc.so.6()(64bit)
libc.so.6(GLIBC_2.11)(64bit)
...
// (10)查詢crontabs軟件包的配置文件
[root@cnLinuxer ~]# rpm -qc crontabs
/etc/crontab
有收獲,點個在看 
評論
圖片
表情
