程序包管理之rpm

rpm命令參數使用詳解

CentOS系統上rpm命令管理程序包:

    主要分爲:安裝、升級、卸載、查詢和校驗、數據庫維護

    使用格式:rpm命令:rpm [OPTIONS] [PACKAGE_FILE]

       選項:

         安裝:-i,--install

         升級:-U,--update,-F,--freshen

         卸載:-e,--erase

         查詢:-q,--query

         校驗:-V,--verify

         數據庫維護:--builddb,--initdb

一、安裝

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

      rpm -ivh PACKAGE_FILE ...

      GENERAL OPTIONS:

      -v:verbose,詳細信息

圖示:

wKiom1Z6D96gwicaAAAs1u9Ft8g812.png      -vv:更詳細的信息

圖示:

[root@localhost Packages]# rpm -ivvh zsh-5.0.2-7.el7.x86_64.rpmwKioL1Z6EKyjRV6sAABNGFP_Htw288.png

 [install-options]:

          -h:hash marks輸出進度條,每個#表示2%的進度

          --test:測試安裝,檢查並報告依賴關係及衝突消息等

圖示

wKioL1Z6EWzikCv_AAAjO4L7AsU521.png          --nodeps:忽略依賴關係,不建議

圖示

wKioL1Z6EhywWUiIAACEY_yYR58878.png          --replacepkgs:重新安裝(原有文件被修改,需刪除)

圖示:

wKioL1Z6EpSjJdzqAAAtAE1j0Ac137.png


rpm自帶腳本;

     共分爲四類:--noscripts

     1、preinstall:安裝過程開始之前運行的腳本,%pre , --nopre

2、postinstall:安裝過程完成之後運行的腳本,%post , --nopost

3、preuninstall:卸載過程真正開始執行之前運行的腳本,%preun, --nopreun 

4、postuninstall:卸載過程完成之後運行的腳本,%postun , --nopostun

      --nosignature:不檢查包簽名信息,不檢查來源合法性;

圖示:

wKioL1Z6FQCAwfkvAAAYhuxtPKo575.png

      --nodigest:不檢查包完整性信息;

圖示:

wKioL1Z6FUCTQlkgAAAssJMr020780.png

二、升級

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

    upgrade:安裝有舊版程序包,則“升級”;如果不存在舊版程序包,則“安裝”

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

    freeshen:安裝有舊版程序包,則“升級”;如果不存在舊版程序包,則不執行升級

     

-U:升級或安裝;

-F:升級

rpm  -Uvh PACKAGE_FILE ...

圖示:

wKiom1Z6HLHTHPFBAAA-rzMZIhw398.png

rpm  -Fvh PACKAGE_FILE ...

圖示:

wKiom1Z6HYrhl3IhAAA-wcN_4rE687.png

--oldpackage:降級;

--force:強制升級;

注意:(1)不要對內核做升級操作:Linux支持多內核版本並存,因此,直接安裝新版本內核

    (2)如果某原程序包的配置文件安裝後曾被修改過,升級時,新版本的程序提供的同一       個配置文件不會覆蓋原有版本的配置文件,而是把新版本的配置文件重命名後提供

三、卸載:

        rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]

            --allmatches:卸載所有匹配指定名稱的程序包的各版本

            --nodeps:忽略依賴關係

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

圖示:

wKioL1Z6GVuzu-q6AAAa58vDBts829.png

四、查詢:

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

         [select-options] 

          PACKAGE_NAME:查詢指定的程序包是否已經安裝,及其安裝版本

          -a,--all:查詢所有已經安裝過的包

          -f FILE:查詢指定的文件由哪個包安裝的

圖示:

wKioL1Z6Hk_R3LxhAAAPgzxb-GE379.png

          -p, --package PACKAGE_FILE:用於實現對未安裝的程序包執行查詢操作

         --whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個程序包提供

         --whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴

           [query-options]

           --changelog:查詢rpm包的changlog

           -l,--list:程序安裝生成的所有文件列表

wKiom1Z6H63wpJVUAAAtEY7kfwY280.png

           -i,--info:程序包相關的信息,版本號、大小、所屬的包組,等

wKioL1Z6HyzyvTDVAABSs_5cNVs498.png           -c,--configfiles:查詢指定的程序包提供的配置文件

wKiom1Z6H9zR3LrmAAAWN3O6aso937.png           -d,--docfile:查詢指定的程序包提供的文檔

           -R,--requlres:查詢指定的程序包的依賴關係

           --provides:列出指定的程序包提供的所有的CAPABILITY

           --scripts:查看程序包自帶的腳本片斷


五、校驗:

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

         S file Size differs

       M Mode differs (includes permissions and file type)

       5 digest (formerly MD5 sum) differs MD5碼

       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 

         包來源合法性驗證和完整性驗證:

         來源合法性驗證:

                   數字簽名:       

                   完整性驗證:

       獲取並導入信任的包製作作者的密鑰:

       對於CentOS發行版來說:rpm--import/etc/pki/rpm-gpg/RPM-GPG-KEY-Centos-7

          驗證:

             1、安裝此組織簽名的程序時,會自動執行驗證

             2、手動驗證:rpm-K PACKAGE_FILE

wKioL1Z6IXOh3S2hAAAXpDPD7PE308.png

        光盤公鑰導入spacer.gif

                [root@localhost ~]# rpm --import /media/cdrom/RPM-GPG-KEY-CentOS-7

六、數據庫重建:

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

          查詢操作:通過此處的數據庫進行;

          獲取幫助:

              centos6:man rpm

              centos7:man rpmdb

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

          --initdb:初始化數據庫,當前無任何數據庫可實始化創建一個新的;當前                  有時不執行任何操作;

          --rebuilddb:重新構建,通過讀取當前系統上所有已經安裝過的程序包進                    行重新創建;

wKiom1Z6PL7j68yfAABcCXinzOc896.png



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