軟件包管理器之二——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
下一篇 2015-07-23

相關推薦

  • 第七周練習

    1、創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; 1.[root – gwx ~]#>fdisk /dev/sdb2.W…

    Linux干貨 2016-12-11
  • IP地址之IPv4

    一、概述   IP地址有IPv4和IPv6兩個版本,目前我們通常所說的IP地址是指IPv4。   IP地址由32位的二進制數組合而成,為了方便人類記憶,將二進制轉換成4個十進制的數值。   在這32位數據中分為網絡號與主機號兩個部分。 二、IP的分級   IP網段分為五個等級,其定義如下:   A類:規定前面…

    Linux干貨 2016-02-14
  • 邏輯卷實戰演練

    1、創建一個至少有兩個PV組成的大小為20G的名為testvg的VG;要求PE大小為16MB, 而后在卷組中創建大小為5G的邏輯卷testlv;掛載至/users目錄 2、新建用戶archlinux,要求其家目錄為/users/archlinux,而后su切換至archlinux用戶,復制/etc/pam.d目錄至自己的家目錄 3、擴展testlv…

    Linux干貨 2016-09-01
  • shell編程之變量,數值計算,字符比較,文件測試小記

     變量     變量:能儲存計算結果或能表示值抽象概念,其指向的內存空間中一段地址。        變量賦值:name=value    溢出:字符超過定義內存中間大小    變量類型:數據類型,存儲的格式,參與的運算   &nb…

    Linux干貨 2016-08-15
  • 文本處理工具(練習+作業)

    文本處理工具(cut,sort,uniq)練習 1、找出ifconfig命令結果中本機的所有IPv4地址 [root@localhost ~]# ifconfig | tr -cs '[:digit:].' '\n'| sort -t. -k3 |tail -5 2、查出分區空間使用率的最大百分比值 [root@loc…

    Linux干貨 2016-08-07
  • vsftpd基于mysql存儲認證(centos7)

    (1)首先開發包組和服務器平平臺開發包組 (2)yum安裝需要的依賴包 (3)編譯安裝pam_mysql模塊 (4)配置mysql,并添加mysql中的vsftpd進程用戶,且創建vsftpd數據庫,并將vsftpd數據庫授權給vsftpd用戶,且創建vsftpd.users表,并在表中添加用戶tom (5)創建vsftpd要上傳和下載的URL (6)創建基…

    Linux干貨 2016-10-15

評論列表(3條)

  • stanley
    stanley 2015-07-21 22:00

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

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

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

  • wenjia0411
    wenjia0411 2015-08-05 13:42

    很好的分享

欧美性久久久久