天天看點

軟體包管理器

軟體包管理器

    軟體包管理器其本身也是一個軟體,其核心功能是:制作、安裝、解除安裝、更新、查詢、校驗軟體包等;

    在紅帽中使用RMP軟體包管理器,以及更加高端的YUM軟體包管理器,本文就詳細介紹一下這兩個軟體包管理器的用法。

一、RPM (PRM is Package Manager)

  1、rpm指令的使用:

    Rpm本身也是一個軟體包,其背後有一個龐大的資料庫:/var/lib/rpm

Rpm的主要功能有安裝、查詢、解除安裝、更新、校驗、資料庫的重建、驗證資料包等;

    安裝軟體包的原則:

             1)、軟體包本身是合法的;

             2)、軟體包是完整的

  2、rpm命名

    1)、包的組成成分:

          主包:

               bind-9.7.1-1.e15.i586.epm   

          子包:

               bind-libs-9.7.1-1.e15.i586.epm 

       其中bind-libs叫做包名

2)、包名格式:

            name-version- release.arch.rpm

 bind-major.minor.release-release.arch.rpm

  包名      主版本号   次版本号   發行号     

主版本号:重大改變

次版本号:某個子功能發生重大變化

發行号:修正了部分bug,調整了一點功能  

    bind-9.7.1.tar.gz   原版本号

3、rpm的安裝

          rpm  -i  /PATH/TO/PACKAGE_FILE

               -h:以#顯示進度,每個#表示2%;

               -v:顯示詳細過程

               -vv:顯示更詳細過程

          rpm -ivh /PATH/TO/PACKAGE_FILE

        --nodeps:忽略依賴關系

        --replacepkgs:重新安裝,替換原有安裝:

        --replacefiles:替換檔案  

        --force:強行安裝,可以實作重裝或降級;

   4、rpm的查詢

          rpm -q PACKAGE_NAME :查詢指定的包是否已經安裝

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

         rpm -qi PACKAGE_NAME: 查詢指定包的說明資訊

        rpm -ql PACKAGE_NAME: 查詢指定包安裝後生成的檔案清單   

        rpm -qc PACKAGE_NAME: 查詢指定包安裝的配置檔案;

        rpm -qd PACKAGE_NAME: 查詢指定包安裝的幫助檔案;  

        rpm -q --scripts PACKAGE _NAME: 查詢指定包中包含的腳本

         rpm -qf /path/to/somefile :查詢指定的檔案是由哪個rpm包安裝生成的;

      如果某rpm包尚未安裝,我們需要查詢其說明資訊、安裝以後會生成的檔案

         rpm -qpi /PATH/TO/PACKAGE_FILE

         rpm -qpl 查詢包安裝後生成檔案清單

  5、rpm更新

            rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 

        如果裝有老版本的,則更新,否則,就安裝

            rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:

        如果裝有老版本的,則更新,否則,退出

          --oldpackage:降級

  6、rpm解除安裝

            rpm -e PACKAGE_NAME  

        如果某軟體包被其他包所依賴是不允許解除安裝的。

            -nodeps   解除安裝後沒有資訊

  7、rpm校驗

        rpm -V PACKAGE_NAME   

  8、重建資料庫

      rpm

   --rebuilddb:重建資料庫,一定會重建立立;

   --initdb:初始化資料庫,沒有才建立,有就不用建立

  9、檢驗來源合法性,及軟體包完整性;

        加密類型:

          對稱:加密解密使用同一個密鑰

      公鑰:一堆密鑰,公鑰,私鑰;公鑰隐含于私鑰中,可以提取出來,并公開出去

      單向:

      #ls /etc/pki/rpm-gpg/

         RPM-GPG-KEY-redhat-release

    rpm -K /PAPT/TO/PACKAGE_FILE

   dsa,gpg:驗證來源合法性,也即驗證簽名;可以使用--nosignature,略過此項

      shal,md5: 驗證軟體包完整性;可以使用--nodigest,略過此項

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release:導入密鑰檔案

**********補充

    RPM安裝:

        二進制格式:

    源程式-->編譯-->二進制格式

    有些特性是編譯標明的,如果編譯未標明此特性,将無法使用;

  rpm包的版本會落後于源碼包,甚至落後很多;

二、YUM    (Yellowdog  Update  Modifier )

   1、依賴關系:

       C/S: Client,Server

     yum整個工作是依賴yum倉庫的。叫做-----yum repository

       檔案服務:FTP /Web  /FILE

   2、Client  

     1)、 配置檔案

        核心是yum倉庫

            中繼資料檔案:建立指令是  createrepo

        * yum所依賴的不是一個特定的包,而是一種能力;

    2)、 yum倉庫中的中繼資料檔案:

          primary.xml.gz  

             目前倉庫所有RPM包的清單   

          flielists.xml.gz

             目前倉庫中所有RPM包的所有檔案清單;

          other.xml.gz

             額外資訊,rpm 包的修改日志;

          ropomd.xml

             記錄的是上面三個檔案的時間戳和校驗和;

 3、如何為yum定義repo檔案

        [Repo_ID]

        name-description

        baseurl=

           ftp://

           http://

           file:///    注意:三個斜杠不是文法錯誤,而是在本地路徑下的根

     enabled={1|0}

     gpgcheck={1|0}  這兩個都預設是1

     gpgkey=

    yum [options]  [command]  [package...]  

      -y :自動回答為yes

      --nogpgcheck: 不做gpg檢查

  4、list:  清單

      支援glob

        all:  所有的

        available:所有可用的,倉庫中有,但還沒安裝的

        nstalled:已經安裝的

        updates:可用的更新

     yum clean :   清理緩存

       [ packages | headers metadata | dbcache | all ]

  5、repolist:顯示repo清單及其簡要資訊

         all

         enanled   預設

         disabled

     1)、 install:  安裝

    yum install package_name

     2)、 update:更新

    update_to:更新指定版本

     3)、 remove | erase :解除安裝

  6、如何建立yum倉庫:

       yum install createrepo:先安裝yum指令

 mkdir -pv /yum/VT

 cp /media/cdrom/VT/*rph /yum/VT

 createrepo /yum/VT:建立yum源

 再在/etc/yum.repos.d 建立yum配置檔案組

繼續閱讀