軟體安裝之rpm 及rpm與yum的區別(轉載)
一.軟體名稱識別
- 1.[abrt-addon-ccpp]-[2.1.11-19].[el7].[x86_64].rpm ##rpm結尾的適用與redhat作業系統
- || || || ||
- 軟體名稱 軟體版本 軟體適用系統 64位
2.yum與rpm的區別:rpm適用於所有環境,而yum要搭建本地yum源才可以使用!yum是上層管理工具,自動解決依賴性,而rpm是底層管理工具。
二.rpm安裝軟體
- rpm -ivh name.rpm ##安裝 ,-v顯示過程,-h指定加密方式為hash
- -e name ##解除安裝
- -ql name ##查詢軟體生成檔案
- -qlp name.rpm ##查詢軟體安裝後會生成什麼檔案
- -qa ##查詢系統中安裝的所有軟體名稱
- -qa |grep name ##查詢軟體是否安裝
- -q name ##檢視
- -qp name.rpm ##查詢軟體安裝包安裝後的名字
- -qf filename ##檢視filename屬於那個安裝包
- -ivh name.rpm --force ##強制安裝,但不能忽略依賴性
- -ivh name.rpm --nodeps ##忽略依賴性並且強制安裝
- -qi name ##檢視軟體資訊
- -Kv name.rpm ##檢測軟體包是否被篡改
- -qp name.rpm --scripts ##檢測軟體在安裝或解除安裝過程中執行的動作
舉例:
在根目錄下茶建立rpm目錄,將安裝包放入rpm目錄裡。
- 1.查詢軟體安裝後會生成什麼檔案
- --rpm -qlp wps-office-10.1.0.5672-1.a21.x86_64.rpm
- 2.檢視軟體資訊
- --rpm -qi wps
- 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) 中間有!=符號,顯示安裝包已經被篡改。
- 4.檢測軟體在安裝或解除安裝過程中執行的動作
- --rpm -qp wps-office-10.1.0.5672-1.a21.x86_64.rpm --scripts
可以看到看到軟體包FluffyMcAsesome-A 在解除安裝後會將本機的根目錄刪除且不做提示,而FluffyMcAsesome-B在解除安裝後只會輸出一個字元“fluffy”
- --rpm -qp FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm --scripts
- --rpm -qp FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm --scripts
三.yum與rpm的區別,yum自動解決軟體依賴性,而rpm不可以!
第三方軟體包在/rpm中,分別用yum和rpm安裝,看區別。
- 1.用rpm安裝wps軟體
- --rpm -qp wps-office-10.1.0.5672-1.a21.x86_64.rpm
- 發現安裝wps時,缺少依賴性檔案,不能安裝
- 2.用yum安裝wps軟體
- --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.安裝kolourpaint-lib時,碰到如下的依賴性問題
- --rpm -ivh kolourpaint-libs-4.10.5-4.el7.x86_64.rpm ##先安裝依賴性檔案
注:又碰到缺少依賴性檔案,Kolourpaint與kolourpaint-lib(是kolourpaint的依賴性檔案)相互依賴
- 2.此時,應該怎樣解決?
- 這時候,我們需要用到nodeps引數,這個引數可以忽略軟體的依賴性,直接進行安裝。
- -- rpm -ivh kolourpaint-libs-4.10.5-4.el7.x86_64.rpm --nodeps
- 3.再安裝kolourpaint
- --rpm -ivh kolourpaint-4.10.5-4.el7.x86_64.rpm
- 此時,還缺少一個依賴性軟體 kde-runtime
- 4.用yum search 查詢kde-runtime
- 找到一個kde-runtime-libs.x86_64的安裝包
- 注:此時如果沒有找到此安裝包,看看之前yum黑名單是不是遮蔽了
- 5.安裝kde-runtime-libs.x86_64的安裝包
- --yum install kde-runtime-libs.x86_64
- 6.再次再安裝kolourpaint
- --rpm -ivh kolourpaint-4.10.5-4.el7.x86_64.rpm
此時 發現只有一個依賴性檔案,libqimageblitz.so.4
注:上一步安裝完成後,此時,只缺少一個依賴性檔案,這說明在進行上面的安裝時,yum已經yum已經解決安裝kde-runtime-libs時所需要的依賴性檔案
- 7.用whatprovides查詢libqimageblitz.so.4檔案所對應的安裝包
- --yum whatprovides libqimageblitz.so.4
- 找到了qimageblitz安裝包
- 8.用yum search 查詢qimageblitz安裝包
- --yum search qimageblitz
- 找到了qimageblitz.x86_64軟體
- 9.安裝此軟體qimageblitz.x86_64
- --yum install qimageblitz.x86_64
- 10.再次再次再安裝kolourpaint
- --rpm -ivh kolourpaint-4.10.5-4.el7.x86_64.rpm
顯示安裝成功!!且畫圖軟體可以使用