天天看點

Linux軟體管理 - YUM工具Linux軟體管理 - YUM工具

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軟體封包件時,效果等同于localupdate
    • update-to:可以指定将軟體更新至某一版本
  • check-update:列出所有可更新的軟體清單
Linux軟體管理 - YUM工具Linux軟體管理 - YUM工具
  • remove/erase {package1} [package2] [...]:删除指定的軟體包
  • list
    • 不寫任何參數時等同于all:列出所有可用的軟體包資訊以及已安裝的軟體包資訊
    • available:列出所有在yum源中可安裝的軟體包
    • updates:列出所有在yum中可用于更新的軟體包
    • installed:列出所有已安裝的軟體包資訊
Linux軟體管理 - YUM工具Linux軟體管理 - YUM工具
  • info:列出某一個軟體或所有軟體的詳細資訊,支援的選項與list相同
Linux軟體管理 - YUM工具Linux軟體管理 - YUM工具
  • clean
    • 不填寫參數時效果等同于clean all:将會清空所有本地緩存檔案
    • packages:清空已下載下傳的所有軟體包,預設情況下不會自動删除
    • metadata:清空已下載下傳的元資訊緩存檔案,再次運作yum時會重新下載下傳進行緩存
    • expire-cache:清除過期的緩存,如果緩存資料仍然可用,将不會執行删除操作
    • rpmdb:清空所有緩存在本地的rpm軟體資料庫資訊
    • plugins:清空所有插件對應的緩存資料
    • all:清空上面列出的所有緩存資料
  • makecache:在本地緩存中繼資料
Linux軟體管理 - YUM工具Linux軟體管理 - YUM工具
  • search {string1} [string2] [...]:根據提供的資訊搜尋軟體包,會優先根據名稱搜尋,如果未發現會使用描述資訊和url比對
  • localinstall {rpmfile1} [rpmfile2] [...]:使用yum安裝一個rpm軟體包,會自動從可用源中搜尋安裝所需依賴軟體
  • localupdate {rpmfile1} [rpmfile2] [...]:使用yum更新一個rpm軟體包,會自動從可用源中搜尋安裝所需依賴軟體
  • reinstall {package1} [package2] [...]:重新安裝某個軟體包,以最近一次安裝的版本為準
  • deplist {package1} [package2] [...]:列出某一個軟體包相關的依賴軟體清單
Linux軟體管理 - YUM工具Linux軟體管理 - YUM工具
隻截取了部分内容,嗯,果然,rpm軟體依賴一不小心就會變成噩夢,yum,感謝有你。
  • repolist [all/enabled/disabled]
    • all:顯示所有的yum源
    • enabled:顯示所有開啟狀态的yum源
    • disabled:顯示所有關閉狀态的yum源
Linux軟體管理 - YUM工具Linux軟體管理 - YUM工具
  • check:檢查本地rpm資料庫和産品資訊是否有誤

2. 常用選項

  • -y:自動使用yes應答過程中的選項
  • -q:取消輸出内容,靜默安裝
  • -v:輸出詳細資訊
  • -R:設定最大等待時長,機關為分鐘
  • -‌-version:顯示目前yum工具版本
Linux軟體管理 - YUM工具Linux軟體管理 - 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           
Linux軟體管理 - YUM工具Linux軟體管理 - YUM工具
  • 生成緩存
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中檢視
Linux軟體管理 - YUM工具Linux軟體管理 - YUM工具
Linux軟體管理 - YUM工具Linux軟體管理 - YUM工具
  • baseurl:直接指向一個yum源位址,支援多種協定
    • http:網絡傳輸協定
    • ftp:檔案傳輸協定
    • file:檔案協定,可以指向一個本地磁盤路徑
  • gpgcheck:是否開啟gpg校驗
    • 0:關閉
    • 1:開啟
  • gpgkey:指定校驗檔案URL
  • enabled:是否啟用該配置
  • failovermethode:對應倉庫出現故障時如何挑選
    • roundrobin:預設選項,随機挑選
    • priority:按順序挑選

2. 挂載CD光牒鏡像

由于系統鏡像中包含了大部分常用的軟體包,是以在離線情況下一般都是使用系統鏡像作為yum源。使用虛拟機時可以直接進行CD光牒鏡像挂載,實體機時可以搭建ftp伺服器或者将CD光牒鏡像檔案燒錄至U盤後挂載,亦或是将其中的内容全部拷貝至系統某一個路徑下。

CD光牒鏡像挂載後,會在/dev下被識别為cdrom,使用如下指令進行挂載:

mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom           
Linux軟體管理 - YUM工具Linux軟體管理 - YUM工具

3. 修改配置檔案

  • 使預設的Base配置失效,否則在無網絡連接配接的情況下會出現找不到伺服器的錯誤
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak           
  • 以Media檔案為模闆,将baseurl指定為CD光牒挂載路徑,完整配置内容如下(CentOS-Media.repo):
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom/
gpgcheck=0
enabled=1           

4. 可用驗證

yum makecache           

繼續閱讀