yum用法第一篇-簡介及常見用法使用總結

一、簡介

    yum( 全稱為:Yellow dog Updater, Modified),是紅帽(RedHat)家族(RedHat、Fedora、CentOS)中的前端shell的軟件包管理器,主要基于對RPM包的管理,能夠根據配置文件(類似于svn資源庫配置文件)從指定的服務器自動下載RPM包進行安裝,其最大的優勢就是可以解決令人頭疼的軟件包依賴問題,它在安裝軟件包時會自動把相關依賴包也進行安裝(卸載)操作,從而解決了在手動安裝程序包的同時還要單獨安裝相關依賴包的問題。

   yum依賴于基于C/S架構的文件服務器,這些文件服務器用來存放yum在安裝程序包時所依賴的各種程序包,它的運作流程是先通過配置文件(支持多倉庫指向,并自動尋找各個倉庫中最新版本的包或優先級最高版本的包)或者參數命令的方式通過文件傳輸協議找到該倉庫服務器進行查詢,倉庫服務器找到后會通過下載協議把相關文件包下載到本地的緩存(含元數據和程序包)目錄中,并且進行安裝操作,之后再刪除相關緩存。由于yum命令是開發運維過程中非常常用重要的一個命令,因此我們一定要熟練用好它。

  yum支持的常見的服務如下:

  ftp服務

  http服務

  本地文件目錄

  NFS服務

  yum緩存分為兩種:

  (1)數據:程序包

  (2)元數據:repodata(請求的安裝包及依賴包的名稱、大小、版本、依賴關系等屬性)

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

  執行流程為:第一次訪問倉庫時請求倉庫服務器的元數據并下載到本地緩存目錄中,然后檢索下載安裝包及其相關依賴包并進行安裝,安裝完成后最后再刪除緩存目錄中的這些安裝包,保留元數據。之后再次下載安裝包會先去倉庫服務器查詢元數據的校驗碼,并和本地元數據校驗碼進行比較,如果校驗碼相同,則直接忽略;如果不同就重新下載元數據并對本地緩存目錄中的元數據進行覆蓋,從而完成緩存有效性驗證。

二、用法詳解

  (1)配置文件說明:包含倉庫位置路徑、緩存大小、緩存路徑及相關各種配置信息;每個yum命令行可以指向多個倉庫,倉庫間可以有優先級等相關配置;有如下兩部分組成:

  a.主配置文件:/etc/yum.conf (為各倉庫指向提供公共配置信息,遵循windows上ini文件的語法格式)

  yum.conf文件中的[main]段提供公共配置,詳情見下圖:

