CentOS7 yum源修改為阿里,配置阿里epel源

哈哈哈hh發表於2022-02-11

映象下載、域名解析、時間同步請點選  阿里巴巴開源映象站

一、概念/區分:

yum源

什麼是yum源:

yum是一個在CentOS、RedHat和Fedora作業系統中使用的Shell前端軟體包管理器。yum主要管理基於rpm的軟體包,Centos先將釋出的軟體放置到YUM伺服器內,然後分析這些軟體的依賴屬性問題,將軟體內的記錄資訊寫下來(header)。然後再將這些資訊分析後記錄成軟體相關性的清單列表。這些列表資料與軟體所在的位置可以稱為倉庫(repository)。當客戶端有軟體安裝的需求時,客戶端主機會向網路上面的YUM伺服器的倉庫網址上下載清單,然後透過清單列表的資料與本機RPM資料庫已存在的軟體資料相比較,就可以安裝所有需要的具有依賴屬性的軟體了。

yum的基本工作流程

伺服器端:
在伺服器上面存放了所有的RPM軟體包,然後以相關的功能去分析每個RPM檔案的依賴性關係,將這些資料記錄成檔案存放在伺服器的某特定目錄內。

客戶端:
如果需要安裝某個軟體時,先下載伺服器上面記錄的依賴性關係檔案(可透過WWW或FTP方式),透過對伺服器端下載的紀錄資料進行分析,然後取得所有相關的軟體,一次全部下載下來進行安裝。

yum客戶端的配置檔案:

repo檔案是CentOS、RedHat和Fedora作業系統中yum源(軟體倉庫)的配置檔案,通常一個repo檔案定義了一個或者多個軟體源。

yum 的客戶端配置檔案分為兩部分main 和repository:

main:定義了全域性配置選項,整個yum 配置檔案應該只有一個main,常位於/etc/yum.conf ,這個檔案為所有倉庫提供公共配置,包括yum下載的RPM包的快取目錄,日誌所在位置,是否允許更新不同版本的RPM包等等。

repository:定義了每個源/伺服器的具體配置,可以有一到多個。常位於/etc/yum.repo.d 目錄下的各檔案中,這個檔案為倉庫的指向提供配置。

yum 的配置方式也分兩種:

直接配置/etc目錄下的yum.conf檔案,增加repository片段
在/etc/yum.repos.d目錄下增加.repo檔案

/etc/yum.conf檔案詳解:

[main]
cachedir=/var/cache/yum  # cachedir:yum快取的目錄,yum在此儲存下載的rpm包和資料庫,一般是/var/cache/yum
debuglevel=2   # debuglevel:除錯級別,0──10,預設是2 貌似只記錄安裝和刪除記錄
logfile=/var/log/yum.log  # 日誌路
pkgpolicy=newest  # pkgpolicy: 包的策略。一共有兩個選項,newest和last,這個作用是如果你設定了多個repository,而同一軟體在不同的repository中同時存 在,yum應該安裝哪一個,如果是newest,則yum會安裝最新的那個版本。如果是last,則yum會將伺服器id以字母表排序,並選擇最後的那個 伺服器上的軟體安裝。一般都是選newest。
distroverpkg=centos-release  # 指定一個軟體包,yum會根據這個包判斷你的發行版本,預設是redhat-release,也可以是安裝的任何針對自己發行版的rpm包。
tolerant=1  # tolerent,也有1和0兩個選項,表示yum是否容忍命令列發生與軟體包有關的錯誤,比如你要安裝1,2,3三個包,而其中3此前已經安裝了,如果你設為1,則yum不會出現錯誤資訊。預設是0。
exactarch=1  # exactarch,有兩個選項1和0,代表是否只升級和你安裝軟體包cpu體系一致的包,如果設為1,則如你安裝了一個i386的rpm,則yum不會用1686的包來升級。
retries=20 # retries,網路連線發生錯誤後的重試次數,如果設為0,則會無限重試。
obsoletes=1 # 這是一個update的引數,具體請參閱yum(8),簡單的說就是相當於upgrade,允許更新陳舊的RPM包
gpgcheck=1 # gpgchkeck= 有1和0兩個選擇,分別代表是否進行gpg校驗,以確定rpm 包的來源是有效和安全的,如果沒有這一項,預設是檢查的。
exclude=xxx  #exclude 排除某些軟體在升級名單之外,可以用萬用字元,列表中各個專案要用空格隔開,這個對於安裝了諸如美化包,中文補丁的朋友特別有用。
keepcache=[1 or 0]  #設定 keepcache=1,yum 在成功安裝軟體包之後保留快取的標頭檔案 (headers) 和軟體包。預設值為 keepcache=0 不儲存
reposdir=[包含 .repo 檔案的目錄的絕對路徑]  # 該選項使用者指定 .repo 檔案的絕對路徑。.repo 檔案包含軟體倉庫的資訊 (作用與 /etc/yum.conf 檔案中的 [repository] 片段相同)。

repo檔案詳解:

我們以Centos-Base.repo倉庫基礎配置檔案為例
一個標準的centos的repo檔案內容如下:

[base]

name=CentOS-$releasever - Base

mirrorlist= KaTeX parse error: Expected 'EOF', got '&' at position 11: releasever&̲arch=basearch&repo=os

#baseurl= releasever/os/ r e l e a s e v e r / o s /basearch/

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

各個選項說明如下:

[base]:代表倉庫的名字,中括號一定要存在,裡面的名稱可以隨意,但是不能有兩個相同的容器名稱。

