軟件包管理器之二——YUM介紹及使用

一、前言

    之前我們介紹了RPM的應用(詳細請查看http://www.www58058.com/archives/6383),發覺RPM安裝軟件有一個很繁瑣的問題,那就是包與包之間的依賴關系,如果想正常安裝和使用軟件程序,就必須根據要求一步一步的解決軟件之間的依賴關系。那么如果程序使用的包很多,將會很消耗使用人的時間和精力。那么有沒有辦法解決這一問題呢?

    在RPM中我們介紹了RPM軟件會記錄軟件之間的安裝信息,其中也包括了軟件之間的依賴屬性。那么如果我們在安裝前就分析這個列表,那么在安裝時就能根據軟件之間的關系將所需的軟件一次性安裝起來,這樣就能解決這一問題,這就是 YUM 的機制。


二、yum的介紹

    yum(Yellow dog Updater Modified)是CentOS中屬于RPM前段軟件包管理器,能從指定的服務器中下載RPM包,并自動分析和處理RPM包之間的依賴關系,最后將依次所依賴的軟件包都安裝了,而無需繁瑣的一個一個安裝。


三、yum repository:yum倉庫

    yum倉庫的組成部分

        3.1、數據

            包含所有的軟件包文件

        3.2、元數據

            指的是數據文件:包括每個包的包名、版本信息、各包所包含的文件列表、包與包之間的依賴關系、包的分組信息

小擴展:元數據是怎么來的呢? 
    使用createrepo工具,能夠簡潔的快速的將我們所指定的存放大量RPM包的目錄,里面所有的RPM包信息都讀出來,分析他的依賴關系并生成元數據。所以createrepo可以理解為它是制作yum元數據的工具。     在光盤里其實也有這個元數據,路徑在光盤中的 [root@www mnt]# cd repodata/ 里,然后是以 sqlite文件后綴
    備注:centos5 是以 xml 后綴,centos6、7是以sqlite數據庫的方式存儲的

四、yum的配置文件介紹

    yum的配置文件有2中 : 主配置文件 + 倉庫配置文件

    4.1、主配置文件路徑  /etc/yum.conf

    [main]    
    cachedir=/var/cache/yum/$basearch/$releasever     #下載RPM包的緩存目錄
    keepcache=0                                       #RPM緩存的程序包安裝完成后是否保存,0表示不保存,1表示保存
    buglevel=2                                        #調試級別 取值范圍 0 - 10,默認值為2    
    logfile=/var/log/yum.log                          #yum相關日志存放路徑
    exactarch=1                                       #是否要平臺完全匹配才能安裝
    obsoletes=1                                       #需不需要檢查已過期的倉庫
    gpgcheck=1                                        #是否檢查包的完整性和合法性
    plugins=1                                         #是否允許支持yum的插件功能,0 表示不允許 ,1表示允許,建議允許,一般會用yum-fastestmirror這個插件           
    installonly_limit=5                               #允許保留多少個內核包
    bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
    distroverpkg=centos-release                       #指定一個軟件包,yum 會根據這個包判斷你的發行版本,默認是redhat-release,也可以是安裝的任何針對自己發行版的rpm 包

    4.2、倉庫配置文件路徑 /etc/yum.repos.d/*.repo  

        倉庫文件可以有多個,而且一個或幾個相關的倉庫的配置信息也可保存為一個文件,并且所以的倉庫文件名都以 .repo結尾

[REPOID]             #容器名字,必須是唯一的
name=                #some name for this repository倉庫的名字,僅作一個標識
baseurl=             #指定真正倉庫所在的路徑,可以指多個倉庫
                        #例如:baseurl=file:///media/cdrom
                        #      ftp://172.168.1.1/path    #備注第二行不能頂格寫,否則會出錯
mirrorlist=          #列出容器可以使用站點,如果不想使用,可以再前面加 # 注釋
enabled= {0 | 1}     #指是否啟用這個倉庫,0表示不啟用,1表示啟用
gpgcheck= {0 | 1}    #是否要檢測軟件包的合法性,0表示不檢測,1表示不檢查
gpgkey=              #軟件包的公鑰文件所在路徑,例如:gpgkey=file:///media/cdrom/GPG-RPM-KEY-centos-6
cost=                #倉庫優先級,比如一個軟件包在多個倉庫都有,那應該選擇哪個安裝呢?就是根據這個優先級,默認是100,數字越小表示越優先使用

         備注:默認各倉庫的用法:

            base庫:通常為系統發行版所提供的程序包(就是光盤)

            updates庫:存放更新包

            extra庫:存放額外包

            epel庫:epel庫文件

               庫本身有優先級的,但是僅是在客戶端有,服務器端是沒有優先級的

     小貼士:yum可支持多個協議,包括 ftp、http、nfs和本地文件共享服務

        所以倉庫配置文件中的 baseurl 一項可以有多個寫法,下面是各寫法的格式

            1)ftp

                格式:ftp://server/path/to/repository

            2)http

                格式:http://server/path/to/repository

            3)nfs

                格式:nft://server/nfs_path

            4)本地文件共享服務 

                格式:file:///path/to/repository


五、yum安裝步驟

yum 安裝步驟.png



六、yum命令的使用

    6.1、yum查詢功能

        yum [option] [需要查詢的信息][參數]

            -y:默認yum需要是交互模式,-y表示自動提供yes響應

            search:搜索某個軟件名或關鍵字

            list:列出所有yum所管理的軟件包和名稱

            info:同上,也類似rpm -qai

            provides:查找該命令是由軟件安裝生成的,類似rpm -df的功能

            repolist:列出所有可用的repo 

例如:
[root@localhost ~]# yum provides bash

yum provides.png

[root@localhost ~]# yum repolist

yum repolist.png

    6.2、安裝、升級、降級、卸載功能

        yum [option] [需要查詢的信息][參數]

            install:后面接需要安裝的軟件

            reinstall:后面接需要重新安裝的軟件

            update:后面接需要升級到的軟件

            check-update:檢查可用的升級包

            downgrade:后面接需要降級到的版本

            remove:卸載軟件

            erase:功能同上,卸載

例如:
[root@localhost yum.repos.d]#  yum install zlib-static

yum install.png

    6.3、和軟件組相關的功能

        yum [組功能] [軟件組]

            grouplist:列出所有可使用的組列表

            groupinfo:后面接group name,可用了解該group內含所有組的名稱

            groupinstall:安裝整組的軟件

            groupremove:刪除某個組的軟件 

例如:
[root@localhost yum.repos.d]# yum grouplist
#所有的包組未一一列舉,若想安裝某組可使用groupinstall直接安裝
Installed Groups:            #已經安裝的軟件組
   Additional Development
   Base
   Console internet tools
   Development tools
Installed Language Groups:   #已經安裝的語言組
   Arabic Support [ar]
   Armenian Support [hy]
   Georgian Support [ka]
Available Groups:            #有效軟件組包文件
   Backup Client    
   Backup Server
Available Language Groups:   #有效的語言組包文件
   Afrikaans Support [af]
   Albanian Support [sq]

    6.4、清理緩存

        yum clean { all | package | headers }

            all:將所有的數據刪除,包括元數據和軟件文件

            package:將所有已下載的軟件文件刪除

            headers:刪除所有下載的元數據文件

例如
[root@localhost yum.repos.d]# yum clean all     #這樣將會清除所有的已下載的元數據和軟件文件
Loaded plugins: fastestmirror, security
Cleaning repos: base extras updates
Cleaning up Everything
Cleaning up list of fastest mirrors

七、知識小結

    7.1、yum是RPM包的前端工具,主要解決了程序包的依賴關系

    7.2、需要了解yum的配置文件

           主配置文件 /etc/yum.conf  和 倉庫配置文件 /etc/yum.repos.d/*.repo  

        7.3、yum按住功能的流程

        7.4、yum的命令

            安裝、卸載、更新、程序組、清理緩存、查詢等功能

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

(0)
螃蟹螃蟹
上一篇 2015-07-21 21:55
下一篇 2015-07-23 17:48

相關推薦

  • DNS簡單概念 一

    DNS簡單概念 一 DNS簡單概念 一 1 §·主機角色 1 §·DNS服務器的類型: 1 §·DNS中簡單術語 2 §·DNS中資源記錄及其類型 2 §·DNS域與區域 4 §·BIND安全設置 5 §·BIND高級設置BIND VIEW 6   §·主機角色 在網絡上不同的主機有不同的角色, 比如: DNS解析角色,郵件角色,網頁服務器 §·D…

    Linux干貨 2016-09-26
  • linux下文件類型簡介

    linux下文件類型簡介 概述 文件類型縮寫及別稱 文件類型的縮寫、翻譯及別稱 文件類型 縮寫 英文 其他名稱 普通文件 – Regular file 目錄文件 d Directory file 塊設備文件 b Block special file 塊區文件 字符設備文件 c Character special file 字符設備文件 數據傳送 …

    Linux干貨 2016-10-17
  • 馬哥教育網絡班21期-第五周課程練習

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; # grep -E "^[[::space]]\+.*" /boot/grub/grub.conf 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行;…

    Linux干貨 2016-08-08
  • Linux文件查找工具之find “大寶劍”

    一、文件查找工具常用軟件 locate:     locate命令其實是find -name的另一種寫法,但是要比后者快得多,原因在于它不搜索具體目錄,而是搜索一個數據庫/var/lib/locatedb,這個數據庫中含有本地所有文件信息。Linux系統自動創建這個數據庫,并且每天自動更新一次,所以使用locate命令…

    Linux干貨 2016-03-12
  • shell腳本之選擇與執行

    流程控制 ? 過程式編程語言: 順序執行 選擇執行 循環執行 選擇執行:if語句 ? 注意:if語句可嵌套 ? 單分支 if 判斷條件:then 條件為真的分支代碼 fi ? 雙分支 if 判斷條件; then 條件為真的分支代碼 else 條件為假的分支代碼 fi 多分支 if…

    Linux干貨 2016-09-19

評論列表(3條)

  • stanley
    stanley 2015-07-21 22:00

    螃蟹的文章越來越專業了,文章寫法也自成一派

    • 螃蟹
      螃蟹 2015-07-22 18:06

      @stanley謝謝老師,我會繼續努力的

  • wenjia0411
    wenjia0411 2015-08-05 13:42

    很好的分享

欧美性久久久久