Linux yum源搭建及設定(新手必看)

2020-07-16 10:04:34
RPM 包的安裝雖然很方便和快捷,但是依賴性實在是很麻煩,尤其是庫檔案依賴,還要去 rpmfind 網站査找庫檔案到底屬於哪個 RPM 包,從而導致 RPM 包的安裝非常煩瑣。那麼,有沒有可以自動解決依賴性、自動安裝的方法呢?

答案是肯定的,yum 線上管理就可以自動處理 RPM 包的依賴性問題,從而大大簡化 RPM 包的安裝過程。但需要注意的是,首先,yum 安裝的還是 RPM 包,其次,yum 安裝是需要有可用的 yum 伺服器存在的,當然這個 yum 伺服器可以在網上,也可以使用光碟在本地搭建。

yum 可以方便地進行 RPM 包的安裝、升級、査詢和解除安裝,而且可以自動解決依賴性問題,非常方便和快捷。但是,一定要注意 yum 的解除安裝功能。yum 在解除安裝軟體的同時會解除安裝這個軟體的依賴包,但是如果解除安裝的依賴包是系統的必備軟體包,就有可能導致系統崩潰。除非你確實知道 yum 在自動解除安裝時會解除安裝哪些軟體包,否則最好不要執行 yum 解除安裝。

yum源搭建

yum 源既可以使用網路 yum 源,也可以使用本地光碟作為 yum 源。要使用網路 yum 源,你的主機必須是正常聯網的。

當然,要使用 yum 進行 RPM 包安裝,那麼必須安裝 yum 軟體。檢視命令如下:

[[email protected] ~]# rpm -qa | grep yum
yum-metadata-parser-1.1.2-16.el6.i686
yum-3.2.29-30.el6.centos.noarch
yum-utils-1.1.30-14.el6.noarch
yum-plugin-fastestmirror-1.1.30-14.el6.noarch
yum-plugin-security-1.1.30-14.el6.noarch

如果沒有安裝,則需要手工使用 RPM 包方式安裝。

網路yum源伺服器搭建

在主機網路正常的情況下,CentOS 的 yum 是可以直接使用的,不過我們需要了解一下 yum 源組態檔的內容。

yum 源組態檔儲存在 /etc/yum.repos.d/ 目錄中,檔案的擴充套件名一定是"*.repo"。也就是說,yum 源設定 檔案只要擴充套件名是"*.repo"就會生效。

[[email protected] ~]# ls /etc/yum.repos.d/
CentOS-Base.repo
CentOS-Media.repo
CentOS-Debuginfo.repo.bak、
CentOS-Vault.repo

這個目錄中有 4 個 yum 源組態檔,預設情況下 CentOS-Base.repo 檔案生效。我們開啟這個檔案看看,命令如下:

[[email protected] yum.repos.d]# vim /etc/yum.repos.d/ CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/? release= $releasever&arch=$basearch&repo=os
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
…省略部分輸出…

在 CentOS-Base.repo 檔案中有 5 個 yum 源容器,這裡只列出了 base 容器,其他容器和 base 容器類似。

我們解釋一下 base 這個容器:
  • [base]:容器名稱,一定要放在[]中。
  • name:容器說明,可以自己隨便寫。
  • mirrorlist:映象站點,這個可以注釋掉。
  • baseurl:我們的 yum 源伺服器的地址。預設是 CentOS 官方的 yum 源伺服器,是可以使用的。如果你覺得慢,則可以改成你喜歡的 yum 源地址。
  • enabled:此容器是否生效,如果不寫或寫成 enabled 則表示此容器生效,寫成 enable=0 則表示此容器不生效。
  • gpgcheck:如果為 1 則表示 RPM 的數位憑證生效;如果為 0 則表示 RPM 的數位憑證不生效。
  • gpgkey:數位憑證的公鑰檔案儲存位置。不用修改。

yum 源組態檔預設不需要進行任何修改就可以使用,只要網路可用就行。

以本地光碟作為 yum 源伺服器

如果 Linux 主機不能聯網,yum 就不能使用嗎? yum 已經考慮到這個問題,所以在 /etc/yum.repos.d/ 目錄下 還有一個 CentOS-Media.repo 檔案,這個檔案就是以本地光碟作為 yum 源伺服器的模板檔案,只需要進行簡單的修改即可。

1) 放入 CentOS 安裝光碟,並掛載光碟到指定位置。命令如下:

[[email protected] ~]# mkdir /mnt/cdrom
#建立cdrom目錄,作為光碟的掛載點
[[email protected] ~]# mount /dev/cdrom /mnt/cdrom/
mount: block device/dev/srO is write-protected, mounting read-only
#掛載光碟到/mnt/cdrom目錄下


2) 修改其他幾個 yum 源組態檔的擴充套件名,讓它們失效,因為只有擴充套件名是"*.repo"的檔案才能作為 yum 源組態檔。當然也可以刪除其他幾個 yum 源組態檔,但是如果刪除了,當你又想用網路作為 yum 源時,就沒有了參考檔案,所以最好還是修改擴充套件名。 命令如下:

[[email protected] ~]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]# mv CentOS-Base, repo CentOS-Base.repo.bak
[[email protected] yum.repos.d]#mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
[[email protected] yum.repos.d]# mv CentOS-Vault.repo CentOS-Vault.repo.bak


3) 修改光碟 yum 源組態檔 CentOS-Media.repo,參照以下方修改:

[[email protected] yum.repos.d]# vim CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom
#地址為你自己的光碟掛載地址
#file:///media/cdrom/
#file:///media/cdrecorder/
#注釋這兩個的不存在地址
gpgcheck=1
enabled=1
#把enabled=0改為enabled=1, 讓這個yum源組態檔生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

設定完成,現在可以感受一下yum的便捷了。