天天看點

Linux自學筆記——yum程式包管理工具

         YUM,Yellow dog UpdateModified,是一個在Fedora和RedHat以及CentOS中的shell前端軟體包管理器。基于RPM包管理,能夠從指定的伺服器自動下載下傳RPM包并且安裝,可以自動處理依賴關系,并且一次安裝所有依賴的軟體包,無需繁瑣地一次次下載下傳、安裝。

1.     Yum用戶端:

配置檔案:

/etc/yum.conf:為所有倉庫提供公共配置

<a href="https://s1.51cto.com/wyfs02/M02/00/1C/wKiom1mWe3_TeekrAACFa3hx34g958.png-wh_500x0-wm_3-wmp_4-s_651197008.png" target="_blank"></a>

具體參數含義為:

cachedir=/var/cache/yum/$basearch/$releasever   ##yum緩存目錄,yum在此存儲下載下傳的rpm包和資料庫;

keepcache=0    ##安裝完成後是否保留軟體包,0不保留,1為保留,預設為0;

debuglevel=2    ##debug資訊輸出等級,範圍為0-10,預設為2;

logfile=/var/log/yum.log  ##yum日志檔案位置;

exactarch=1           ##精确平台比對,設定為1時,yum隻會安裝和系統架構精确比對的軟體包;

obsoletes=1           ##update的參數,允許更新陳舊的rpm包;

gpgcheck=1           ##檢查安裝包的完整性和來源合法性,1檢查,0不檢查;

plugins=1         ##是否啟用插件,預設為1允許,

installonly_limit=5      ##

bugtracker_url=           ##bug送出的url

gory=yum              ##

distroverpkg=centos-release          ##指定一個軟體包,yum會根據這個包判斷你的發行版本;

這其中也是部分的參數配置,如果想要了解更深入的可以使用如下指令進行查閱man手冊:

倉庫指向:

  下面我們随機檢視yum的其中一個.repo檔案:

  倉庫指向的定義:

  [repositoryID]##軟體源的名稱;

  name=Somename for this repository           ##軟體倉庫名;

  baseurl=url://path/to/repository/         ##yum源的鏡像伺服器位址;

  enabled={1|0}          ##是否啟用這個repo檔案,預設為1啟用;

  gpgcheck={1|0}        ##是否檢查安裝包的完整性以及合法性;

  gpgkey=URL        ##用于校驗的gpg秘鑰位址;

  enablegroups={1|0}        ##手否對組啟用;

  failovermethod={roundrobin|priority}   預設為:roundrobin,意為從列出的baseurl裡随機挑選;

  cost=        ##花銷,預設為1000;

2.     Yum指令的用法:

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

