RPM程序包管理

       RPM的全名“RedHat Package Manager”,當初這個是RedHad公司開發的一款程序包管理套件,隨著RPM的不斷完善,RPM逐漸成為眾多linux發行版程序包管理器的代名詞,那什么是RPM,為什么會用到RPM這個程序包管理工具那,接下來我一一揭曉。

       RPM是以一種數據庫記錄的方式將所需要的軟件安裝到linux主機的一套管理程序,最大的特點就是將需要的軟件先編譯并打包,通過包裝好的套件中默認的數據庫記錄,來記錄這個套件在安裝的時候需要依賴的屬性模塊。知道是RPM是什么,那我們為什么需要它那,第一它幫我們解決的重新編譯的麻煩,早期的linux安裝軟件是需要自己下載源代碼,進行編譯,這對于普通用戶來說是一個非常耗時耗力的工作,第二由于他在安裝的時候把眾多的安裝信息記錄在了RPM的數據庫里面,所以我們很方面的可以查詢、升級、卸載我們的安裝包,所以RPM將是我們系統管理工作當然必不可少的一個工具。

       linux發行版本眾多,下面我們以CentOS6.7為例了解rpm程序包管理器,前面講解了那么多RPM的內容,那么究竟rpm是什么那?其實可以理解為一個工具,也可以理解為有著眾多選項的一個命令,能幫助我們實現程序包的安裝、升級、卸載、查詢和校驗。首先介紹一下rpm命令的使用方法:

             安裝:   

                     使用方法:rpm {-i|–install}[install-options]   PACKGE_FILE…

                     安裝常用選項:

                                -i|–install:安裝程序包的意思

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

                                -h:以#來顯示安裝的過程

                                –test:測試安裝,而不執行真正的安裝過程

                                –replacepkgs:覆蓋安裝,重新安裝并覆蓋原有的文件

                                –force:強制安裝

                                –nodeps:忽略依賴關系

               升級:

                       使用方法:rpm {-i|–install}[install-options]   PACKGE_FILE…

                       卸載常用選項:

                                 -u:升級或者安裝程序

                                 -F:純升級程序包

                                 –test:測試升級,而不執行真正的升級過程

                                 –force:強制安裝

                                 –nodeps:忽略依賴關系

                                 –oldpackage:降級到舊版本

                卸載:

                         使用方法:rpm [-e|–erase]  PACKAGE_NAME

                          常用選項:

                                 –allmatches:全部卸載

                                 –nodeps:忽略依賴關系卸載

                                 –test:測試卸載,而不執行真正的卸載過程 

                 查詢:

                         使用方法:rpm {-q|–query} [select-options] [query-options] PACKAGE_NAME

                         常用選項:

                                  -q:查詢某程序包是否安裝

                                  -qa:查詢所有已經安裝的程序包

                                  -qf:查詢某文件是由那個程序包安裝生成

                                  -qi:查詢某程序包的簡要信息

                                  -ql:查詢某程序包安裝后生成的文件列表

                                  -qc:查詢某程序包安裝包生成的文檔

                  校驗:

                          使用方法:rpm {-V|–verify} [select-options] [verify-options]

                          常用選項:

                                   -V:查詢程序包安裝之后生成的文件是否發生了改變

                                   –improt:驗證其光盤中程序包的來源及完整性

注意:程序包的合法性驗證主要包括驗證程序包的來源合法以及程序包的內容合法兩個方面,而程序包的來源是否合法,是驗證該程序包是否有信任的制作者提供,檢測的是原作者的數字簽名,而程序包的內容是否合法,主要依賴于制作者提供的程序特征碼,使用者通過使用同樣的程序特征碼提取算法提取程序包的特征碼,并與原作者提供的相比較來驗證是否合法。

       前面曾經提到RPM是通過以一種數據庫記錄的方式將所需要的軟件安裝的方式,所以我們還可以通過rpm管理器進行數據庫重建,

        當rpm數據庫不存在或者需要初始化時可以使用:rpm  –initdb

        重建rpm數據庫即無論數據庫存在與否,都會直接重建可以使用:rpm  –rebuilddb

      

        RPM文件本身是已經編譯過的二進制文件,可以讓用戶免去重新編譯的麻煩,而且在安裝之前,RPM會檢測系統的硬盤容量、操作系統的系統版本等,以避免安裝錯誤,同時RPM本身也提供套件版本的信息、相關套件名稱,套件用途說明等信息,用著眾多的優點,但是我們也應該認識到RPM的不足,由于RPM文件本身已經是編譯好的二進制文件,所以RPM包在安裝時無法選定該軟件的某些特性,同時RPM也只能通過手動來解決各軟件包之間的依賴性關系,由于這些不足,也催生了SRPM和yum,SRPM的擴展名是以*.src.rpm格式命名,很明顯他提供了源代碼,而yum則是以RPM為基礎包,提供一個rpm的前端工具,自行解決依賴關系的一個工具,這樣就很好的解決了軟件直接依賴性的問題,欲知后事如何,且聽下回分解。

           

原創文章,作者:zhang,如若轉載,請注明出處:http://www.www58058.com/9111

(0)
zhangzhang
上一篇 2015-10-31 22:23
下一篇 2015-11-04 09:58

相關推薦

  • 新的開始

    hello,我在這里,馬哥運維,一起努力!

    Linux干貨 2016-12-26
  • 第八周作業

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。    集線器(HUB)主要功能是對接收到的信號進行再生整形放大,以擴大網絡的傳輸距離,同時把所有節點集中在以它為中心的節點上。集線器是一種共享設備,HUB本身不能識別目的地址,當同一局域網內的A主機給B主機傳輸數據時,數據包在以HUB為架構…

    Linux干貨 2017-02-27
  • Linux基礎之shell腳本編程(四)

    1、寫一個腳本   (1) 能接受四個參數:start, stop, restart, status    start: 輸出“starting 腳本名 finished.”   (2) 其它任意參數,均報錯退出;   1 #!/bin/bash   2 #a…

    Linux干貨 2016-11-28
  • mysql.主從復制.讀寫分離.高可用.集群實戰

    架構圖如下: 1.按照架構圖所示,準備機器,做好時間同步,主機名解析 192.168.42.150 node1 [proxySQL keepalived]192.168.42.151 node2 [proxySQL keepalived]192.168.42.152 node3 [mysql-master wha]192.168.42.153 node4 […

    Linux干貨 2017-07-14
  • man手冊的使用

    在Linux中man的使用頻率應該是很高的,靈活運用它可以讓自己快速的掌握一個不熟悉命令的使用方法。下面來介紹下man 環境CentOS6.8 man – format and display the on-line manual pages 在線使用手冊格式及展示通俗點來說它就是命令的使用手冊。它共分九個章節 1、用戶命令2、系統調用3、C庫調…

    Linux干貨 2016-10-19
  • Android必備的Java知識點

     Android應用程序開發是以Java語言為基礎的,所以需要有扎實的Java基礎知識。首先熟悉java基本語法,然后熟悉設計模式等。         a) Java基礎語法:看下面的《Java知識點列表》       b)設計模式:由于在Android系統的框架層當中,使用了大…

    Linux干貨 2015-04-08

評論列表(1條)

  • stanley
    stanley 2015-11-04 09:57

    且等下回分解,哈哈

欧美性久久久久