1. 程式人生 > 實用技巧 >軟體安裝之rpm 及rpm與yum的區別(轉載)

軟體安裝之rpm 及rpm與yum的區別(轉載)

一.軟體名稱識別

  1. 1.[abrt-addon-ccpp]-[2.1.11-19].[el7].[x86_64].rpm ##rpm結尾的適用與redhat作業系統
  2. || || || ||
  3. 軟體名稱 軟體版本 軟體適用系統 64

2.yum與rpm的區別:rpm適用於所有環境,而yum要搭建本地yum源才可以使用!yum是上層管理工具,自動解決依賴性,而rpm是底層管理工具。


二.rpm安裝軟體


  1. rpm -ivh name.rpm ##安裝 ,-v顯示過程,-h指定加密方式為hash
  2. -e name ##解除安裝
  3. -ql name ##查詢軟體生成檔案
  4. -qlp name.rpm ##查詢軟體安裝後會生成什麼檔案
  5. -qa ##查詢系統中安裝的所有軟體名稱
  6. -qa |grep name ##查詢軟體是否安裝
  7. -q name ##檢視
  8. -qp name.rpm ##查詢軟體安裝包安裝後的名字
  9. -qf filename ##檢視filename屬於那個安裝包
  10. -ivh name.rpm --force ##強制安裝,但不能忽略依賴性
  11. -ivh name.rpm --nodeps ##忽略依賴性並且強制安裝
  12. -qi name ##檢視軟體資訊
  13. -Kv name.rpm ##檢測軟體包是否被篡改
  14. -qp name.rpm --scripts ##檢測軟體在安裝或解除安裝過程中執行的動作

舉例:
在根目錄下茶建立rpm目錄,將安裝包放入rpm目錄裡。

  1. 1.查詢軟體安裝後會生成什麼檔案
  2. --rpm -qlp wps-office-10.1.0.5672-1.a21.x86_64.rpm

  1. 2.檢視軟體資訊
  2. --rpm -qi wps


  1. 3.檢查軟體包是否被修改
  2. 先篡改,再觀察效果
  3. --echo helloworld >> wps-office-10.1.0.5672-1.a21.x86_64.rpm ##將helloworld追加到wps安裝包內

--rpm -Kv wps-office-10.1.0.5672-1.a21.x86_64.rpm   ##檢視軟體包是否被修改


注:MD5 digest: BAD Expected(5bb5b15d9d6006305856c903999398a6) != (e2ec4416e7d020c59202bd3f4af1608a) 中間有!=符號,顯示安裝包已經被篡改。

  1. 4.檢測軟體在安裝或解除安裝過程中執行的動作
  2. --rpm -qp wps-office-10.1.0.5672-1.a21.x86_64.rpm --scripts


可以看到看到軟體包FluffyMcAsesome-A 在解除安裝後會將本機的根目錄刪除且不做提示,而FluffyMcAsesome-B在解除安裝後只會輸出一個字元“fluffy”

  1. --rpm -qp FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm --scripts
  2. --rpm -qp FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm --scripts


三.yum與rpm的區別,yum自動解決軟體依賴性,而rpm不可以!


第三方軟體包在/rpm中,分別用yum和rpm安裝,看區別。

  1. 1.用rpm安裝wps軟體
  2. --rpm -qp wps-office-10.1.0.5672-1.a21.x86_64.rpm
  3. 發現安裝wps時,缺少依賴性檔案,不能安裝
  1. 2.用yum安裝wps軟體
  2. --yum -ivh wps-office-10.1.0.5672-1.a21.x86_64.rpm


安裝正常完成


注:依賴性檔案是指,安裝wps軟體,必須先安好wps軟體的依賴性檔案,否則wps軟體不能安裝,所以在用rpm安裝wps時,rpm僅僅只安裝指定的軟體,不會安裝依賴性檔案,所以wps軟體不能安裝。若所安裝軟體無依賴性或者依賴性檔案被解決,則可以安裝,否則會報錯無法安裝。而使用yum安裝軟體時,檢測到軟體的依賴性檔案在yum源沒有安裝,yum會自動安裝依賴性軟體後再安裝軟體。


四.安裝Kolourpaint

先把軟體放在/rpm目錄裡:


Kolourpaint與kolourpaint-lib(是kolourpaint的依賴性檔案)

  1. 1.安裝kolourpaint-lib時,碰到如下的依賴性問題
  2. --rpm -ivh kolourpaint-libs-4.10.5-4.el7.x86_64.rpm ##先安裝依賴性檔案


注:又碰到缺少依賴性檔案,Kolourpaint與kolourpaint-lib(是kolourpaint的依賴性檔案)相互依賴

  1. 2.此時,應該怎樣解決?
  2. 這時候,我們需要用到nodeps引數,這個引數可以忽略軟體的依賴性,直接進行安裝。
  3. -- rpm -ivh kolourpaint-libs-4.10.5-4.el7.x86_64.rpm --nodeps


  1. 3.再安裝kolourpaint
  2. --rpm -ivh kolourpaint-4.10.5-4.el7.x86_64.rpm
  3. 此時,還缺少一個依賴性軟體 kde-runtime


  1. 4.用yum search 查詢kde-runtime
  2. 找到一個kde-runtime-libs.x86_64的安裝包
  3. 注:此時如果沒有找到此安裝包,看看之前yum黑名單是不是遮蔽了

  1. 5.安裝kde-runtime-libs.x86_64的安裝包
  2. --yum install kde-runtime-libs.x86_64


  1. 6.再次再安裝kolourpaint
  2. --rpm -ivh kolourpaint-4.10.5-4.el7.x86_64.rpm


此時 發現只有一個依賴性檔案,libqimageblitz.so.4
注:上一步安裝完成後,此時,只缺少一個依賴性檔案,這說明在進行上面的安裝時,yum已經yum已經解決安裝kde-runtime-libs時所需要的依賴性檔案

  1. 7.用whatprovides查詢libqimageblitz.so.4檔案所對應的安裝包
  2. --yum whatprovides libqimageblitz.so.4
  3. 找到了qimageblitz安裝包


  1. 8.用yum search 查詢qimageblitz安裝包
  2. --yum search qimageblitz
  3. 找到了qimageblitz.x86_64軟體


  1. 9.安裝此軟體qimageblitz.x86_64
  2. --yum install qimageblitz.x86_64


  1. 10.再次再次再安裝kolourpaint
  2. --rpm -ivh kolourpaint-4.10.5-4.el7.x86_64.rpm


顯示安裝成功!!且畫圖軟體可以使用