command is one of:

        * install package1 [package2] [...]

        *update [package1] [package2] [...]

        * update-to [package1] [package2] [...]

        * check-update

        * upgrade [package1] [package2] [...]

        * upgrade-to [package1] [package2][...]

        * distribution-synchronization[package1] [package2] [...]

        * remove | erase package1 [package2][...]

        * list [...]

        * info [...]

        * provides | whatprovides feature1[feature2] [...]

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

        * makecache

        * groupinstall group1 [group2] [...]

        * groupupdate group1 [group2] [...]

        * grouplist [hidden] [groupwildcard][...]

        * groupremove group1 [group2] [...]

        * groupinfo group1 [...]

        * search string1 [string2] [...]

        * shell [filename]

        * resolvedep dep1 [dep2] [...]

        * localinstall rpmfile1 [rpmfile2][...]

           (maintained for legacy reasons only- use install)

        * localupdate rpmfile1 [rpmfile2] [...]

           (maintained for legacy reasons only- use update)

        * reinstall package1 [package2] [...]

        * downgrade package1 [package2] [...]

        * deplist package1 [package2] [...]

        * repolist [all|enabled|disabled]

        * version [ all | installed | available| group-* | nogroups* | grouplist | groupinfo ]

        * history[info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

        * check

        * help [command]

      顯示倉庫清單:

           repolist [all |enabled|disabled]

      顯示程式包:

           list

                 #yum list [all |glob_exp1][golb_exp2]

                 #yum list{available|installed|updates} [glob_exp1] [...]

      安裝程式包:

           Install package1 [package2]…

           Reinstall package1 [package2]…

      在安裝過程中,會有一個詢問互動式的過程,必須選擇y才能繼續安裝,否則則不會繼續安裝;

      更新安裝包:

           update [package1] [package2]…

           downgrade package1 package2…(降級)

      檢查可用更新:

           check-update

      解除安裝安裝包:

           remove | erase package1 [package2]…

      檢視程式包資訊information:

            info[…]

      檢視指定的特性(可以是某個檔案)是由哪個程式包提供的:

            Provides| whatprovides feature1 [feature2][…]

      清理本地緩存:

            Clean[ packages | metadata | expire-cache | rpmdb |plugins | all ];

      建構緩存:

            makecache

      搜尋:

            searchstring1 [string2] […]    以指定的關鍵字搜尋程式包及summary資訊;

      檢視指定的包所依賴的capabilities:

            deplistpackage1 [package2][…]

      檢視yum事物曆史:

           history  [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

      安裝及更新本地程式包:

           * localinstall rpmfile1 [rpmfile2][...]    ##本地安裝

                 (maintained for legacy reasons only - useinstall)

               *localupdate rpmfile1 [rpmfile2] [...]##本地更新

              (maintainedfor legacy reasons only - use update)

        包組管理的相關指令:

                  * groupinstall group1 [group2] [...]    ##組安裝

                 * groupupdate group1 [group2] [...]  ##組更新

                  * grouplist [hidden] [groupwildcard] [...]##顯示組

                  * groupremove group1 [group2] [...]##解除安裝組

             * groupinfo group1 [...]         ##檢視組資訊

      如何使用CD光牒當作本地yum倉庫:

(1)            挂載CD光牒至某目錄,例如/media/cdrom;

Mount –r –tiso9660 /dev/cdrom /media/cdrom;

(2)            建立配置檔案:

[centos6.6]

name=

baseurl=

gpgcheck=

enabled=

1.     将/etc/yum.repo.d下的檔案備份一份,

2.     然後建立一個.repo結尾的檔案,編輯配置檔案,儲存退出後可用yum repolist檢視yum倉庫是否建立成功;

其中cdrom.repo的配置檔案内容為:

yum的指令行選項:

--nogpgcheck:不進行gpgcheck;

-y:自動回答為yes;

-q:靜默模式;

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

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

--noplugins:禁用所有插件;

建立yum倉庫:

  createrepo[options] &lt;directory&gt;

程式包的編譯安裝:

  testapp-VERSION-release.src.rpm--&gt; 安裝後,使用rpmbuild指令制作成二進制格式的rpm包,而後再安裝;

  大概的執行流程為:源代碼 --&gt; 預處理 --&gt; 編譯(gcc) --&gt; 彙編 --&gt; 連結 --&gt; 執行

  源代碼組織格式:

       多檔案:檔案中的代碼之間,很可能存在跨檔案依賴關系;

       C、C++: make (configure --&gt; Makefile.in --&gt; makefile)

              java: maven

  c代碼編譯安裝三步驟:

       ./configure:

(1)            通過選項傳遞參數,指定啟用特性、安裝路徑等;執行時會參考使用者的指定以及makefile.in檔案生成makefile;

(2)            檢查依賴到的外部環境;

make:

     根據makefile檔案,建構應用程式;

make install

           開發工具:

                 autoconf:生成configure腳本;

                 automake:生成makefile.in

           建議:安裝前檢視INSTALL,README

      開源程式源代碼的擷取:

           官方自建站點:

                 apache.org(ASF)

                 mariadb.org

           代碼托管:

                 SourceForge

                 Github.com

                 code.google.com

      c/c++: gcc (GNU C Complier)

      編譯c源代碼:

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

                 開發工具:make,gcc等

                 開發環境:開發庫,頭檔案

                      glibc:标準庫

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

                      Centos6:“development tools”,“server platform development”

           第一步:configure腳本

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

                 --help:擷取其支援使用的選項

                      選項分類:

                            安裝路徑設定:

                                  --prefix=/PATH/TO/SOMEWHERE:指定預設安裝位置:預設為/usr/local/

                                  --sysconfdir=/PATH/TO/SOMEWHERE:配置檔案安裝位置;

                            System types:

                            Optional Features:可選特性

                                  --disable-FEATURE

                                  --enable-FEATURE[=ARG]

                            Optional Packages:可選包

                                  --with-Packages=[ARG]

                                      --without-PACKAGE

           第二步:make

           第三步:make install

      安裝後的配置:

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

編輯檔案/etc/profile.d/NAME.sh

      ExportPATH=/PATH/TO/BIN:$PATH

(2)            導出庫檔案路徑

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

      添加新的庫檔案所在的目錄至此檔案中:

讓系統重新生成緩存:

      ldconfig[-v]

(3)            導出頭檔案

基于連結的方式實作:

      ln –sv

(4)            導出幫助手冊

編輯/etc/man.config檔案

      添加一個MANPATH

      舉例:在centos6.6上編譯安裝httpd

1.     安裝gcc編譯工具:

<a href="https://s5.51cto.com/wyfs02/M02/00/1C/wKiom1mWfMTQ6TAEAAAGEZqfD9c379.png-wh_500x0-wm_3-wmp_4-s_2951314675.png" target="_blank"></a>

2.     安裝開發元件,"Development tools" "Server PlatformDevelopment"

<a href="https://s5.51cto.com/wyfs02/M00/9E/CC/wKioL1mWfM2j6ojGAAALT4VAUnw182.png-wh_500x0-wm_3-wmp_4-s_4023768316.png" target="_blank"></a>

3.     進入下載下傳的httpd檔案夾,展開httpd-2.2.26.tar.gz,并進入http-2.2.26檔案夾:

<a href="https://s2.51cto.com/wyfs02/M02/00/1C/wKiom1mWfNzh42-GAACOENrQxjo080.png-wh_500x0-wm_3-wmp_4-s_2628163344.png" target="_blank"></a>

4.     運作http-2.2.26檔案夾下的configue腳本,并指明安裝路徑等選項:

<a href="https://s3.51cto.com/wyfs02/M01/9E/CC/wKioL1mWfOWBcrKpAAANQYBU1r4179.png-wh_500x0-wm_3-wmp_4-s_711083284.png" target="_blank"></a>

5.     等腳本運作完之後運作make指令:

<a href="https://s1.51cto.com/wyfs02/M02/9E/CC/wKioL1mWfPTD967eAAAHkYBMET4529.png-wh_500x0-wm_3-wmp_4-s_3218797590.png" target="_blank"></a>

6.     然後運作make install指令:

<a href="https://s5.51cto.com/wyfs02/M00/00/1C/wKiom1mWfQyyH8BBAAAH2ImfS8A180.png-wh_500x0-wm_3-wmp_4-s_1147202550.png" target="_blank"></a>

7.     進入安裝目錄,

<a href="https://s2.51cto.com/wyfs02/M01/00/1C/wKiom1mWfRfzcPNCAAAV5ZMEBzM503.png-wh_500x0-wm_3-wmp_4-s_101693730.png" target="_blank"></a>

測試80端口是否在監聽狀态:

<a href="https://s1.51cto.com/wyfs02/M01/9E/CC/wKioL1mWfSDSzM_mAABdJr1iKWE572.png-wh_500x0-wm_3-wmp_4-s_1990472262.png" target="_blank"></a>

8.     在網頁中測試服務狀态:

<a href="https://s5.51cto.com/wyfs02/M02/00/1C/wKiom1mWfS3DvAsrAABzk276qa0784.png-wh_500x0-wm_3-wmp_4-s_2430469534.png" target="_blank"></a>

安裝完之後的配置:

9.     導出二進制程式目錄至PATH環境變量中;

<a href="https://s3.51cto.com/wyfs02/M00/00/1C/wKiom1mWfTqAAeCQAAA-hXmpFO0482.png-wh_500x0-wm_3-wmp_4-s_3883430788.png" target="_blank"></a>

10.導出庫檔案路徑,并讓系統重新生成緩存:

<a href="https://s5.51cto.com/wyfs02/M02/9E/CC/wKioL1mWfUOxms09AAAx3VqLHg8484.png-wh_500x0-wm_3-wmp_4-s_3654503225.png" target="_blank"></a>

系統重新生成緩存:

<a href="https://s4.51cto.com/wyfs02/M00/9E/CC/wKioL1mWfU3y73lBAAAmez_fUVc456.png-wh_500x0-wm_3-wmp_4-s_961512534.png" target="_blank"></a>

11.導出頭檔案:

<a href="https://s2.51cto.com/wyfs02/M01/9E/CC/wKioL1mWfWHhBQuZAAAPhkV6vM4084.png-wh_500x0-wm_3-wmp_4-s_4286306345.png" target="_blank"></a>

12.導出幫助手冊:

<a href="https://s1.51cto.com/wyfs02/M00/00/1C/wKiom1mWfW6z9Tn7AABXjdj-f8o779.png-wh_500x0-wm_3-wmp_4-s_2130672236.png" target="_blank"></a>

此時,才算完成整個程式的編譯安裝。

本文轉自 claude_liu 51CTO部落格,原文連結:http://blog.51cto.com/claude666/1957311,如需轉載請自行聯系原作者

下一篇: 資料庫服務

繼續閱讀