blob.png

  b.各倉庫的定義:/etc/yum.repos.d/*.repo (必須以repo結尾的文件才有效,每個repo文件中可以配置一至多個倉庫)

默認情況下只需配置name、baseurl及gpgcheck=0就可以(默認gpgcheck=1)

 [repositoryid]對于當前系統的yum來講,此repositoryid用于惟一標識此repository指向,因此,其必須惟一,詳情見下圖:blob.png

補充說明:cost屬性指明當前repository的訪問開銷,默認為1000;

查看yum緩存路徑如下圖:

blob.png

blob.png

倉庫管理:

  1. 列出當前yum所有可用倉庫,命令格式:repolist [all|enabled|disabled]

輸入命令:yum repolist (等價于yum repolist enabled),效果如下圖:

blob.png

blob.pngblob.png

緩存管理:

2.清理yum緩存,命令格式:clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

清理yum緩存中包的數據,輸入命令:yum clean packages ,效果如下圖:

blob.png

清理yum緩存中的元數據,輸入命令:yum clean metadata ,效果如下圖:

blob.png

清理yum緩存中過期的數據,輸入命令:yum clean expire-cache ,效果如下圖:

blob.png

清理yum緩存中rmp數據庫中的數據,輸入命令:yum clean rpmdb ,效果如下圖:

blob.png

清理yum緩存中的插件數據,輸入命令:yum clean plugins ,效果如下圖:

blob.png

清理yum緩存中所有的數據,輸入命令:yum clean all ,效果如下圖:

blob.png

3.yum緩存創建,makecache自動連接至每一個可用倉庫,下載其元數據,將其創建為緩存

輸入命令:yum makecache,效果如下圖:

blob.png程序包查看:

4.yum程序包查看,輸出格式為:“包名+平臺+版本號-發行號+提供倉庫(從哪個倉庫中安裝在當前系統中的)”,命令格式:

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

yum list {available(可安裝尚未安裝)|updates(可升級)|installed(已安裝)|extras(倉庫中沒有但系統中安裝的包)|obsoletes(已廢棄的)|recent(剛加進倉庫的新包)} [glob_exp1] […]

grouplist [hidden] [groupwildcard] […]

查看mysql開頭的程序包,輸入命令:yum list mysql*,效果如下圖:

blob.png

查看yum中可安裝尚未安裝的程序包,輸入命令:yum list available,效果如下圖:

blob.png

查看yum中可升級的程序包,輸入命令:yum list updates,效果如下圖:

blob.png

查看yum中已安裝的程序包,輸入命令:yum list installed,效果如下圖:

blob.png

查看yum中倉庫里沒有但系統中安裝的程序包,輸入命令:yum list extras,效果如下圖:

blob.png

查看yum中已廢棄的程序包,輸入命令:yum list obsoletes,效果如下圖:

blob.png

查看yum中剛加進倉庫的新程序包,輸入命令:yum list recent,效果如下圖:

blob.png

查看yum中所有可用的程序包組,輸入命令:yum grouplist,效果如下圖:

blob.png

程序包安裝:

5.yum程序包安裝,只需提供包名即可安裝,命令格式:install package1 [package2] […],支持多個包同時安裝。

如果某包有在不同倉庫中有多個不同版本,默認會安裝最新版本;

如果要安裝指定版本:install PACKAGE-VERSION …

安裝php程序包,輸入命令:yum install php,效果如下圖:blob.png

安裝php-mysql程序包并自動確認(加-y參數),輸入命令:yum -y install php-mysql,效果如下圖:blob.png

程序包重新(覆蓋)安裝:

命令格式:reinstall package1 [package2] […]

重新安裝php-mysql程序包,輸入命令:yum reinstall php-mysql,效果如下圖:

blob.png

程序包升級

命令格式:update [package1] [package2] […]

yum升級java程序包,輸入命令:yum update java,效果如下圖:blob.png

程序包降級

命令格式:downgrade [package1] [package2] […]

yum降級java程序包,輸入命令:yum downgrade java,效果如下圖:

blob.png

檢查程序包有哪些可用升級

命令格式:check update

yum檢查程序包有哪些可以用升級,輸入命令:yum check-update,效果如下圖:blob.png

卸載程序包

卸載安裝包的依賴包會把安裝包也卸載,但卸載安裝包不會卸載其關聯的依賴包,所有依賴于正卸載的程序包的程序包會被一并卸載,命令格式:remove | erase package1 [package2] […]

yum卸載php安裝包,輸入命令:yum remove php,效果如下圖:

blob.png

yum卸載php-common安裝包,輸入命令:yum remove php-common,效果如下圖:

blob.png

yum卸載php-mysql安裝包,輸入命令:yum erase php-mysql,效果如下圖:blob.png

程序包查詢

查詢程序的相關簡要信息:info PACKAGE …

在包名和sumary信息中搜索指定的關鍵字:search KEYWORD …

查詢指定文件由哪個程序包安裝生成:provides|whatprovides /PATH/TO/SOMEFILE

yum查詢php安裝包信息,輸入命令:yum info php,效果如下圖:blob.png

yum搜索mysql(搜索結果只要在程序包名稱和描述信息包含mysql關鍵字就會被顯示出來),輸入命令:yum search mysql,效果如下圖:blob.png

yum查詢/etc/fstab是由哪個安裝包生成的,輸入命令:yum provides /etc/fstab或者yum whatprovides /etc/fstab,效果如下圖:

blob.png

安裝/升級本地的程序包文件

注意:紅帽7不支持localinstall和localupdate,紅帽6和7都直接使用install和update安裝即可

用于安裝倉庫中并不存在的程序包文件,這些程序包有可能又依賴于倉庫中的某些程序包。

安裝本地程序包命令格式:localinstall rpmfile1 [rpmfile2] […]

升級本地程序包命令格式:localupdate rpmfile1 [rpmfile2] […]

yum安裝本地php-common-5.3.3-40.el6_6.x86_64.rpm程序包,輸入命令:yum localinstall php-common-5.3.3-40.el6_6.x86_64.rpm ,效果如下圖:

blob.png

程序包組管理

列出所有包組:grouplist

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

安裝:groupinstall group1 [group2] […]

卸載:groupremove group1 [group2] […]

升級:groupupdate group1 [group2] […]

注意:紅帽7不支持groupinstall、groupremove和groupupdate,紅帽6和7都可直接用install、remove或update來管理包組

方法為:install + @ + 包組名,如yum install @"Ruby 支持"

yum查看Eclipse包組信息,輸入命令:yum groupinfo Eclipse,效果如下圖:

blob.pngyum安裝Ruby支持包組,輸入命令:yum groupinstall "Ruby 支持" 或 yum install @"Ruby 支持"(此處必須加雙引號,不然無效),效果如下圖:blob.png

yum卸載Ruby支持包組,輸入命令:yum groupremove "Ruby 支持"或 yum remove @"Ruby 支持"(此處必須加雙引號,不然無效),效果如下圖:blob.png

yum升級Ruby支持包組,輸入命令:yum groupupdate "Ruby 支持"或yum update @"Ruby 支持"(此處必須加雙引號,不然無效),效果如下圖:

blob.png

yum命令的可用選項:

-y: 自動回答為“yes”

–disablerepo=: 臨時禁用在配置文件中配置并啟用的某repository;

–enablerepo=: 臨時啟用指定的某repo;

–nogpgcheck: 禁止做包校驗;

yum內置變量:

用于保存當前平臺的相信息;

(1) $raleasever: 當前OS發行版的主版本號;

     例如,對CentOS 6.6 x86_64,主版本號為6;

(2) $arch:平臺 如:i386, i486,i586

(3) $basearch: 基礎平臺, 例如i686, i586, i486以及i386的基礎平臺同為i386;

(4) $YUM0-$YUM9

原創文章,作者:鏡花水月,如若轉載,請注明出處:http://www.www58058.com/8251

(2)
鏡花水月鏡花水月
上一篇 2015-09-22
下一篇 2015-09-22

相關推薦

  • test

    歡迎使用馬克飛象 作業幫 示例筆記本 馬克飛象 幫助 Markdown 馬克飛象是一款專為印象筆記(Evernote)打造的Markdown編輯器,通過精心的設計與技術實現,配合印象筆記強大的存儲和同步功能,帶來前所未有的書寫體驗。特點概述: 功能豐富 :支持高亮代碼塊、LaTeX 公式、流程圖,本地圖片以及…

    Linux干貨 2017-03-20
  • python-多進程

    進程是由系統自己管理的。 1:最基本的寫法 from multiprocessing import Pool def f(x):     return x*x if __name__ == '__main__': &nb…

    Linux干貨 2016-11-05
  • 學習標準I/O和管道的心得體會

    重定向、標準輸出、標準輸入、標準錯誤、管道的命令整理

    2017-11-20
  • 實現真實的機柜模擬圖[原創]

    一般能反映機房設備位置、結構我們都喜歡通過網絡拓撲圖來展現,但個人感覺還不夠直觀、明了的表現出自己想要的結果(自己太挑剔了,呵呵)。因此寫一個生成真實機柜模擬圖平臺,實現與真實服務器外觀、服務狀態、空閑位置等信息。在線效果圖http://blog.liuts.com/idc/系統截圖1、平臺顯示某一排截圖2、平臺顯示某臺服務器詳細信息截圖3、狀態說明2U服務…

    Linux干貨 2015-03-27
  • LNMP內網部署wiki

    需求:內部人員經常到查閱資料,考慮在內網搭建wiki站點。 實驗拓撲: 實驗環境:        Nginx,PHP:192.168.198.160,10.0.0.07        MySQL:10.0.0.8 軟件包:  &n…

    Linux干貨 2015-10-15
  • 淺談DNS基本原理以及實現方法(二)

             DNS作為互聯網服務的一個基礎型服務,了解和掌握DNS服務的原理和配置將是每一個運維人員必備的技能,這就如同闖蕩江湖的俠客不但要有的招式,還要懂的運用這些招式的心法一樣,接下來我將從DNS的正反向解析、主從同步、子域授權以及Bind view這四個方面來揭開它神…

    Linux干貨 2015-12-19

評論列表(2條)

  • stanley
    stanley 2015-09-22 09:49

    呵,第一眼就有欣喜的感覺,難得又看見幾篇不錯的文章

    • 鏡花水月
      鏡花水月 2015-09-22 18:43

      @stanley多謝這位朋友支持,希望能幫助到大家。

欧美性久久久久