linux程序包管理1

                              Linux     

1.APIApplication Progarmming Interface

POSIX  :Portable  OS

2.程序源代碼--à預處理--à編譯----à彙編----à鏈接

靜態編譯:

共享編譯: .so

3.ABI: Application Binary Interface

     WindowsLinux不兼容

     庫級別虛擬化:

Linux WINE 

        Windows Cywin

41系統開發

       C

       C++

42應用開發

   Java

   Python

   php  

   pel

   ruby 

43二進制應用程序的組成部分

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

        程序包管理器:

           Debian :dep, dpt

           Redhat: rpm rpmRedhat Package Manager

                           PRM: RPM is Package Manager

           Archlinux :

           Gentoo: 

5.代碼: name-VERSION.tar.gz

          VERSION: major.minor.release

6.rpm方式:

      1>.name-VERSION-release.arch.rpm

          VERSIONmajor.Minor.release

          release.arch:

             release:release.OS

          常見arch

             X86: i386,i486,i586,i686

             X86_64: x64,x86_64,amd64

             Powerpc:ppc(硬件平臺)

             平臺無關: noarch (例如包含java程序包等)   

 

      2>.testapp: 拆包

          testapp-VERSION-ARCH.rpm:主包

          testapp-devel-VERSION-ARCH.rpm: 

          testapp-testing-VERSION-ARCH.rpm

       

3>.:存在依賴關係

     yum:rpm管理器的前端工具

     apt-get :dep管理前端工具

     zipper : suse rpm前端管理工具

     dnf Fedora 22+ rpm包管理前端管理工具

71查看二進制程序所依賴的文件

       ldd  /PATH/TO/BINARY_FILE

7.2管理及查看本機裝載庫文件

       ldconfig 

          /sbin/ldconfig  -p : 顯示本機已經緩存的所有可用庫文件名及文件路徑映射關係

 

       配置文件爲: /etc/ld.so.conf,  /etc/ld.so.conf.d/*.conf

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

8.程序包管理:

   1>.功能 將編譯好的應用程序的組成文件打包一個或幾個程序包文件,從而方便快捷的實現程序包的安裝卸載、查詢、升級和校驗管理操作

     2>.程序組成組成清單(每個包獨有)

         文件清單

         安裝或卸載時運行的腳

     3>.數據庫(公共

          程序包名稱及版本

          依賴關係

          功能說明

          安裝生成的個文件的文件路徑及校驗碼信息;

91管理程序包的方式:

       使用包管理器: rpm

       使用前端工具: yum dnf

92獲取程序包的途徑:

       1>.系統發版的光盤或官方服務器;

           Centos鏡像:

              http://mirrors.aliyun.com

              http://mirrors.sohu.com

              http://mirrors.163.com 

               

       2>.項目官方站點

       3>.第三方組織:

            Fedora-EPEL

            搜索引擎:

              http://pkgs.org

              http://rpmfind.net

              http://rpm.pbone.net

       4>.自己製作

        5>>建議檢查合法性

            來源合法性

            程序包的完整性

10.Centos系統rpm命令管理程序包

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

1>.安裝

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

            -v : verbose

            -vv

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

          rpm –ivh  PACKAGE_FILE …

             [install-options]

                --test: 測試安裝,但不真正執行安裝過程;dry run模式;

                --nodeps:忽略依賴關係;

                --replacepkge 重新安裝;

 

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

                --nodigest: 檢查包完整性

                   

                 --noscripts : 執行程序包腳本片

                     %pre :安裝前腳本:   --nopre

                     %post 安裝後腳本: --nopost

                     %preun 卸載後腳本: --nopreun

                     %postun 卸載後腳本:  --nopostun

   2>.升級

           rpm    {-U|--upgrade}    [install-options] PACKAGE_FILE ...

 

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

              

               upgrage 安裝有舊版本程序包,則升級如果不存在舊版本程序包,則安裝

                freshen:安裝有舊版本程序包,則升級如果不存在就版本程序包,則不執行升級操作

            

            rpm –Uvh PACKAGE_FILE …

            rpm Fvh PACKAGE_FILE …

 

            --oldpackage :降級

            --force 強行升級;

**.(1) 不要對內核做升級操作; linux支持多內核版本並存,因此,直接安裝新版本內核

 2如果原程序包的配置文件安裝後曾被修改,升級時,新版本的提供同一配置文件並不直接覆蓋版本的配置文件,新版本的文件重命名FILENAME.pmnew)後保留;

   3>.查詢

rpm  {-q|--query} [select-options] [query-options]

 

[select-options]

-a:所有

-f查看指定的文件由哪個程序包安裝生成

 

-p /PATHTO/PACKAGE_FILE:針對尚未安裝的程序包文件查詢操作;

 

--whatprovides CAPABILITY :查詢指定的APABILITY哪個包所提供;

--whereprovides CPABILITY查詢指定的APABILITY哪個包所依賴;

 

[query-options]

--changelog :查詢rpm包的配置文件;

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

-d 查詢程序的文檔;

-i: information

          -l:  查看指定的程序包安裝後生成的文件

          --script 程序包自導的腳本片斷;

          -R 查詢指定的程序包依賴的CPABILITY

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

 

          用法

           -qi PACKAGE, -qf FILE , -qc PACKAGE, -ql  PACKAGE , -qd PACKAGE

           -qpi PACKAGE_FILE ,-qpl PACKAGE_FILE

           -qa

  4>.卸載:

        rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]

           [--notriggers] [--test] PACKAGE_NAME ...

  5>.校驗:

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

 

          S fiel Size differs

          M Mode differs (inculdes permissions and file type )

          5 diget (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 differs

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

       1>.完整性校驗

         公鑰加密:

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

              對稱加密:密鑰是成對兒的;

                 Public key 公鑰,公開

               Secret key 私鑰不公開

2>.導入所需公鑰:

         rpm --import  /PATH/FRO/GPG-PUBKEY-FILE

     

3>.數據庫重建:

          rpm {--initdb|--rebuilddb}

            initdb初始化

              如果事先不存在數據庫,則新建,否則不執行任何操作

            rebuilddb :重建

              無論當前存在與否,直接重新創建數據庫

 

 



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