name:說明一下倉庫的意義。

mirrorlist:這個是倉庫的映象站點列表。一般情況下預設是使用此選項。

baseurl:這個最重要,因為後面接的就是倉庫的實際地址。mirrorlist是由yum程式自行去找映象站點,baseurl則是指定固定的一個倉庫網址。一個repo檔案可以定義多個軟體源。

enable=1:就是讓這個容器啟動,如果不想啟動可以使用enable=0.

gpgcheck=1:指定是否需要查閱RPM檔案內的數字證照。

gpgkey:就是數字證照的公鑰檔案所在的位置。

在Centos-Base.repo中還定義的其它的名稱的倉庫,如:[updates]、[extras]、[centosplus]等等,這些倉庫都為YUM伺服器額外附加或者是升級是用到的軟體倉庫,分別指向不同的路徑軟體倉庫。

epel源

EPEL源是什麼:

EPEL (Extra Packages for Enterprise Linux)是基於Fedora的一個專案,為“紅帽系”的作業系統提供額外的軟體包,適用於RHEL、CentOS和Scientific Linux。說白了,有些元件yum源沒有,epel裡面有

如何獲取 EPEL 的軟體包:

EPEL 包含一個叫做 ‘epel-release’ 的包,其中包含了用於軟體包簽名的 gpg 金鑰和軟體源的資訊。安裝這個包到您的企業版 Linux 上之後,您將可以透過使用類似於 yum 的工具來安裝軟體包和它們的依賴。在預設情況下,EPEL 倉庫的穩定版本是開啟的。除了 epel-release 源,還有一個叫做 ‘epel-testing’ 倉庫 包含尚未被視作穩定的軟體,請自行斟酌開啟的風險。 CentOS 使用者可以直接透過 yum install epel-release 安裝並啟用 EPEL 源。

二、部署

部署阿里yum源

1.備份本地yum源

[root@75-124 yum.repos.d]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak

2.獲取阿里yum源配置檔案

[root@75-124 yum.repos.d]#  wget -O /etc/yum.repos.d/CentOS-Base.repo 

部署阿里epel(RHEL 7)源

兩種方案:

一、yum安裝

1.安裝 epel 配置包

[root@75-124 yum.repos.d]# yum install -y 

2.將 repo 配置中的地址替換為阿里雲映象站地址

sed -i 's|^#baseurl=|baseurl=|' /etc/yum.repos.d/epel*
sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*

多了兩個檔案:epel.repo 和epel-testing.repo

二、wget下載直接用

[root@75-124 yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo 

3.兩個都要更新yum快取

[root@75-124 yum.repos.d]# yum clean all   
[root@75-124 yum.repos.d]# yum makecache

講解:

yum clean all:清除YUM快取,清除所有已下載的包檔案。yum 會把下載的軟體包和header儲存在cache中,而不會自動刪除。並且如果覺得它們佔用了磁碟空間,可以使用yum clean指令進行清除,更精確的用法是yum clean headers清除header,yum clean packages清除下載的rpm包,yum clean all 全部清除

yum makecache:就是把伺服器的包資訊下載到本地電腦快取起來,yum安裝的時候,會先從本地快取中呼叫,其實即使沒有yum makecache,yum檢測本地無包,會從yum拉取,所以可執行可不執行,不過最好還是再執行一下yum makecache命令。其實即使沒有yum makecache,如果yum安裝的時候會將安裝包進行快取,不過最好還是再執行一下yum makecache命令

4.(可不執行) yum源更新命令

[root@75-124 yum.repos.d]# yum update -y(升級所有包同時也升級軟體和系統核心)

講解

其實更推薦用yum upgrade取代yum update,yum update只更新系統中已有的軟體包,不會更新核心軟體包(kernel-這個包),yum upgrade是更徹底的update,會分析包的廢棄關係,可以跨小版本升級(比如從centos 7.1升級到centos 7.4),除了做了yum update完全相同的事之外,還會更新kernel-的包,也會解除安裝掉已經廢棄的包。

新部署系統需要yum update/upgrade是因為yum不會給你解決依賴衝突(但是apt會)。所以yum update 是為了解決跟換yum源之後,rpm包之間的依賴關係,以免後面yum 安裝某些服務報錯。

因為拿到的伺服器都是軟體包版本比較低的作業系統,安裝上層應用的時候可能會告訴你依賴不能滿足,此時你需要用yum update/upgrade更新下系統的軟體包,以滿足安裝依賴

舉個例子,你的系統中已經安裝了kernel-2.6.32.500,但是你要安裝的某個軟體包依賴於kernel-2.6.32.600,此時yum會報錯退出,告訴你依賴不滿足,並不會升級kernel包(只是舉個例子而已,實際上幾乎沒有軟體包直接依賴於kernel包),所以你只能yum update/upgrade一次,把系統中所有的軟體包全部更新,這樣滿足新部署的軟體包的依賴。

在debian/ubuntu的系統中,apt會對這種情況自動處理,會自動升級依賴的軟體包。

換句話來說,對於新部署的伺服器,也是推薦upgrade全部的軟體包,已獲得最新的安全補丁。即使對於已經上線的伺服器,也是推薦定期打安全漏洞補丁,減少漏洞帶來的侵害。

5.檢視當前yum源

[root@75-124 yum.repos.d]# yum repolist

file

原文連結:https://blog.csdn.net/Jerry00713/article/details/119788967


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70003733/viewspace-2855275/,如需轉載,請註明出處,否則將追究法律責任。

相關文章