學習筆記之rpm程序包管理功能解析

Rpm包管理功能全解node

軟件包管理的功能:將編譯好的程序的各組成文件打包成一個或幾個程序包文件,爲了方便的實現程序包的安裝、升級、卸載、查詢、校驗、數據庫維護。數據庫

 

下面咱們來看看RPM包管理的解析centos

Rpm包在redhatS.U.S.E中有很大的應用服務器

咱們接下來就以centos系統中rpm包的管理作一些詳細的功能解析架構

使用yumrhel系列)安裝時能夠自動解決依賴關係dide

rpm包命名格式:post

name-VERSION-release.arch.rpm 測試

VERSIONmajor.minor.releaseui

Major:主版本號(版本有大的更新);  minor:次版本號(小更新)加密

release.archrpm包的發行號

release.os: 2.el7(平臺).i386(架構).rpm  archetecture(架構):i386, x64(amd64), ppc, noarch理器;

實際操做:

本機在服務器上已經成功下載zsh-4.3.10-9.el6.x86_64.rpm用此來實施

  語法rpm [options] [packages_file]

        安裝;-i--install

            rpm -ivh /path/to/rpm_package

                -v;顯示安裝信息

                -vv;顯示更詳細的安裝信息

                -h;以井號顯示安裝進度

                --nodeps;忽略依賴關係(適用於卸載)

                --force;強行安裝(適用於卸載)

 

wKiom1cDpGOwcuL7AAAbD0eZ8uY432.png


        重裝;--replacepkgs會覆蓋原有信息

            Rpm -i  --replacepkgs  /path/to/rpm_name

     [root@bucktan ~]# rpm -ivh --replacepkgs zsh-4.3.10-9.el6.x86_64.rpm

 

        卸載;-e--erase

            rmp -e package_name

                  --allmatches卸載匹配全部指定名稱的軟件包

                  --nodeps忽略依賴關係

                  --test 測試卸載

wKioL1cDpSLDWB2WAAAYmdiH8_g448.png

        升級;-U -F

            升級或安裝;

                rpm -U /path/to/rpm_package

                    --oldpackage降級

在服務器上取了兩個包:zabbix-2.4.0-1.el6.x86_64.rpm

                      zabbix-2.4.5-1.el6.x86_64.rpm

 wKioL1cDpYayo2j7AAAuOFUDWB0252.png

以前升級至zabbix-2.4.5-1.el6.x86_64.rpm

[root@bucktan]~# rpm -Uvh --oldpackage zabbix-2.4.0-1.el6.x86_64.rpm

            只升級;(若不存在舊版本則不會執行)

                rpm -F /path/to/rpm_package

            一般搭配vh使用;

                rpm -Uvh|-Fvh /path/to/package

              --nosignature 不檢查包簽名信息的合法性

 

            注意;不要對內核執行升級操做

            不一樣內核版本能夠共存,所以可執行安裝操做,但不建議升級

 

    (重點) 查詢rpm {-q|--query} [select-options] [query-options]

            查詢包是否已安裝;

                rpm -q package_name

      [select-options]:

         rpm -qa查詢全部已安裝的包;

         rpm -qf /path/to/file查詢某文件是由那個包生成的;

             -q --whatprovides   file_name  查詢指定的capability由哪一個程序包所提供

 

             -q --whatrequires    file_name 查詢指定的capability由哪一個程序包所依賴

 wKiom1cDpSLR6-MLAAAafQsp1oU933.png

       [query-options]:

                 rpm -ql package_name查詢包安裝後生成的文件;

             wKiom1cDpTrT49BGAAAQQbrRqOk440.png

                rpm -qi package_name查詢包的簡要說明;

      wKioL1cDpfWTKZhGAAAibRL0NqQ444.png

                rpm -qd package_name查詢包安裝後生成的幫助文檔;

            wKiom1cDpaDi1XzFAAAafQsp1oU050.png

                rpm -qc package_name查詢包安裝後生成的配置文件;

 

                rpm -qR package_name 查詢指定軟件包的依賴關係

                rpm -q --scripts   查詢包相關的腳本;

                    

                 腳本分四類

                    preinstall 安裝前腳本

                    postinstall 安裝後腳本

                    preuninstall 卸載前腳本

                    postuninstall 卸載後腳本

 

            查詢未安裝包的相關信息;-qp

                  rpm -qpl package_file 查詢安裝後會生成的的文件

                  rpm -qpi package_file查詢包的簡單描述信息;

 

              可搭配其選項使用,如-qp --scripts

 

        校驗;檢查安裝後的文件是否被修改過

            rpm -V package_name


            [root@bucktan ~]# rpm -V zsh

             S.5....T.  c /etc/zshrc

              返回的註釋信息;

                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 能力改變了

 

    校驗來源合法性和軟件的完整性

            包完整性;單項加密機制(MD5|sha1..

            來源合法性;公鑰加密機制(RSA

                rpm -K /path/to/packagefile直接檢驗程序包來源合法性

                rpm --checksig /path/to/package_file

                    --nosigeature:不檢查來源合法性

                    --nodigest:校驗時不檢查包完整性

            導入GPG密鑰文件:

            rpm --import /path/to/gpg-key-file

            導入之後再作驗證

        wKioL1cDph_COmIrAAAXPvzS3P0686.png

    數據庫

            位置:/var/lib/rpm

            

            重建:

                rpm --initdb:初始化

                    若是事先不存在一個數據庫,則新建之

                rpm --rebuilddb 重建

                    直接新建數據庫,會覆蓋原有庫

 wKioL1cDptXDGgN_AAAzkl8bWEE769.png

相關文章
相關標籤/搜索