linux 程序包管理

一:

        1、API 和ABI 

           API : Application Programming Interface

                 應用程序編程接口

                 程序源代碼-->預處理--> 編譯-->彙編--> 鏈接

           ABI: Application Binary Interface    

                  應用程序二進制接口

                  windows 與linux不兼容

                  庫級別的虛擬化

                     Linux :Wine

                     Windows: Cywin

        2、二進制應用程序的組成部分:

            二進制文件、庫文件、配置文件、幫助文件

            程序包管理器:

                 Debian:deb-->apt

                 Redhat:rpm-->rpm

                 Gentoo:emerge Portage

                 Archlinux:pacman

                 Suse: zypper

                 Fedora 22+:dnf

        3、查看二進制程序所依賴的庫文件:

            ldd  /PATH/TO/BINARY_FILE

        4、管理及查看本機裝載的庫文件

            ldconfig

              /sbin/ldconfig -p    //顯示本機已緩存的可用庫文件及文件映射關係

              配置文件: /etc/ld.so.conf

                     /etc/ld.so.conf.d/*.conf

              緩存文件:/etc/ld.so.cache

        5、程序包管理;

           功能:將編輯好的應用程序的各組成文件打包成一個或者幾個程序包文件;

               從而方便快速完成安裝、卸載、查詢、升級等

             (1)程序的組成清單  -----每個包獨有

                  文件清單

                  安裝和卸載時運行的腳本

             (2)、數據庫  ----公共----- 

                  程序包名稱和版本

                  依賴關係

                  功能說明

                  安裝生成的各文件的文件路徑及校驗信息

        6、管理程序包的方式:

              使用包管理器:rpm

              使用前端工具:yum、dnf

      7、獲取程序包的途徑:

              (1)系統發行版的光盤或者官方的服務器:

                  Centos鏡像:

                     http://mirrors.aliyum.com

                     http://mirrors.sohu.com

                     http://mirrors.163.com

                

              (2)項目官方站點

              (3)第三方組織:

                   Fedora-EPEL

                   搜索引擎:

                   http://pkgs.org 

                   http://rpmfind.net

                   http://rpm.pbone.net  

              (4)自己製作

           注意:檢查合法性----->來源合法性、程序包完整性

            

二:rpm程序包管理命令

----實現安裝、卸載、升級、查詢、校驗、數據庫維護

  spacer.gif  rpm {-i | --install} [install-options] PACKAGE_FILE...

           -v : verbose

           -h : 以#顯示程序包管理執行進度;每個#表示2%的進度

     rpm -ivh PACKAGE_FILE ... 

           [ install-options ]

               --test : 測試安裝,但不真正的執行安裝過程。

               --nodeps: 忽略依賴關係。

               --replacepkgs: 重新安裝

               --nodigest : 不檢查包來源合法性

               --nosignature :不檢查包完整性

               --noscipts :

                 %pre:安裝前腳本

                 %post:安裝後腳本

                 %prenu:卸載前腳本

                 %postun : 卸載後腳本

升級:

      rpm { -U|--upgrade}[install-option] PACKAGE_FILE

      rpm { -F|--freshen}[install-options] PACKAGE_FILEspacer.gif

        rpm -Uvh PACKAGE_FILE...

            rpm - Fvh PACKAGE_FILE...

                 --oldpackage : 降級

                 --force : 強行升級

                   

      注意:

        (1)不要對內核做升級操作,linux支持多內核版本共存。

        (2)如果原程序包的配置文件安裝後曾被修改,升級時,新配置不會覆蓋而是重命名保留(.rpmnew)

        

 查詢:

      rpm { -q| --query} [select-options][query-options] spacer.gif

         [select-options]

              -a : 所有包

              -f : 查詢命令由那個程序包安裝生成。

              -P /PATH/PACKAGE_FILE: 針對尚未安裝的程序包安裝文件做查詢操作

              --whatprovides CAPABILITY :查詢指定的CAPABILITY是由那個包提供

              --whatrequires CAPABILITY : 查詢指定的CAPABILITY是由那個包所依賴

          [query-options]

             --changelog : 查詢rpm包的changelog

             -c : 查詢程序的配置文件

             -d: 文檔

             -i :包的描述信息

             -l : 查看程序包安裝後生成的所有文件。

             --scripts :程序包自帶的腳本片段。

             -R : 查詢程序包所依賴的CAPABILITY

             --provides : 列出指定程序包所提供的CAPABILITY

      校驗:

     rpm {-V|--verify } [select-options][verify-options]

        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

                spacer.gif

包來源合法性驗證及完整性驗證

    完整性驗證:sha256

    來源合法性驗證:RSA                spacer.gif

                spacer.gif


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