前段時間購買了一個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個子產品就夠了,其他可以删掉)5. 儲存并退出,輸入yum clean all 清除本機上yum的舊資料,然後執行yum update 更新yum 6. 至此,就可以愉快的使用yum來安裝軟體了[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
總結:其實作在很多說國内yum線上源無法使用,其實就是yum配置源檔案中baseurl指定的軟體庫位址有錯,不能根據baseurl所指定的位址找到repodata目錄中的repomd.xml檔案,是以yum就不能正常工作了,是以最好的解決辦法就是到相應的國内源網站中找到相應的repodata目錄,然後複制下網址替換原來baseurl的值,然後更新yum即可使用了。