如何提高Linux安裝軟體的速度?給CentOS8配置DNF/YUM中國下載源

  • 2020 年 2 月 14 日
  • 筆記

CentOS Linux長期以來一直存在一個不和諧的問題:Python2和Python3如何共存?

在CentOS Linux 8以前,系統默認的Python版本是2.x,裝上個3.x還跟後娘養的一樣沒有什麼地位,稍有不慎不是這裡不好用就是那裡不好用。最誇張的是手動將Python2.6升級到2.7,YUM直接掛了。

如果想配置成運行命令"python"直接執行的是3.x版本,有一堆的文件需要跟著更改。一個不幸的消息是YUM是用Python2.x寫成的,而DNF是用Python3.x寫成的。這樣的話CentOS Linux 8把默認的Python版本改成了3.x,對應的軟體包管理器也就順理成章的從YUM改成了DNF。所以CentOS Linux 8的默認RPM軟體包管理工具從YUM變成了DNF。好在所有的安裝包配置文件都沒有變更,都跟當時YUM時代沒有什麼太大區別,這樣去切換到DNF不會有太大的不適應。

為什麼要說這些,因為安裝軟體的時候會用到DNF(YUM命令也存在,但只是一個指向DNF的鏈接,Tristone注)。下面的更改內容可以理解為將DNF的配置文件進行更改,從默認下載國外的軟體改為了默認下載中國伺服器上的軟體。

什麼是DNF?為什麼替換掉YUM?

DNF是Linux上的下一代包管理工具,它替換的對象是YUM。DNF使用SUSE創建和維護的libsolv進行依賴解析,而使用公共API來解決依賴關係的YUM相對更難維護。YUM的程式碼有56K行但沒有相關文檔,而DNF的程式碼行數僅有29K行而且有API文檔,所以很容易構建新的特性。雖然DNF的程式碼量少,但是DNF支援更多的擴展,而YUM只支援Python擴展。

總的來說DNF由Python3寫成,降低了記憶體佔用,提高了運行速度,加強了依賴分析能力,提高了用戶的體驗。所以代替YUM是一個必然的結果。

DNF源配置文件改為中國地址

由於系統安裝的包管理配置文件鏈接的國外的伺服器,導致我們安裝軟體、升級內核和升級軟體的時候會從國外的伺服器下載相關文件。由於眾所周知的原因,國外伺服器的網速真的不敢恭維,所以我們要把他們替換為中國的伺服器,這樣安裝和升級軟體的速度就會提高,降低維護人員在等待上所花費的時間。

因為阿里源文件裡面已經包含了AppStream、Base、centosplus、Extras和PowerTools的相關內容,所以需要把這些文件改名為bak,不讓系統執行。

cd /etc/yum.repos.d/
mv /etc/yum.repos.d/CentOS-AppStream.repo /etc/yum.repos.d/CentOS-AppStream.repo.bak
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
mv /etc/yum.repos.d/CentOS-centosplus.repo /etc/yum.repos.d/CentOS-centosplus.repo.bak
mv /etc/yum.repos.d/CentOS-Extras.repo /etc/yum.repos.d/CentOS-Extras.repo.bak
mv /etc/yum.repos.d/CentOS-PowerTools.repo /etc/yum.repos.d/CentOS-PowerTools.repo.bak

做完以上修改以後,就可以下載新的中國源文件了,推薦阿里家的。

因為默認沒有裝wget,我們可以用curl來執行以下命令:

curl -o CentOS-Base.repo http://阿里鏡像網址/repo/Centos-8.repo

如果有wget也可以執行以下命令

wget -O CentOS-Base.repo http://阿里鏡像網址/repo/Centos-8.repo

如果沒有安裝wget,運行這個命令會提示"bash: wget: 未找到命令",那就用curl的那個命令來執行好了。或者你也可以先安裝wget,很簡單,只需要下面一個命令即可(前提是在將上面的文件改為".bak"之前,如果已經改了,先改回去再執行下述命令)

dnf -y install wget

查看一下是否安裝完成,執行命令

ls -l /etc/yum.repos.d/

將會看到如下內容

再執行以下命令查看一下內容,確認是否更改成功

cat /etc/yum.repos.d/CentOS-Base.repo

如果看到如下內容,則代表升級成功了。

這樣就完成了將本地CentOS Linux 8的dnf安裝源更換為中國源。

運行以下命令生成以下快取

dnf makecache

執行以下命令升級所有的軟體包試試看速度如何:

dnf -y update

如果是習慣了yum,你也可以用這個命令"yum -y update"。如果你是網路安裝的CentOS Linux 8,系統應該不會有什麼軟體包需要升級,提示內容如下:

測試一下中國的伺服器下載速度如何

默認最小化安裝的CentOS Linux 8是沒有安裝unzip軟體的,咱們安裝一個試試速度如何。

先搜索一下系統是否包含了unzip安裝包:

dnf search unzip

運行以下命令安裝unzip:

dnf -y install unzip

幾乎是1s就安裝完了,速度飛快。

來都來了,走啥走,留個言唄~

IT大咖說 | 關於版權

由「IT大咖說(ID:itdakashuo)」原創的文章,轉載時請註明作者、出處及微信公眾號。投稿、約稿、轉載請加微信:ITDKS10(備註:投稿),茉莉小姐姐會及時與您聯繫!

感謝您對IT大咖說的熱心支援!