Linux軟件管理 - YUM工具

寫在前面:博主是一只經過實戰開發歷練後投身培訓事業的“小山豬”,暱稱取自動畫片《獅子王》中的“彭彭”,總是以樂觀、積極的心態對待周邊的事物。本人的技術路線從Java全棧工程師一路奔向大數據開發、數據挖掘領域,如今終有小成,願將昔日所獲與大家交流一二,希望對學習路上的你有所助益。同時,博主也想通過此次嘗試打造一個完善的技術圖書館,任何與文章技術點有關的異常、錯誤、注意事項均會在末尾列出,歡迎大家通過各種方式提供素材。

  • 對於文章中出現的任何錯誤請大家批評指出,一定及時修改。
  • 有任何想要討論和學習的問題可聯繫我:[email protected]
  • 發佈文章的風格因專欄而異,均自成體系,不足之處請大家指正。

Linux軟件管理 - YUM工具

文本關鍵字:Linux、軟件管理、YUM工具、解決依賴

一、YUM介紹

1. YUM含義

YUM的全稱是:Yellowdog Updater Modified,是一個基於RPM包管理的Shell前端軟件包管理器。由於是基於RPM包管理器,那麼使用的場景也就和RPM類似,主要支持的Linux操作系統爲:RedHat、CentOS、Fedora。YUM還提供了圖形化前端工具:yumex和kyum,需要在yum正常工作的前提下使用。

2. YUM特點

  • 使用python開發
  • 需要對應的軟件倉庫(repository)
  • 自動化升級、安裝、移除rpm軟件包
  • 可以很好的解決RPM軟件包依賴問題
  • 可以自定義多個資源庫/yum源(repository)

3. YUM工作流程

  • 執行yum命令
  • 讀取yum配置文件,獲取倉庫信息
  • 在倉庫中搜索元數據文件,確定所需軟件及依賴的軟件
  • 下載相關軟件包及校驗文件
  • 按順序安裝軟件包
  • 當遠程倉庫更新後可以通過相應的命令更新本地緩存(軟件元信息)

二、常用操作

在系統安裝完畢後已經默認配置了網絡源,在網絡暢通的情況下,可以使用yum命令完成軟件的安裝、升級、卸載等操作。

1. 常用指令

  • install {package1} [package2] […]
    • 將安裝最新版的軟件以及相關的依賴,可以同時安裝多個軟件包,用空格隔開
    • 指定的軟件包可以是一個名稱,也可以是一個rpm軟件包文件
    • 當指定爲一個rpm軟件包文件時,效果等同於localinstall
  • update/update-to [package1] [package2] […]
    • 不填寫軟件包參數時將更新系統的所有軟件至最新版
    • 指定的軟件包可以是一個名稱,也可以是一個rpm軟件包文件
    • 當指定爲一個rpm軟件包文件時,效果等同於localupdate
    • update-to:可以指定將軟件升級至某一版本
  • check-update:列出所有可更新的軟件清單

在這裏插入圖片描述

  • remove/erase {package1} [package2] […]:刪除指定的軟件包
  • list
    • 不寫任何參數時等同於all:列出所有可用的軟件包信息以及已安裝的軟件包信息
    • available:列出所有在yum源中可安裝的軟件包
    • updates:列出所有在yum中可用於升級的軟件包
    • installed:列出所有已安裝的軟件包信息

  • info:列出某一個軟件或所有軟件的詳細信息,支持的選項與list相同

在這裏插入圖片描述

  • clean
    • 不填寫參數時效果等同於clean all:將會清空所有本地緩存文件
    • packages:清空已下載的所有軟件包,默認情況下不會自動刪除
    • metadata:清空已下載的元信息緩存文件,再次運行yum時會重新下載進行緩存
    • expire-cache:清除過期的緩存,如果緩存數據仍然可用,將不會執行刪除操作
    • rpmdb:清空所有緩存在本地的rpm軟件數據庫信息
    • plugins:清空所有插件對應的緩存數據
    • all:清空上面列出的所有緩存數據
  • makecache:在本地緩存元數據

  • search {string1} [string2] […]:根據提供的信息搜索軟件包,會優先根據名稱搜索,如果未發現會使用描述信息和url匹配
  • localinstall {rpmfile1} [rpmfile2] […]:使用yum安裝一個rpm軟件包,會自動從可用源中搜索安裝所需依賴軟件
  • localupdate {rpmfile1} [rpmfile2] […]:使用yum升級一個rpm軟件包,會自動從可用源中搜索安裝所需依賴軟件
  • reinstall {package1} [package2] […]:重新安裝某個軟件包,以最近一次安裝的版本爲準
  • deplist {package1} [package2] […]:列出某一個軟件包相關的依賴軟件列表

