現在人手一支智慧型手機,大家要裝 App 的時候,只要按一下「Download」就好了,再也不用像在 PC 上安裝軟體的步驟那麼多了。
如果拿的是 iPhone、iPad 會用 App Store,JB 後會找 Cydia。
Android 可以開 Google Play,中華電信的用戶多了 Hami Apps,台灣大哥大是 Match Market,遠傳則叫 S 市集。
可是,你可知道,這種機制在 Linux 的生態圈裡運作已久嗎?!
故事的開始
從前從前,我們想要在 Linux 裡面安裝套件 (Pacage) 的步驟會是:
- 下載原始碼,如 *.tar、*.zip、*.tar.gz ....。
- 連結組態。
- 編譯。
- 安裝。
- 組態、編譯、安裝的過程中出現錯誤時,去找到缺少的相依套件,而且可能不只缺一個。
- 針對「相依套件」回到步驟 1 無限迴圈。
- 針對「相依套件的相依套件 」回到步驟 1 無限迴圈。
一定要推一下這篇 很可愛的安裝教學文,重點不是他在 Linux 上面安裝什麼套件,請注意整個安裝過程的講解圖片,完全畫出了手工編譯派的血淚啊 ~~~ XDDDD
後來,套件管理員 (Package Manager) 出現了,我們省了一些等待的時間,變成了:
- 下載已經整合完畢的套件檔案,如 *.rpm、*dpkg ...。
- 安裝。
- 安裝的過程中出現錯誤時,去找到缺少的相依套件,而且可能不只缺一個。
- 針對「相依套件 」回到步驟 1 無限迴圈。
- 針對「相依套件的相依套件 」回到步驟 1 無限迴圈。
不過,好像沒有改善多少,這些「相依套件們」要上哪兒去找啊 ... @@
更別說,還要考慮 CPU 平台 (Platform)、版本 (Version)、發行版 (Distribution) ... 等等的要求。
最後,套件管理系統 (Package Management System) 終於來拯救我們了。
- 打指令開始安裝,如 yum、apt ...。
是的,就這樣 !!!
所有的前置步驟都已經由套件管理系統安排好了,我們只要保證對外網路是正常的,剩下都不用我們煩惱。
所以,不同的發行版就有由官方自己建立專屬的套件管理系統,也就是套件庫 (Repository,CentOS 翻譯成「軟體庫」),這樣子就可以保證我們在安裝套件時,不用再老是「眾裡尋他千百度,驀然回首,那人怎麼不在燈火闌珊處」。
等等,可是如果官方套件庫裡面的套件,不是我們要的版本,我們可能要的是更舊或更新的版本,那 ... 怎麼辦 ???
別怕,我們只要學花木蘭一樣,「東市買駿馬,西市買鞍韉,南市買轡頭,北市買長鞭」,從多個不同的套件庫中取得套件來安裝就可以了。
接下來,
我們以 CentOS 6.6 為例,介紹一些常用的第三方套件庫。
加入套件庫
CentOS 的套件庫設定檔的位置在 /etc/yum.repos.d/,每一個 *.repo 代表一組獨立的套件庫。
我們就來看一下 CentOS 基礎套件庫的檔案內容。
每個 repo 檔裡至少要指定一個套件庫,當然也可以把多個套件庫放在一起。
- [] - 中括號裡的文字是自訂名稱,單純用來辨識用,但是一定要填,而且不得重覆。
- name - 套件庫說明,可自訂。
- mirrorlist - 可用的鏡像站台。
- baseurl - 套件庫的網址。
- gpgcheck - 是否檢查 GPG 金鑰。
- gpgkey - GPG 金鑰的儲存路徑。
- enable - 是否啟用這個套件庫。
在 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/EPELRedhat 官方提供的套件庫,屬於 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/InstallNginx 是除了 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 套件庫才能運作。
參考資料
- CentOS Wiki - 可供 CentOS 使用的軟件庫
- Nginx Wiki - Official Red Hat/CentOS packages
- EPEL - How can I use these extra packages?
- ELRepo - Get started
- IUS Community Project - IUS Client Usage Guide
- Les RPM de Remi Repository - English : Repository Configuration
圖片來源
- http://www.davidrevoy.com/article193/guide-building-krita-on-linux-for-cats
- http://www.geekssharingspace.org/2012/04/rpm-package-to-debian-package-how-to.html
- https://en.opensuse.org/Package_management
更新紀錄
- 2015/031/11 撰文。
0 意見 :
張貼留言