1. 程式人生 > 實用技巧 >01-Linux系統-RPM包詳解

01-Linux系統-RPM包詳解

一、RPM包詳解

rpm命令執行安裝rpm包和原始碼包,

  1. rpm包以.rpm結尾,
  2. 原始碼包以.src.rpm結尾

用rpm安裝需要考慮如下資訊:
  1. 需要考慮系統的版本需要與rpm對應
  2. 系統的架構:如32位還是64位
  3. 需要考慮依賴關係
  4. 有依賴關係,不能自動解決依賴關係。

二、RPM軟體包命令規則

name-version-arch.rpm
name-version-arch.src.rpm
示例:bind-9.8.2-0.47.rc1.el6.x86_64.rpm
示例解析:
1.name,如:bind,是軟體的名稱
2.version,如:9.8.2-0,是軟體的版本號,版本號格式通常為“主版本號.次版本號.修正號”。47,是釋出版本號,表示這個rpm軟體包是第幾次編譯生成的
3.arch,如i386,是表示包適用的硬體平臺,目前rpm支援的平臺有:i386,i586,i686,sparc和alpha
4..rpm和.src.rpm,是rpm包型別字尾,rpm是編譯好的二進位制包,.src.rpm是原始碼包
特殊名稱:
  1. el*:表示發行商的版本,el6表示這個軟體包是在rhel6.x/centos6.x下使用;
  2. devel:表示這個rpm包是軟體的開發包
  3. noarch:說明這樣的軟體包可以在任何平臺安裝和執行,不需要特定的硬體平臺

三、RPM常用命令

1、安裝

語法 # rpm -ivh 軟體包名稱
-i install
-vh verbose human
-U  upgrade  升級

查詢rpm包的網站:http://rpmfind.net/  http://pkgs.org
1.通過rpm安裝
可以先下載下來
[root@proxy2 ~]# wget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/n/ntfs-3g-2017.3.23-11.el7.x86_64.rpm
#wget下載命令
#wget -O 指定存放路徑
[root@proxy2 ~]# rpm -ivh ntfs-3g-2017.3.23-11.el7.x86_64.rpm  #本地安裝rpm包

2.直接通過連線安裝rpm包
[root@proxy2 ~]# rpm -ivh http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/n/ntfs-3g-2017.3.23-11.el7.x86_64.rpm

2、查詢

從本地的rpm資料庫
語法:
    -q query
    -l list
    -f file
    -a all
    -i file
1、查詢軟體是否安裝 
[root@proxy2 ~# rpm -qa | grep 軟體名    # 
2、查詢http安裝的檔案
[root@proxy2 ~]# rpm -ql httpd           #
3、查詢該檔案屬於哪個包
[root@proxy2 ~]# rpm -qf /usr/share/httpd/noindex     #
4、查詢某一個檔案是哪個軟體產生的:只能查詢已經安裝好的軟體
[root@proxy2 ~]# rpm -qf /etc/passwd  #
5、檢視命令是哪個安裝包安裝,安裝包裡有哪些檔案?
[root@proxy2 ~]# rpm -qfl `which ssh`
6、檢視軟體包資訊
[root@proxy2 ~]# rpm -qfi `which ssh`

3、解除安裝

語法:# rpm -e 軟體名稱
-e erase
[rroot@proxy2 ~]# rpm -e httpd

4、其他命令

-ivh 安裝並顯示安裝進度(規則:rpm –ivh 包名)
示例:rpm –ivh bind-9.8.2-0.47.rc1.el6.x86_64.rpm

-Uvh 升級軟體包(rpm –Uvh 包名 //升級軟體包-舊升新,低升高)
示例:rpm –Uvh --oldpackage bind-9.8.2-0.47.rc1.el6.x86_64.rpm(新版本軟體包降級為舊版本)
-ql 列出rpm軟體包內的檔案資訊(顯示已安裝軟體包內容)
示例:rpm –ql vsftpd (規則:rpm –ql 軟體名)

-qi 列出rpm軟體包描述資訊(顯示已安裝軟體包屬性)
示例:rpm –qi bind (規則:rpm –qi 軟體名)

-qf 檢視指定檔案屬於哪個軟體包(rpm –qf 檔名)
示例:rpm –qf /etc/rc.d/init.d/named

-Va 校驗所有rpm包,查詢丟失的檔案

-e 刪除rpm軟體包(rpm –e 包名)
示例:rpm –e bind-9.8.2-0.47.rc1.el6.x86_64.rpm

-qpR 檢視rpm包依賴關係
示例:rpm –qpR 包名

--force 忽略軟體包及檔案的衝突,即強制安裝(長格式命令)
--nodeps 忽略軟體包的依賴關係(長格式命令)
--test 安裝測試,並不實際安裝(長格式命令)
示例:測試--nodeps和--test,rpm –ivh httpd-2.2.15-53.el6.x86_64.rpm --test 並不安裝,測試一下httpd軟體包的依賴

安裝到指定目錄(未測試成功)
rpm -ivh --relocate /=/tmp/11 httpd-2.2.15-53.el6.x86_64.rpm --nodeps

檢視命令是哪個安裝包安裝,安裝包裡有哪些檔案?
一步到位:rpm -qfl `which rz`

檢視軟體包資訊
一步到位:rpm -qfi `which rz`



來自為知筆記(Wiz)