找不到可靠的套件來源嗎?幫 CentOS 6 加入可靠的第三方的套件庫

by 3月 11, 2015 0 意見        

現在人手一支智慧型手機,大家要裝 App 的時候,只要按一下「Download」就好了,再也不用像在 PC 上安裝軟體的步驟那麼多了。

如果拿的是 iPhone、iPad 會用 App Store,JB 後會找 Cydia。
Android 可以開 Google Play,中華電信的用戶多了 Hami Apps,台灣大哥大是 Match Market,遠傳則叫 S 市集。

可是,你可知道,這種機制在 Linux 的生態圈裡運作已久嗎?!


故事的開始


從前從前,我們想要在 Linux 裡面安裝套件 (Pacage) 的步驟會是:
  1. 下載原始碼,如 *.tar、*.zip、*.tar.gz ....。
  2. 連結組態。
  3. 編譯。
  4. 安裝。
  5. 組態、編譯、安裝的過程中出現錯誤時,去找到缺少的相依套件,而且可能不只缺一個。
  6. 針對「相依套件」回到步驟 1 無限迴圈。
  7. 針對「相依套件的相依套件 」回到步驟 1 無限迴圈。

一定要推一下這篇 很可愛的安裝教學文,重點不是他在 Linux 上面安裝什麼套件,請注意整個安裝過程的講解圖片,完全畫出了手工編譯派的血淚啊 ~~~ XDDDD

後來,套件管理員 (Package Manager) 出現了,我們省了一些等待的時間,變成了:
  1. 下載已經整合完畢的套件檔案,如 *.rpm、*dpkg ...。
  2. 安裝。
  3. 安裝的過程中出現錯誤時,去找到缺少的相依套件,而且可能不只缺一個。
  4. 針對「相依套件 」回到步驟 1 無限迴圈。
  5. 針對「相依套件的相依套件 」回到步驟 1 無限迴圈。 

不過,好像沒有改善多少,這些「相依套件們」要上哪兒去找啊 ... @@
更別說,還要考慮 CPU 平台 (Platform)、版本 (Version)、發行版 (Distribution) ... 等等的要求。

最後,套件管理系統 (Package Management System) 終於來拯救我們了。
  1. 打指令開始安裝,如 yum、apt ...。

是的,就這樣 !!!
所有的前置步驟都已經由套件管理系統安排好了,我們只要保證對外網路是正常的,剩下都不用我們煩惱。

所以,不同的發行版就有由官方自己建立專屬的套件管理系統,也就是套件庫 (Repository,CentOS 翻譯成「軟體庫」),這樣子就可以保證我們在安裝套件時,不用再老是「眾裡尋他千百度,驀然回首,那人怎麼不在燈火闌珊處」。

等等,可是如果官方套件庫裡面的套件,不是我們要的版本,我們可能要的是更舊或更新的版本,那 ... 怎麼辦 ???

別怕,我們只要學花木蘭一樣,「東市買駿馬,西市買鞍韉,南市買轡頭,北市買長鞭」,從多個不同的套件庫中取得套件來安裝就可以了。


接下來,
我們以 CentOS 6.6 為例,介紹一些常用的第三方套件庫。


加入套件庫


CentOS 的套件庫設定檔的位置在 /etc/yum.repos.d/,每一個 *.repo 代表一組獨立的套件庫。

我們就來看一下 CentOS 基礎套件庫的檔案內容。

每個 repo 檔裡至少要指定一個套件庫,當然也可以把多個套件庫放在一起。
  • [] - 中括號裡的文字是自訂名稱,單純用來辨識用,但是一定要填,而且不得重覆。
  • name - 套件庫說明,可自訂。
  • mirrorlist - 可用的鏡像站台。
  • baseurl - 套件庫的網址。
  • gpgcheck - 是否檢查 GPG 金鑰。
  • gpgkey - GPG 金鑰的儲存路徑。
  • enable - 是否啟用這個套件庫。
更詳細的 rpo 檔說明,請直接參閱 Redhat Customer Portal - 6.4. Configuring Yum and Yum Repositories

在 CentOS Wiki 介紹了不少 第三方套件庫,可以從這邊選擇我們所需要的套件庫。但是,不需要加入太多的第三方套件庫到系統裡,一來只會讓更新時間變長,二來收錄的套件搞不好都差不多。

此外,在加入新的套件庫設定之後,別忘了清理一下快取資料。
sudo yum -y clean all
接著進行更新,新的套件庫才會去下載它的相關資料。
sudo yum -y update


CentOS


官方預設就會加入額外四個附加的套件庫,不需額外安裝。
  • DebugInfo - Debug 用的套件。
  • Fasttrack - 尚未被正式收錄的測試版或加強版套件。
  • Media - 讓安裝光碟變成套件庫。
  • Vault - 被 CentOS 被棄用的舊版本套件。

EPEL (Extra Packages for Enterprise Linux)

https://fedoraproject.org/wiki/EPEL

Redhat 官方提供的套件庫,屬於 Fedora Project 的一部份。

以前要用 EPEL 要自己 下載 rpm 檔 來安裝。
sudo rpm -Uvh http://mirror01.idc.hinet.net/EPEL/6/i386/epel-release-6-8.noarch.rpm

不過現在簡單的多,交給 YUM 就搞定了。
sudo yum -y install epel-release


ELRepo

http://elrepo.org/tiki/tiki-index.php

主要提供硬體支援的相關套件,例如顯示卡、音效卡、網路卡 ... 等。

先安裝他們的公鑰。
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

再安裝套件庫的 repo 檔。
sudo rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm


IUS Community Project

https://iuscommunity.org/pages/About.html

專門提供最新版的 PHP、Python、MySQL。

安裝 repo 檔。
sudo rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/i386/ius-release-1.0-13.ius.centos6.noarch.rpm

請注意,這個套件庫必須配合 EPEL 套件庫才能運作。


Nginx

http://wiki.nginx.org/Install

Nginx 是除了 Apache 外,也很多人愛用的 HTTP Server 套件。
Nginx 官方自己有提供 Repository,只要直接依照 Nginx Wiki - Install 的教學來新增 repo 檔即可。
sudo vi /etc/yum.repos.d/nginx.repo

把 $releasever 改成 6。
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1



RPMfusion

http://rpmfusion.org/

提供 Fedora Project 或 Red Hat 所不願發行的軟件。

安裝 repo 檔。
sudo yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/el/updates/6/i386/rpmfusion-free-release-6-1.noarch.rpm http://download1.rpmfusion.org/nonfree/el/updates/6/i386/rpmfusion-nonfree-release-6-1.noarch.rpm

請注意,這個套件庫必須配合 EPEL 套件庫才能運作,目前並不支援 7.x 版的 CentOS。


Les RPM de Remi

http://rpms.famillecollet.com/

提供很多最新版的套件,不過穩定度沒那麼好,服用前請小心。
安裝 repo 檔。
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

請注意,這個套件庫必須配合 EPEL 套件庫才能運作。


參考資料


圖片來源


更新紀錄

  • 2015/031/11 撰文。

Heracles Jam,江湖人稱「海公公」

IT 技術家 - 創站部落客

一個常用 Windows、慣用 macOS、愛用 Linux 的 3C 阿宅
現職 MIS / 業界講師 / 資訊顧問 / 部落客

0 意見 :

張貼留言