Linux 的yum詳解

  • 2019 年 10 月 5 日
  • 筆記

Linux 的yum詳解:

rpm包在安裝過程中經常會出現一些依賴關係,這就是yum安裝方式誕生的背景。

YUM 全稱yellowdog Update Modifier

yum最大的好處就是一站式解決軟體包的安裝,可以自動安裝所需依賴環境。

yum的配置文件:

/etc/yum.conf                              # 為所有倉庫提供公共配置

/etc/yum.repos.d/*.repo      # 為倉庫的指向提供配置

yum快取地址:

/var/cache/yum/

yum安裝卸載的記錄文件:

/var/log/yum.log

1.yum源的配置

默認系統安裝好後,在/etc/yum.repo.d/目錄下有幾個CentOS-Base開頭的幾個repo文件。

yum源可以分為2種:網路源和本地源。

網路源的好處是軟體包更新較快,但是容易受網路頻寬的影響。

本地源用的是已經下載好的軟體包,不用受網路影響,但包更新可能不夠及時。

網路源的安裝請網上搜索相應的repo文件。

本地源的配置在下文中會詳細說明具體操作步驟。

這裡先對repo文件格式做個大體的說明:

[Media]  便於識別的ID,同一系統上的repo文件中該欄位不能重名

name=testrepo 

baseurl=http://xxxxxxx或者file:///xxx 或ftp://xxx

gpgcheck=0    # 0表示關閉gpg校驗,1表示啟用gpg校驗

enabled=1        表示啟用該repo源

gpgkey=http://xxxxxxx/RPM-GPG-KEY-CentOS-6     # 啟用gpgcheck後,需要加這條。不啟用gpgcheck的話,這條可以刪掉。

2.yum命令的用法:

從使用角度對yum命令進行分類:

  • 顯示倉庫列表

yum repolist [all|enabled|disabled]

  • 軟體包的搜索

yum list all                 # 顯示所有軟體包

yum list all|grep httpd     # 搜索所有含httpd的軟體包

yum list available              # 顯示所有可用的軟體包

yum list installed      # 顯示已經安裝的軟體包

yum list updates      # 顯示有更新的軟體包

yum search httpd    # 列出所有包名或者summary內容中包含httpd的包

  • 軟體包的安裝

yum install httpd      # 安裝httpd軟體包及相關依賴包

yum reinstall httpd  # 重新安裝軟體包

  • 軟體包的卸載

yum remove httpd            # 卸載軟體包和依賴環境

yum erase httpd              # 卸載軟體包和依賴環境

  • 軟體包的升級、降級

yum update httpd    #更新httpd軟體包

yum update      # 全部更新

yum downgrade package         # package降級安裝

  • 軟體包的資訊查看

yum info httpd         # 查看httpd軟體包資訊

yum groupinfo group1     # 顯示程式組group1資訊

  • 查看指定包的依賴關係

yum deplist httpd              # 查看httpd依賴哪些包

  • 查看yum事物歷史

history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

  • 安裝及升級本地程式包:

yum localinstall rpmfile1 [rpmfile2] [...]                     # 本地安裝軟體包

yum localupdate rpmfile1 [rpmfile2] [...]                   # 本地升級軟體包

  • 包組的管理命令

yum groupinstall group1…

yum groupupdate group1 ...

yum grouplist          # 列出所有的包租

yum groupremove group1                 # 移除某個包組

yum groupinfo group1     # 顯示某個包組的資訊

  • 其它命令

yum check-update            # 檢查可用的升級

yum clean all             # 清理yum所有的快取

yum make cache      # 建立yum快取

3.yum的命令行選項

--nogpgcheck:禁止進行gpg check;

-y: 自動回答為「yes」;

-q:靜默模式;

--disablerepo=repoidglob:臨時禁用此處指定的repo;

--enablerepo=repoidglob:臨時啟用此處指定的repo;

--noplugins:禁用所有插件;

4.yum倉庫的手動創建

為了下面實驗結果的直觀起見,我先將/etc/yum.repo.d/文件夾下原有的內容都重命名為xxx.repo.bak

方法1:直接掛載光碟構建yum源倉庫

mount /dev/cdrom /media

在/etc/yum.repos.d/目錄下,建立local.repo文件:

[local]

name=local source

baseurl=file:///media

enabled=1

gpgcheck=1

gpgkey=/media/RPM-GPG-KEY-CentOS-6

保存並退出。

yum clean all

yum install xxx          # 安裝個軟體測試下yum源能否正常工作。

方法2:本地網路源倉庫

http://172.16.249.118是區域網的一台伺服器,上面做了yum源。【如下圖】

在/etc/yum.repos.d/目錄下,建立http.repo文件:

[httpd]

name=httpd source

baseurl=http://172.16.249.118                                                                              

enabled=1

gpgcheck=1

gpgkey=http://172.16.249.118/RPM-GPG-KEY-CentOS-6

方法3:createrepo命令創建repo源文件,再掛載

yum倉庫的建立需要用到createrepo程式。

假設在/tmp/demo下有一些軟體包,需要創建包倉庫。

cd /tmp/demo

create -o ../ ./           #注釋:-o 指定生成的repo的路徑為上層目錄, ./ 是表示將當前目錄的文件創建yum倉庫。

在/etc/yum.repos.d/目錄下,建立repo文件:

test.repo

[local]

name=test.repo

baseurl=file:///tmp

enabled=1

gpgcheck=1

yum clean all    # 清除yum快取

yum repolist     # 查看當前有哪些repo文件

已經可以找到剛才新建的yum源了。

也可以yum install 安裝個軟體測試下是否yum源可以正常工作。

Tags: