菜鳥的自我總結之RPM

   rpm早期是由redhat公司開發用來管理軟件安裝的機制,它以數據庫的方式來記錄用戶所需要安裝


的軟件。由於軟件安裝通常會存在依賴屬性,比如:如果我們需要安裝A軟件,可能需要安裝軟件B或C


後才允許安裝A,或者安裝B有需要A,所以我們就需要將存在依賴關係的軟件同時安裝。而rpm解決了


這一問題,他將我們說需要的軟件打包成*.rpm,同時它還具有在線升級功能。


    rpm包的安裝環境必須和打包環境一樣,還必須滿足軟件的依賴性,還有很重要的一點:某一軟件


的rpm包可能因爲打包者不同,會忽略軟件中我們可能需要用到的功能,所以很多時候就需要我們手動


去編譯SRPM(軟件源代碼)。通常沒用經過編譯的SRPM文件的後綴名是.src.rpm,它與rpm包的不同點


就是不能直接安裝,可以自己修改參數並編譯。

    

     1.rpm包的命名格式:

        eg:zsh-4.3.10-7.el6.x86_64.rpm

               zsh表示軟件名  4.3.7 表示軟件的版本信息 10表示修正的版本號

               x86_64表示適用的硬件平臺  .rpm文件擴展名


     2.rpm的默認安裝路徑:/etc 設置文件存放目錄

                          /usr/bin  可執行文件

                          /usr/lib  供程序使用的動態函數庫

                          /usr/share/doc  軟件的基本使用手冊和幫助文檔

                          /usr/share/man   man page文件

     3.rpm包的安裝  rpm -ivh package_name...(可以同時安裝多個rpm包)

       **-i表示安裝,可以單獨使用; v表示詳細的安裝信息;h表示顯示軟件的安裝進度**

wKioL1PLXsHC6I3_AAGuNlBN-WI679.jpg

       還可以用連網安裝 rpm -ivh http://website.name/path/pkgname.rpm


       在安裝的過程需要用到的執行參數有

         --nodeps  --replacefiles  --replacepkgs --test --force --prefix --noscripts

      

         --nodeps:若因依賴關係無法安裝使用此參數可強制安裝,但是可能會因依賴關係而導致   


                   軟件無法正常使用        

         --replacefiles:可以直接覆蓋以存在系統上的文件或是忽視版本衝突,但是被覆蓋的文件 


                   會無法恢復

         --replacepkgs:將安裝了的軟件重新安裝

         --force:--replacefiles + --replacepkgs

         --test:測試軟件是否可以I安裝

         --profix :將軟件安裝在自己指定的目錄下  (eg:--profix/home/user1)

         --noscripts:禁止軟件在安裝的過程中自動執行某些系統命令


        4.RPM的升級與更新 rpm -Uvh|Fvh 軟件名  

               -Uvh 若軟件沒有在系統上安裝,則直接安裝;若已安裝且不是最新版則更新

               -Fvh 若軟件沒有在系統上安裝則不安裝;若已安裝但不是最新版則更新

           wKioL1PLYMDD4ZnBAAHQTB5d_a8986.jpg


        5.RPM查詢

             參看某軟件書否安裝  rpm -q gcc

             wKioL1PLZsHDdO1GAAC8H7cLrO0134.jpg

             列出本機上安裝的所有軟件  rpm -qa 軟件名

             參看某軟件的設備文件  rpm -qc gcc

             列出軟件的所有文件和目錄 rpm -ql zlib

             參看文件是由哪個程序產生的 rpm -qf /路徑/完整的文件名

             wKioL1PLZArx5f6EAAEc5UraGjY920.jpg

             列出軟件的詳細信息 rpm -qi zlib

           wKiom1PLZInQAASoAAMaTTu2Q40810.jpg

             其他查看參數:-qr  -qd

             **-qp[icblr]:中括號的參數和上面的一樣,但是僅用於找出RPM文件內的信息**

            RPM的驗證:

                  rpm -V zlib: 查看zlib的文件是否被改過  

                  rpm -Va 軟件名 : 列出系統上所有被改過的文件

                  rpm -Vf  /路徑:  查看文件是否被改動過(改動後會有信息顯示)

                  rpm -Vp  某個rpm文件的文件名:列出軟件能被噶懂富哦的文件

              **顯示出來的文件是被修改過的*     wKiom1PLatjz-prwAAFwF_i4Fh0815.jpg

        


6.RPM合法性檢驗:將製作者的公鑰導入到系統

        導入公鑰:rpm --import /path/to/key_file

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

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

wKiom1PLbaqR3yxuAAIOcOK2dt8854.jpg

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

spacer.gif 手動檢查:

rpm -K /path/to/package_file

rpm --checksig /path/to/package_file

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

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

      7. 重建數據庫與RPM的卸載

            卸載  rpm -e 軟件名

            **我們也可以添加上面提到過的--nodeps來強制刪除 

            數據庫的所在的路徑:/etc.lib/rpm

            重建數據庫:

如果沒有則新建,否則不建:rpm --initdb

直接覆蓋原有數據庫,沒有則新建:rpm --rebuilddb 

                      


         


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