rpm包管理

一:簡介

rpm包的命名格式:

     name-version-relase.arch.rpm


     version:major,minor,release,同源代碼

     release:rpm自身的發行號,與程序源代碼的發行號無關,僅用於標示對rpm包不同製作的修訂;同時,release還包含此包適用的OSbash-4.2.3-3.centos5

    arch:適用於的硬件平臺,

                    可靠的途徑:EPEL

                    Fedora-EPEL  額外包

rpm包的合法性驗證:

 包製作者製作完成之後會附加數字簽名於包上;來源合法性;包的完整性

 包的製作者使用單向加密提取原始數據的特徵碼,而後使用自己的私鑰加密這段特性碼,附加原始數據後面。

驗證過程:

    前提:必須有可靠機制獲取到包製作者的公鑰;

1、使用製作者的公鑰解密加密的特徵碼,能解密則意味着來源合法;

2、使用與製作者同樣的意向加密算法提取原始數據的特徵碼,並與解密出來的特徵作對比,相同,則意味着完整性沒有問題。


二:rpm包管理器的常見使用場景:

安裝程序包

格式:

 rpm [option] /path/to/package_file

-i

安裝程序包 例如rpm -i zsh-4.3.10-7.e16.x86_64.rpm

-v

詳細安裝信息  注 -vv -vvv 可以看見更詳細和更加詳細的安裝信息

-ivh

顯示安裝進度

--test

僅作測試,有真正執行安裝

 注:如果依賴於其它包:

1、解決依賴關係

2、忽略依賴關係

      能卸載,但依賴於此包程序包可能會運行不正常;

     強制卸載:--nodeps 



三:升級程序包

    新版本替換老版本 :rpm [option] /path/to/package_file

   1、升級或安裝

       -Uvh

   2、純升級

       -Fvh

升級後的版本衝突等;

強制升級:--force


注意:不應該對內核執行升級操作,而安裝系統允許多內核並存



四:查詢操作:

1、查詢某包是否安裝

 rpm -q package_name...

   例如: rpm -q zsh     查看2個以上   rpm -q zsh phd

 

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

   rpm -qa   

  按條件過濾:rpm -qa | grep 'PATTERN'

   例如: rpm -qa | grep "^php.*m.*"

3、查詢包的描述信息

   rpm -qi package_name   例如:rpm -qi zsh

4、查詢某包安裝生了那些文件   

    rpm -ql package_name 

  (1) 查詢某包安裝生成了哪些配置文件

    rpm -qc package_name


  (2) 查詢某包安裝生成了哪些幫助文件

rpm -qd package_name


  (3) 查詢程序包的相關腳本

        rpm -q --scripts package_name

  

腳本有四類:

preinstall:安裝前腳本

postinstall: 安裝後腳本

preuninstall: 卸載前腳本

postuninstall: 年前後腳本


5、查詢某文件是由哪個包安裝生成的

  rpm -qf /path/to/some_file

6、對尚未安裝的包執行查詢

   rpm [option] /path/to/package_file

 

-qpi

列出RPM軟件包的描述信息

-qpl

列出RPM軟件包內的文件信息

-qpc

查看一個軟件包的配置文件

-qpd

查看軟件包的文檔所在的位置

 

五:校驗:

   用於檢查包安裝生成的文件屬性是否發生變化


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包來源合法性及完整性檢驗:

前提:在當前系統上導入包的製作者的公鑰


導入:

    rpm --import /path/to/key_file

    # rpm -qa gpg-pubkey*   顯示所有已經導入的gpg格式的公鑰

    # rpm -qi gpg-pubkey-NAME  顯示密鑰的詳細信息


七:檢查包:安裝過程中會自動執

    rpm -K /path/to/package_file

    rpm --checksig /path/to/package_file

   

    不檢查包完整性:rpm -K --nodigest

    不檢查來源合法性: rpm -K --nosignatu



八:數據庫重建:

   數據庫目錄:/var/lib/rpm


重建:

rpm --initdb:初始化

如果事先沒有庫,會新建一個;如果有,則不新建;


rpm --rebuilddb: 重建

   直接重建,覆蓋原有的數據庫


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