天天看點

解決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是怎麼通過這個配置源檔案進行工作的。

解決Linux國内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
解決Linux國内yum源不能用的問題
2. 進入最新版本号目錄,找到os目錄,并依次進入其子目錄,直到可以看到repodata/該目錄為止
解決Linux國内yum源不能用的問題
3. 複制該頁面位址,加入[base]子產品中的baseurl中:
解決Linux國内yum源不能用的問題
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
解決Linux國内yum源不能用的問題
6. 至此,就可以愉快的使用yum來安裝軟體了
解決Linux國内yum源不能用的問題
解決Linux國内yum源不能用的問題

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

繼續閱讀