解決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]:代表軟體庫的名字!中括號一定要存在,裡面的名稱則可以隨意取。但是不能有兩個相同的軟體庫名稱, 否則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即可使用了。