rpm

CentOS系統上程序rpm包管理:

安裝、升級、卸載、查詢、檢驗


通過rpm命令完成


安裝:

rpm {-i|--install} [install-options] PACKAGE_FILE1...


-h: hash,以#來表示安裝進度;

-v, --verbose:顯示安裝過程中的詳細信息;

-vv: 

-vvv:


安裝時常用的組合: -ivh, -ivvh


--test:不執行真正的安裝過程,而僅報告依賴關係及衝突信息等;


程序包之間存在依賴關係:

由衆多目的單一的小程序組成;結果程序包之間存在相關性;

X --> Y

X --> Y --> (M,N) --> ...

X <--> Y


忽略依賴關係:

副作用:能安裝成功,但未必能成功運行;


--nodeps


覆蓋安裝:重新安裝並覆蓋原有的文件

--replacepkgs


強制安裝:

--force


升級:


rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

-U: 升級或安裝


rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

-F:升級


組合:-Uvh, -Fvh


--test

--nodeps

--force

--oldpackage:降級到舊版本;


注意:一定不要對內核執行升級;Linux允許多內核共存,所以,可以直接安裝多個不同版本內核;


注意:如果程序包的配置文件安裝後曾被修改,升級時,新版本的文件不會覆蓋老版本的配置文件,而把新版本的配置文件重命名(加後綴.rpmnew)後保存;


卸載:


移除已經安裝的程序包


rpm {-e|--erase} [--allmatches] [--nodeps] [--test] PACKAGE_NAME ...


簡單用法:rpm -e PACKAGE_NAME...


--nodeps:忽略依賴關係;

--test: 測試卸載;dry-run模式;

--allmatches: 如果一個程序包同時安裝多個版本,則此選項一次全部卸載之;


注意:如果程序包的配置文件安裝後曾被修改,卸載時,此文件通常不會被刪除,而是被重命名(加後綴.rpmsave)後留存;


查詢:

查詢某包是否已經安裝,以及檢查安裝的所有包;還可以查看某包的詳細信息;


rpm {-q|--query} [select-options] [query-options]


[select-options]:

1、查詢某包或某些包是否安裝:

rpm -q PACKAGE_NAME...


2、查詢已經安裝的所有包:

rpm -qa


3、查詢某文件是由哪個包安裝生成:

rpm -qf /PATH/TO/SOMEFILE


4、查詢尚未安裝的包文件的相關信息

-p

# rpm -qpi PACKAGE_FILE




[query-options]:

1、查詢某包的簡要說明信息:

rpm -qi PACKAGE_NAME


2、查詢某包安裝生成的文件列表:

rpm -ql PACKAGE_NAME


3、查詢某包安裝完成後生成的所有配置文件:

rpm -qc PACKAGE_NAME


4、查詢某包安裝完成後生成的所有幫助文件:

rpm -qd PACKAGE_NAME


5、查看某包製作時隨版本變化的changelog信息:

rpm -q --changelog PACKAGE_NAME


6、查詢某包提供的capabilities:

rpm -q --provides PACKAGE_NAME


7、查詢某包所依賴的capabilities:

rpm -q --requires PACKAGE_NAME


8、查詢某包安裝或卸載時執行腳本:

rpm -q --scripts PACKAGE_NAME


腳本有四類:

preinstall: 安裝過程開始之前執行的腳本;

postinstall: 安裝過程完成之後執行的腳本;

preuninstall: 卸載開始之前執行的腳本 ;

postuninstall: 卸載過程完成之後執行的腳本;


校驗:

查詢包安裝之後生成的文件是否發生了改變


rpm {-V|--verify} [select-options] [verify-options]


常見用法:rpm -V PACKAGE_NAME


      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 --import /path/to/RPM-GPG-KEY-FILE


例如:# rpm --import RPM-GPG-KEY-CentOS-6


驗正:rpm {-K|--checksig} PACKAGE_FILE

--nosignature: 不檢查來源合法性

--nodigest: 不檢查完整性


rpm管理器數據庫:/var/lib/rpm


重建數據庫:

rpm {--initdb|--rebuilddb} [-v] [--dbpath DIRECTORY]


--initdb: 初始化數據庫,即數據庫完全不存時,可新建之;


--rebuilddb: 無論當前數據存在與否,都會直接重建此庫;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章