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
下一篇 2015-11-04

相關推薦

  • 隨筆—git的基本命令

    git是一個非常優秀的版本控制系統,可以對各類大小的項目進行源代碼管理,  #git的常用功能如下: 1、從服務器上克隆完整的Git倉庫(包括代碼和版本信息)到單機上。 2、在本地倉庫上根據不同的開發目的,創建分支,修改代碼。 3、在本機上向自己創建的分支上提交代碼。 4、在本機上合并分支。 5、將本地倉庫代碼和分支推送到服務器上的遠程倉庫 在官網…

    Linux干貨 2016-07-04
  • 淺談群紅包的實現

    前言:紅包是支付的方式, 也是社交的延伸。群紅包在這兩塊領域串聯得很好, 表現尤為的濃墨重彩. 承接上兩篇技術淺談:1). 淺談接龍紅包的技術實現.2). 淺談微信紅包搖一搖的技術實現.這一次, 讓我們談談群紅包的技術實現. 一為是紅包的分配算法, 二為競搶的技術實現. 分配算法:最初玩群紅包的時候, 并沒有意識到分配算法的難度…

    Linux干貨 2015-03-10
  • linux及其文件系統

       計算機是由CPU、存儲設備(內存、硬盤)、I/O設備(鍵盤、鼠標、顯示器)組成。CPU負責進行運算和控制;硬盤和內存負責永久和臨時存儲數據;Input設備負責輸入指令或者數據,output設備負責輸出處理過的數據。          Linux的發行版主要有Debian,S…

    Linux干貨 2016-09-21
  • 8.8作業

    4、如何設置tab縮進為4個字符?    set tabstop=4     5、復制/etc/rc.d/init.d/functions文件至/tmp目錄;替換/tmp/functions文件中的/etc/sysconfig/init為/var/log; cp /etc/rc.d/init.d/functi…

    Linux干貨 2016-08-11
  • Hadoop HDFS分布式文件系統設計要點與架構

    Hadoop簡介:一個分布式系統基礎架構,由Apache基金會開發。用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力高速運算和存儲。Hadoop實現了一個分布式文件系統(Hadoop Distributed File System),簡稱HDFS。HDFS有著高容錯性的特點,并且設計用來部署在低廉的(low-cost)硬件…

    Linux干貨 2015-04-13
  • 馬哥教育網絡班20期+第五周博客作業

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; ]# grep  "^[[:space:]]\+" /boot/grub/grub.conf 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行; ]#…

    Linux干貨 2016-07-12

評論列表(1條)

  • stanley
    stanley 2015-11-04 09:57

    且等下回分解,哈哈

欧美性久久久久