程序包管理之yum命令詳解

1.yum是什麼?

    yum(全稱爲 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。基於RPM包管理,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。yum提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令。



2.yum客戶端的配置文件

    配置文件:

        /etc/yum.conf    爲所有倉庫提供公共配置或不屬於倉庫的配置

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


    /etc/yum.repos.d/*.repo : 定義倉庫

        [repositoryID]

        name=Some name for this repository

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

        enabled=[0|1]倉庫開啓或關閉

        gpgcheck ={1|0}  檢查來源合法性

        gpgkey=URL 指明密鑰文件

        enablegroups ={0|1} 使用組來批量管理程序包

        failovermethod = {roundrobin(輪詢)|specified(優先級)}   

            故障轉移方法默認爲roundrobin,爲隨機挑選

        cost(開銷)=#  默認爲1000


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

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

        $arch:平臺類型

        $basearch :基礎平臺

        $YUM0-$YUM9 :用戶自定義的變量


這裏以 http://mirrors.aliyun.com/ 爲例:

~]# cd /etc/yum.repos.d/
~]# vim aliyun.repo
[base]
name=aliyun
baseurl=http://mirrors.aliyun.com/centos/6.7/os/x86_64/
gpgcheck=1

我們也可以用變量的方式來設置baseurl:

baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/



3.如何使用光盤做本地yum倉庫

    這裏以CentOS 6.7的ISO鏡像爲例:

(1)掛載光盤

~]# mount -r /dev/cdrom /media/cdrom

(2)創建配置文件

~]# cd /media/cdrom/
~]# ls     -->這裏查看一下是否有"repodata"目錄,一般默認都有,如果沒有
~]# createrepo   -->創建"repodata"目錄,如有,則不用創建
~]# vim /etc/yum.repos.d/local.repo
[base]
name=local
baseurl=file:///media/cdrom/
gpgcheck=1

~]# yum repolist   --> 配置完成後可以用這個命令檢查是否配置成功

注: 創建yum倉庫  createrepo [options] <directory>



4.yum常用命令

    yum的命令行選項:

        --nogpgcheck :進制進行gpg check 

        -y :自動回答爲"yes"

        -q :靜默模式

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

        --enabledrepo=repoidglob :臨時啓用此處的指定的repo

        --noplugins :禁用所有插件


    常用命令:

          顯示倉庫列表:

            repolist [all|enabled|disabled]


        顯示程序包:

            yum list [all | glob_exp1] [glob_exp2] [...]

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


        安裝程序包:

            install package1 [package2][...]

            reinstall package1 [package2] [...] 重新安裝


        升級程序包:

            update package1 [package2] [...]

            downgrade package1 [package2] [...] 降級


        檢查可用升級:

            check-update 


        卸載程序包:

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


        查看程序包的簡要信息:

            info[]


        查看指定的特性是由那個程序包提供:

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


        清理本地緩存:

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


        構建緩存:

            makecache


        搜索:

            search string1 [string2] [...]

    以指定的關鍵字搜索程序包名及summary信息


        查看指定包所依賴的capabilities:

            deplist [package1] [package2] [...]


        查看yum事物歷史:

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

    

    包組管理的常用命令:

       * groupinstall group1 [group2] [...]

            * groupupdate group1 [group2] [...]

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

            * groupremove group1 [group2] [...]

            * groupinfo group1 [...]


5.程序包編譯安裝

    源碼包的一般格式:

        testapp-VERSION-release.src.rpm  

           安裝後,使用rpmbuil命令製作成二進制格式的rpm包,而後在安裝

    源代碼 --> 預處理 --> 編譯(gcc)--> 彙編 --> 鏈接 --> 執行


編譯安裝三步驟:

./configure 

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

    2.檢查依賴到的外部環境

make 

    根據makefile文件,構建應用程序,調用編譯器來完成編譯

make install 


編譯C源代碼:

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

    開發工具:make,gcc等

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

    glibc:標準庫

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

        CentOS 6:"Development Tools","Server Platform Development"

        CentOS 7:"開發工具"

    

第一步:configure腳本

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

        --help:獲取其支持使用選項


    安裝路徑設定:

        --prefix=/PATH/TO/SOMEWHERE :指定默認安裝位置,默認位爲/usr/local

        --sysconfdir=/PATH/TO/SOMEWHERE :配置文件安裝路徑

        System types(系統類型): 交叉編譯可以用到

        Optional Features :可選特性

        --disable-FEATURE 禁用某特性

        --enable-FEATURE[=ARG] 啓用某特性

        Optional Packages:可選程序包,

        --with-PACKAGE[=ARG] 定義依賴的程序包

        --without-PACKAGE不需要依賴的程序包

第二步:make

第三步:make install 


安裝後的配置:

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

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

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

(2)導出庫文件路徑

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

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

    /usr/local/apache2/lib

    讓系統重新生成緩存

    ldconfig [-v]

(3)導出頭文件到/usr/include

    基於鏈接的方式實現:

    ln -sv

     導出目錄爲一個符號鏈接

(4)導出幫助手冊

    編輯/etc/man_db.conf文件

    添加一個 MANPATH



這裏以在CentOS 6.7上編譯安裝apache 2.2爲例:

~]# cd httpd-2.2.29     --> 這裏先切換到httpd目錄下
~]# ./configure --prefix=/usr/local/ --sysconfdir=/etc/httpd2.2   
~]# make 
~]# make install
~]# cd /usr/local
~]# ./httpd    --> 啓動http服務



6.開源程序的獲取方式

官方自建站點:

    apache.org(ASF項目)

    mariadb.org

    ...

代碼託管:

    SourceForge

    Github.com

    code.google.com 

    ...

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