1. 程式人生 > >解決Linux國內yum源不能用的問題

解決Linux國內yum源不能用的問題

前段時間購買了一個Linux-Ubuntu作業系統 的雲伺服器,需要線上安裝一些軟體,本來想著直接用apt-get命令進行安裝,然而發現apt-get命令安裝的軟體包非常有限,很多軟體都沒有,所以只能直接使用大家公認的方便的yum來安裝,然而對於Ubuntu系統來說,yum在最開始是沒有安裝在系統上的,所以還得先通過apt-get命令先 安裝yum:

命令列輸入apt-get install yum安裝yum,這個相信大家都會了,就不再多說。

安裝好yum後發現yum並不能正常使用,原因是Ubuntu裡面使用apt-get安裝的yum中沒有配置原始檔,而yum的使用時需要配置原始檔配合使用才可以的。可以進入/etc/yum/repos.d/目錄下檢視,確實缺少配置原始檔。

因此,命令列輸入wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo 下載配置原始檔(wget的使用需要先安裝nginx,如果沒有請先輸入apt-get install nginx進行安裝),並將其複製到/etc/yum/repos.d/目錄下,至此/etc/yum/repos.d/目錄下就多了個CentOS-Base.repo檔案,接下來就是修改這個配置原始檔就可以使用yum了。在此之前有必要先了解一下yum是怎麼通過這個配置原始檔進行工作的。


首先用vi編輯器可以看到CentOS-Base.repo配置原始檔中有[base],[extras],[updates]等模組,這些模組是什麼意思呢?

拿[base]模組來說:

[base]:代表軟體庫的名字!中括號一定要存在,裡面的名稱則可以隨意取。但是不能有兩個相同的軟體庫名稱, 否則yum 會不曉得該到哪裡去找軟體庫相關軟體清單檔案。

name:只是說明一下這個軟體庫的意義而已,重要性不高!

mirrorlist=:列出這個軟體庫可以使用的對映站臺,如果不想使用,可以註解這行;

baseurl=:這個最重要,因為後面接的就是軟體庫的實際網址!mirrorlist 是由yum 程式自行去捉對映站臺, baseurl 則是指定固定的一個軟體庫網址!下載就是根據baseurl指定的路徑來下載

enable=1:就是讓這個軟體庫啟動。如果不想啟動可以使用enable=0

gpgcheck=1:指定是否需要查閱RPM 檔案內的數位簽章!

gpgkey=:就是數位簽章的公鑰檔所在位置!使用預設值即可

至此就基本瞭解了配置原始檔模組的作用了,那麼yum是怎麼通過配置原始檔進行工作的呢?首先yum會根據baseurl所指定的軟體庫網址找到一個repodata的目錄,然後通過在該目錄下的repomd.xml檔案中指定的軟體的正確地址來下載相應的軟體並安裝。所以我們就可以直接通過修改baseurl的值,讓其指定特點的國內yum源來讓yum正確工作了。

以上海交通大學yum源為例:網址為:http://ftp.sjtu.edu.cn/

1. 開啟網址,進入centos/目錄,找到最新版本號,我這裡最新版本號為:7.2.1511


2. 進入最新版本號目錄,找到os目錄,並依次進入其子目錄,直到可以看到repodata/該目錄為止


3. 複製該頁面地址,加入[base]模組中的baseurl中:


4. 重複2,3步驟,進入最新版本號目錄,分別找到updates目錄,extras目錄,並依次進入其子目錄,直到可以看到repodata/該目錄為止,分別複製相應頁面網址,替換相應模組中的baseurl,最終效果如圖:(配置原始檔只需要用到[base],[extras],[updates]這個3個模組就夠了,其他可以刪掉)

[base]
name=CentOS-$releasever - Base
baseurl=http://ftp.sjtu.edu.cn/centos/7.2.1511/os/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever - Updates
baseurl=http://ftp.sjtu.edu.cn/centos/7.2.1511/updates/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-$releasever - Extras
baseurl=http://ftp.sjtu.edu.cn/centos/7.2.1511/extras/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7


5. 儲存並退出,輸入yum clean all 清除本機上yum的舊資料,然後執行yum update 更新yum


6. 至此,就可以愉快的使用yum來安裝軟體了



總結:其實現在很多說國內yum線上源無法使用,其實就是yum配置原始檔中baseurl指定的軟體庫地址有錯,不能根據baseurl所指定的地址找到repodata目錄中的repomd.xml檔案,所以yum就不能正常工作了,所以最好的解決辦法就是到相應的國內源網站中找到相應的repodata目錄,然後複製下網址替換原來baseurl的值,然後更新yum即可使用了。