在這裏插入圖片描述

只截取了部分內容,嗯,果然,rpm軟件依賴一不小心就會變成噩夢,yum,感謝有你。

  • repolist [all/enabled/disabled]
    • all:顯示所有的yum源
    • enabled:顯示所有開啓狀態的yum源
    • disabled:顯示所有關閉狀態的yum源

  • check:檢查本地rpm數據庫和產品信息是否有誤

2. 常用選項

  • -y:自動使用yes應答過程中的選項
  • -q:取消輸出內容,靜默安裝
  • -v:輸出詳細信息
  • -R:設置最大等待時長,單位爲分鐘
  • -‌-version:顯示當前yum工具版本

在這裏插入圖片描述

  • -‌-skip-broken:解決卸載軟件時產生的依賴錯誤問題
  • -‌-downloadonly:只進行軟件的下載
  • -‌-downloaddir:指定軟件包下載路徑

三、YUM源的管理維護

1. yum配置文件

  • yum配置文件目錄:/etc/yum.repos.d
  • yum配置文件:*.repo

2. 配置國內鏡像

默認情況下,Base對應的是網絡鏡像的配置,Media對應的是本地鏡像的配置,網絡鏡像地址是使用的centos.org提供的鏡像列表,可以將鏡像修改爲國內的阿里、網易等鏡像,提升下載速度。

  • 備份原有的Base配置文件(可選操作)
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.bak
  • 下載阿里雲yum配置文件,寫入對應的文件中
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

  • 生成緩存
yum makecache

四、本地YUM源配置

1. 配置項說明

  • [serverid]:repo的唯一標識,用於區分不同的repo
  • name:對repo的描述,支持使用$進行引用變量值的寫法
  • mirrorlist:鏡像列表地址,打開之後是一個記錄多個鏡像地址的列表,會自動在這些列表中掃描選擇鏡像資源
    • release:發行版本,對應的大版本號,如:6,7
    • arch:系統架構,32位一般對應i386,64位對應x86_64
    • repo:倉庫類型,如os、fasttrack等
    • infra:該選項可省略,對應值爲stock,可以在/etc/yum/vars/infra中查看


  • baseurl:直接指向一個yum源地址,支持多種協議
    • http:網絡傳輸協議
    • ftp:文件傳輸協議
    • file:文件協議,可以指向一個本地磁盤路徑
  • gpgcheck:是否開啓gpg校驗
    • 0:關閉
    • 1:開啓
  • gpgkey:指定校驗文件URL
  • enabled:是否啓用該配置
    • 0:關閉
    • 1:開啓
  • failovermethode:對應倉庫出現故障時如何挑選
    • roundrobin:默認選項,隨機挑選
    • priority:按順序挑選

2. 掛載光盤鏡像

由於系統鏡像中包含了大部分常用的軟件包,所以在離線情況下一般都是使用系統鏡像作爲yum源。使用虛擬機時可以直接進行光盤鏡像掛載,物理機時可以搭建ftp服務器或者將光盤鏡像文件燒錄至U盤後掛載,亦或是將其中的內容全部拷貝至系統某一個路徑下。

光盤鏡像掛載後,會在/dev下被識別爲cdrom,使用如下命令進行掛載:

mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom

3. 修改配置文件

  • 使默認的Base配置失效,否則在無網絡連接的情況下會出現找不到服務器的錯誤
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
  • 以Media文件爲模板,將baseurl指定爲光盤掛載路徑,完整配置內容如下(CentOS-Media.repo):

在這裏插入圖片描述

[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom/
gpgcheck=0
enabled=1

如果gpgcheck指定爲1,則需要正確指定gpgkey的值爲校驗文件所在路徑,如:/mnt/cdrom/RPM-GPG-KEY-CentOS-6

4. 可用驗證

yum makecache

發佈了31 篇原創文章 · 獲贊 197 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章