rpm命令詳解及和yum之間的關系

    RPM 全名是“ RedHat Package Manager ”簡稱則為 RPM 顧名思義,當初這個軟件管理的機制是由 Red Hat 這家公司發展出來的。 RPM 是以一種數據庫記錄的方式來將你所需要的軟件安裝到你的 Linux 系統的一套管理機制。

    但是安裝的時候必須具備的相依賴性(依賴關系)軟件,當安裝在你的 Linux 主機時, RPM 會先依照軟件里頭的數據查詢Linux 主機的相依賴性軟件是否滿足, 若滿足則予以安裝,若不滿足則不予安裝。為了解決這種具有依賴關系軟件之間的問題 ,RPM 就在提供打包的軟件時,同時加入一些訊息登錄的功能,這些訊息包括軟件的版本、 打包軟件者、相依賴關系的其他軟件、本軟件的功能說明、本軟件的所有文件記錄等等,然后在 Linux 系統上面亦創建一個 RPM 軟件數據庫,如此一來,當你要安裝某個以 RPM 型態提供的軟件時,在安裝的過程中, RPM 會去檢驗一下數據庫里面是否已經存在相關的軟件了, 如果數據庫顯示不存在,那么這個 RPM 文件“默認”就不能安裝。這個就是 RPM 類型的文件最為人所詬病的“軟件的依賴關系”問題。然而這種解決方法對用戶來說,并沒有什么卵用。所以就有了YUM的前端處理機制,將這些相依賴的軟件先列表, 在有要安裝軟件需求的時候,先到這個列表去找,同時與系統內已安裝的軟件相比較,沒安裝到的依賴軟件就一口氣同時安裝起來,就解決了相依屬性的問題。


    

    rpm命令:rpm 選項 壓縮包

            安裝:-i,–install

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

            卸載:-e,–erase

            查詢: -q,–query

            校驗; -V,–verify

            數據庫維護:–builddb,–initdab

    安裝:

            rpm {-i|–install} [install-options] PACKAGE_FILE …

            rpm -ivh package-file(一般情況下都用此格式安裝)

            通用選項

            -v:詳細信息

            -vv:更詳細的輸出

            [install-options]

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

            –test:測試安裝,檢測并報告依賴關系及沖突消息等

            –nodeps:忽略依賴關系(不保證可用性),不建議這么做

            –replacepkgs:重新安裝

            –justdb:

            注意:rpm包可以自帶腳本;

                四類:–noscripts

                –nopre preinstall:安裝過程開始之前預習的腳本

                –nopost postinstall:安裝過程完成那個之后運行的腳本

                –nopreun prenuninstall:卸載過程真正開始執行之前運行的腳本

                –nopostun postuninstall:卸載過程完成之后運行的腳本

                –nosignature:不檢查包簽名信息,及不檢查來源合法性警告信息

                –nodigest:不檢測包完整性信息

    升級:

            rpm -U –upgrade [install-options] package_file

            rpm -F –freshen[install-options]package_file

                -u:升級或者安裝

                -F:升級

                rpm -Uvh package_file

                rpm -Fvh package_file

                –oldpackage:降級;

                –force:強制升級

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

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

       新版本的配置文件重命名(filename.rpmnew)后保留

    卸載:

            rpm -e package_name 

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

                –nodeps:忽略依賴關系

                –test:測試卸載,不真正執行

    查詢:

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

                有兩類選項

                [select-options]

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

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

                -f file:查詢指定的文件由哪個程序包安裝生成

            rpm -qf /etc/fstab;非常有用,可以查出文件是由哪個程序生成的

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

                –whatprivides CAPABILITY:查詢指定的CAPABILITY由哪個程序包提供;

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

            [query-options]

                –changelog:查詢rpm包的changlog;

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

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

                rpm -qi 此命令用到很多

                -c,–configfiles;查詢指定的程序提供的配置文件

                -d,–docfiles:查詢指定的程序包提供的文檔;

                –provides:列出指定的程序包提供的所有capabity(功能)

                -R,–requires:查詢指定的程序包的依賴關系

                –scripts:查看程序包自帶的腳本片段

            用法:

                -qi PACKAGE,-qf file ,-ql package,-qd package

                -qpi package_file,-qpl package_file,-qpc package_file

    校驗:

            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-/RPM-GRG-KEY-CENTOS-7gpgkey_file

             (一般為/media/cdrom/RPM-GRG-KEY-CENTOS-7和/etc/pki/rpm-gpg)七系統

      驗證:

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

             2手動驗證:rpm -K PACKAGE_FILE

     數據庫重建:

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

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

     獲取幫助:

              centos 6:man rpm

              centos 7:man rpmdb

              rpm{–initdb|–rebuilddb}

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

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


原創文章,作者:M20-1馬星,如若轉載,請注明出處:http://www.www58058.com/37726

(0)
M20-1馬星M20-1馬星
上一篇 2016-08-21
下一篇 2016-08-21

相關推薦

  • 腳本又見腳本,作業又是作業_第七周

    1、創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; [root@centos ~]# fdisk -l &n…

    Linux干貨 2016-12-30
  • vim 編輯器介紹

         vi: Visual Interface ,文本編輯器  文本:ASCII, Unicode  文本編輯種類: 行編輯器: sed 全屏編輯器:nano, vi vim – Vi Improved  其他編輯器: gedit 一個簡單的圖形編輯器 gvim 一個 Vim 編輯器…

    2017-06-03
  • 硬鏈接與軟鏈接的聯系與區別

    硬鏈接與軟鏈接的聯系與區別 我們知道文件都有文件名與數據,這在 Linux 上被分成兩個部分:用戶數據 (user data) 與元數據 (metadata)。用戶數據,即文件數據塊 (data block),數據塊是記錄文件真實內容的地方;而元數據則是文件的附加屬性,如文件大小、創建時間、所有者等信息。在 Linux 中,元數據中的 inode 號(ino…

    Linux干貨 2016-10-23
  • LINUX的初探

    一般而言,計算機的組成遵循著“馮諾依曼體系結構”。這種結構的體現實質上是一種存儲程序的原理,把程序本身當作數據來對待,程序和該程序處理的數據用同樣的方式來存儲。這種結構的要點是:計算機的數制采用二進制;計算機應該按照程序順序執行。

    2018-03-04
  • 硬鏈接和軟鏈接的區別

    硬鏈接和軟鏈接的區別 1、概念 在linux中,鏈接可分為兩種:一種為硬鏈接,另一種為軟鏈接。硬鏈接:ln 源文件 目標文件軟鏈接:ln -s(soft)源文件 目標文件 硬鏈接 硬鏈接是指通過索引節點inode來進行鏈接。linux系統中每個文件對應一個inode,并且允許多個文件名指向用一個inode。這種情況的文件就成為硬鏈接。它的作用之一就是允許一個…

    Linux干貨 2017-07-23
  • 系統基礎之shell腳本編程詳解3(函數)

    shell腳本編程詳解3:    在前兩節我們分別介紹了shell腳本編程的基礎和循環,判斷的知識,今天我們分享腳本的另一種用法,函數. 概論:     函數function是由若干條shell命令組成的語句塊,實現代碼重用和模塊化編程。    它與shell…

    Linux干貨 2016-08-22

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-22 09:52

    軟件包管理工具中rpm工具中的查詢選項是比較常用的,而yum倉庫的配置是一個基本技能,文章確實一筆帶過,未深入介紹。

欧美性久久久久