YUM工具的工作原理、用法及源 碼包的編譯安裝

YUM工具的工作原理,用法及源碼包的編譯安裝

_ueditor_page_break_tag_

一、 CentOS: yum, dnf

      1.YUM: (Yellow dogUpdate Modifier),rpm的前端程序,用來解決軟件包相關依賴性,可以在多個庫之間定位軟件包,up2date的替代工具

       注意:yum并不是rpm的取代者,只是rpm包管理器的前端工具,是依賴于rpm包管理器的,使用yum來解決安裝問題,使用rpm來查詢等

      2.yum repository(倉庫): yum repo

           倉庫中存儲了眾多rpm包,以及包的相關的元數據文件(元數據文件放置于特定目錄下:repodata)

           注意:repodata目錄所在的位置就是倉庫所指向的路徑

                 默認安裝情況下,光盤即為本地倉庫。

      3.文件服務器:(倉庫本身也是一個文件服務器)

             ftp://

             http://

             file:///(本地的,默認是光盤)



        

、yum客戶端配置文件:

      1./etc/yum.conf主配置文件,為所有倉庫提供公共配置

yum.png 

wKiom1e9YKaQCXefAACcZTkFX_4078.png      /etc/yum.repos.d/*.repo為倉庫的指向提供配置

      2.倉庫指向的定義:(具體可以 man yum。conf)

wKiom1e9YuziRbOKAAAi2wbMjo8972.png

           [repositoryID]

            name=Some name for this repository:

                當前倉庫描述信息

            baseurl=url://path/to/repository/ :

                指明訪問路徑:通常為一個文件服務器上輸出的某repository

            enabled={1|0}: 

                是否啟用倉庫,默認是啟用的

            gpgcheck={1|0}: 

                是否對程序包做校驗(完整性和來源合法性)

            gpgkey=URL  

                指明秘鑰文件路徑

            enablegroups={1|0}

            failovermethod={roundrobin(輪循)|priority(指明優先級)}:

                 故障轉移方法,

                 默認為:roundrobin,意為隨機挑選;

            cost= 默認為1000 (成本值)

    3.創建自定義yum倉庫

      1)在/etc/yum.repos.d 下定義yum倉庫。

      注意:這里定義的是兩個不同的倉庫,里面所包含的rpm包是不一樣的,如果倉庫內容是一樣的可以使用baseurl指向多個路徑,輪循,優先級都可以。

wKioL1e9asKhwH3OAAA-UCeJG30863.png

     2)使用yum repolist 來查看所有的倉庫列表

wKiom1e9ba2haVLoAABxi9d2HXU001.png


三、yum命令的用法

   語法:yum [options] [command] [package …]


     1.顯示倉庫列表

           repolist[all|enabled|disabled]顯示所有,啟用和禁用的

wKiom1e9bjjBhZ3tAACbBXj9AAU234.png

     2.顯示程序包

           list

           # yum list [all | glob_exp1] [glob_exp2] […]

wKiom1e9dy6yh221AABkzZiIYCY073.png

           # yum list {available|installed|updates} [glob_exp1]通配符 

wKioL1e9dZCxQItaAABLGw3NIw8273.png

     3.安裝程序包

            yum install package1 [package2] […]

            yum reinstall package1 [package2] […] (重新安裝)

wKiom1e9eWugNoO1AABmLYYmzvM119.png

wKiom1e9eWvhlX9AAABVmJHoYkU951.png

     4.升級程序包

             yum update [package1] [package2] […]

             yum downgrade package1 [package2] […] (降級)

          檢查可用升級:

            yum check-update

     5.卸載程序包:

            yum remove | erase package1 [package2] […]

wKiom1e9e8Xg_uy7AAA7JYYibh4987.png

wKioL1e9e8bwR8wvAABHj6keDl0179.png

   6.查看程序包簡要信息information:

            yum info […]

wKioL1e9fVCy6besAABZ7ZMh8Yg272.png

     7.查看指定的特性(可以是某文件)是由哪個程序包所提供

            yum  provides | whatprovidesfeature1 [feature2] […]

wKiom1e9fw3jnMrkAAA9YfLhJhY584.png

     8.清理本地緩存

            yum clean [ packages | metadata | expire-cache | rpmdb| plugins | all ]

     9.構建緩存

            yum makecache

     10.搜索

            yum search string1 [string2] […]

            以指定的關鍵字搜索程序包名及summary(總結,概括)信息

wKioL1e9giaA_vd5AACJTN1niFg023.png

     11.查看指定包所依賴的capabilities(依賴關系分析)

             yum deplist package1 [package2] […]

wKiom1e9g4bhw58tAAB94BlJGx8318.png

     12.查看yum事務歷史

             yum history [info|list|packages-list|packages-info|

             summary|addon-info|redo|undo|

             rollback|new|sync|stats]

             yum history

             yum history info 6

             yum history undo 6

wKioL1e9hT2jDX1SAAAzbK-DgH8392.png

      13.日志

             /var/log/yum.log

      14.安裝及升級本地程序包

            * localinstall rpmfile1 [rpmfile2] […]

              (用install替代)

            * localupdate rpmfile1 [rpmfile2] […]

               (用update替代)

      15.包組管理的相關命令

             groupinstall group1 [group2] […]

wKioL1e9iT_iJ29FAACQ2Niug5w534.png             groupupdate group1 [group2] […]

             grouplist [hidden] [groupwildcard] […]列出所有包組

wKioL1e9h5HR4v3nAAB4sNuebgE988.png

             groupremove group1 [group2] […]卸載

             groupinfo group1 […]顯示指定包組詳情

wKiom1e9iWLQA8gIAABH2Ul8Z8E939.png


四、如何使用光盤當作本地yum倉庫

      1. 掛載光盤至某目錄,例如/media/cdrom

           # mount /dev/cdrom /media/cdrom

     注意:因為我們是手動掛載,所以機器一重啟,就會丟失。CentOS6 可以掛載到                     /misc/cd 中,開機自動掛載

wKioL1e9k3eA8h4pAAAT8ZbCKPM214.pngwKiom1e9lCziQT8zAABLiF3MqvE626.png

      2. 創建配置文件

               [CentOS7]

                 name=

                 baseurl=

                 gpgcheck=

                 enabled

wKioL1e9jj7DpCjMAAAk-HzJwA4335.png


   

五、yum的命令行選項:

          –nogpgcheck:禁止進行gpgcheck

          -y: 自動回答為“yes”

          -q:靜默模式

          –disablerepo=repoidglob:臨時禁用此處指定的repo

          –enablerepo=repoidglob:臨時啟用此處指定的repo

          –noplugins:禁用所有插件



六.yum的repo配置文件中可用的變量:

   這些變量可以自動獲取當前平臺的相關信息

          $releasever: 當前OS的發行版的主版本號

          $arch平臺,i386,i486,i586,x86_64等

          $basearch礎平臺;i386

          $YUM0-$YUM9:自定義變量

     實例:

            http://server/centos/$releasever/$basearch/os

            http://server/centos/7/x86_64

            http://server/centos/6/i384


七、創建yum倉庫

         createrepo[options] <directory>



八、程序包編譯安裝

    1.編譯安裝

      1)Application-VERSION-release.src.rpm–> 安裝后,使用rpmbuild命令制作成二進制格式的rpm包,而后再安裝

      2)源代碼–>預處理–>編譯(gcc)–>匯編–>鏈接–>執行

      3)源代碼組織格式:

             多文件:文件中的代碼之間,很可能存在跨文件依賴關系

             C、C++:make (項目管理器,configure –> Makefile.in –> makefile)

             java: maven


    2.C代碼編譯安裝三步驟

      1)/configure: 

           通過選項傳遞參數,指定啟用特性、安裝路徑等;執行時會參考用戶的指定以及makefile.in文件生成makefile

           檢查依賴到的外部環境

      2)make:根據makefile文件,構建應用程序

      3)make install:復制文件到相應路徑


     3.開發工具:

       autoconf: 生成configure腳本

       automake:生成Makefile.in

       注意:安裝前查看INSTALL,README


    4.開源程序源代碼的獲?。?/strong>

       □官方自建站點:

            apache.org (ASF)

            mariadb.org

                …

       □代碼托管:

            SourceForge.net

            Github.com

            code.google.com

       □c/c++編譯器: gcc(GNU C Complier)


      5.編譯C源代碼:

       □前提:提供開發工具及開發環境

              開發工具:make, gcc等

              開發環境:開發庫,頭文件

               glibc:標準庫

       □通過“包組”提供開發組件

              CentOS 6: "Development Tools",

              "Server Platform Development



九、源碼包的編譯和安裝步驟詳解:

   1.第一步:configure腳本

       □選項:指定安裝位置、指定啟用的特性

       □–help: 獲取其支持使用的選項

         選項分類:

            安裝路徑設定:

                  –prefix=/PATH: 指定默認安裝位置,默認為/usr/local/

                  –sysconfdir=/PATH:配置文件安裝位置

                  System types:支持交叉編譯

            Optional Features: 可選特性

                  –disable-FEATURE

                  –enable-FEATURE[=ARG]

            Optional Packages: 可選包,

                   –with-PACKAGE[=ARG],依賴包

                   –without-PACKAGE,禁用依賴關系

        第二步:make

        第三步:make install

 

      2.安裝后的配置:

      (1) 二進制程序目錄導入至PATH環境變量中;

            編輯文件/etc/profile.d/NAME.sh

             export PATH=/PATH/TO/BIN:$PATH

      (2) 導入庫文件路徑

            編輯/etc/ld.so.conf.d/NAME.conf

            添加新的庫文件所在目錄至此文件中;

            讓系統重新生成緩存:

            ldconfig[-v]

      (3) 導入頭文件

           基于鏈接的方式實現:

           ln -sv

      (4) 導入幫助手冊

           編輯/etc/man.config|man_db.conf文件

           添加一個MANPATH


練習:

   編譯安裝apache 2.2源碼包,并啟動此服務

     步驟如下:

    1.1)首先獲取源代碼,下載到當前主機,默認下載到家目錄中。

wKioL1e-01uguGisAADZvN0Idxo258.png

   2)因為下載的是以tar.bz2結尾的歸檔壓縮包,所以,要解壓縮,并展開歸檔,解壓縮后生成的目錄,也默認在當前文件中;

wKiom1e-01vT4_1yAAAihX78TXs237.png

   3)進到目錄當中,可以看到有configure腳本,是可執行的,但不要著急執行,先看一下INSTALL,README和configure腳本幫助文檔;

wKioL1e-01zxiHaQAABa9wjTUJI886.png

wKioL1e-01zTAWmwAAB2i1nLEow159.png

wKiom1e-013RWSemAABBJTDAi1k673.png

wKiom1e-012yL9jlAACAGppRnyk947.png

   2.安裝

    1)第一步,執行configure腳本,并指定安裝路徑等;

wKioL1e-013x0PXbAAARNPWJrSc532.png

wKioL1e-017xF5UFAAB-qJYCwKI022.png

  2)第二步,執行make

wKiom1e-016wF0ehAABuRXGrQgk512.png

  3)第三步,執行make install 生成目錄,并查看,指定的安裝路徑下是否有目錄生成;

wKiom1e-01-zfbY0AABiDdYEtCQ401.png

wKioL1e-01_TKPOBAABHLnUyVYk554.png

   3.安裝后的配置

wKioL1e-01-gfaW2AAA_m_fszxA775.png   

   1)二進制程序目錄導入至PATH環境變量中

wKioL1e-5jyRUH4rAAAZPoHs1_M014.png

wKioL1e-5jzA5QM0AAAqBeKhIws156.png

     2)導入幫助手冊。編輯/etc/man.config|man_db.conf文件,添加一個MANPATH;

wKiom1e-01-gvsIGAAAcNeGEstk647.png

wKioL1e-02CjvIn6AABuiqVsO8U327.png

  3)導入庫文件路徑,編輯/etc/ld.so.conf.d/NAME.conf,添加新的庫文件所在目錄至此文件中,讓系統重新生成緩存

wKioL1e-5WaDf7IGAAARwCeQ7iA275.png

wKioL1e-5TqQ9ZhdAABoIzNr2kE258.png

  4)導入頭文件,基于鏈接的方式實現:

wKiom1e-5anywB0dAABTphnlSNg814.png

wKioL1e-5amAWi4VAABFn2addoo236.png

  4.測試可否連接訪問

wKioL1e-5dfzPcLnAABufOcy5KM470.png

wKiom1e-5diwHOq2AABRnImy-4o414.png







     

     

              


原創文章,作者:zhumengxiaotao,如若轉載,請注明出處:http://www.www58058.com/40266

(2)
zhumengxiaotaozhumengxiaotao
上一篇 2016-09-01
下一篇 2016-09-01

相關推薦

  • SELinux介紹

    SELinux介紹 SELinux: Secure Enhanced Linux, 是美國國家安全局(NSA=The National Security Agency)和SCC(Secure Computing Corporation)開發的 Linux的一個強制訪問控制的安全模塊。 2000年以GNU GPL發布, Linux內核2.6版本后集成在內核中D…

    Linux干貨 2016-10-08
  • 第二周- -問題總結

    前言:這周學習了文件的基本操作、用戶和權限管理、重定向和管道。 1.在centos6.9當中,創建虛擬機的時候,網絡無法獲取地址,ping也不通,出現  device eth0 does not seem to be present, delaying initialization 答:(1).虛擬機啟動出錯,就把這個虛擬機刪除掉重新建立,系統虛擬…

    2017-07-23
  • Linux用戶及用戶組管理

    馬哥網絡教育22期第三周練習 Linux用戶及用戶組管理 Linux是個多用戶多任務的分時操作系統,所有一個要使用系統資源的用戶都必須先向系統管理員申請一個賬號,然后以這個賬號的身份進入系統。用戶的賬號一方面能幫助系統管理員對使用系統的用戶進行跟蹤,并控制他們對系統資源的訪問;另一方面也能幫助用戶組織文件,并為用戶提供安全性保護。每個用戶賬號都擁有一個惟一的…

    Linux干貨 2016-09-19
  • 初探SElinux

    SELinux介紹: SELinux: Secure Enhanced Linux(安全強化的linux),是美國國家安全局(NSA=The National Security Agency)和 SCC(Secure Computing Corporation)開發的Linux的一個強制訪問控制的安全模塊。2000年以GNU GPL發布,Linux內核2.6…

    Linux干貨 2016-10-09
  • bash中的算術運算及條件測試

    bash的算術運算 +, -, *, /, %取模(取余), **(乘方) 實現算術運算: (1) let var=算術表達式 (2) var=$[算術表達式] (3) var=$((算術表達式)) (4) var=$(expr arg1 arg2 arg3 …) (5) declare –i var = 數值 (6) echo ‘算術表達式’ …

    Linux干貨 2017-04-17
  • 馬哥教育網絡班22期+第8周課程練習

    week8: 1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋也叫橋接器,是連接兩個局域網的一種存儲/轉發設備,它能將一個大的LAN分割為多個網段, 或將兩個以上的LAN互聯為一個邏輯LAN,使LAN上的所有用戶都可訪問服務器。 它工作于OSI(開放系統互聯參考模型)參考模型第二層,即“數據鏈路層”。 集線器的英文稱為“H…

    Linux干貨 2016-10-09
欧美性久久久久