CentOS 上最佳的第三方倉庫

編程語言 CentOS 軟件 紅帽公司 Linux技術 2017-05-17

CentOS 上最佳的第三方倉庫

從 Software Collections、EPEL 和 Remi 獲得可靠的 CentOS 新版軟件。 -- Carla Schroder

本文導航
  • -安裝 Software Collections …… 30%

  • -列出可用軟件包 …… 54%

  • -EPEL …… 75%

  • -Remi Collet …… 85%

編譯自: https://www.linux.com/learn/intro-to-linux/2017/2/best-third-party-repositories-centos

作者: Carla Schroder

譯者: Dotcra

從 Software Collections、EPEL 和 Remi 獲得可靠的 CentOS 新版軟件。

在 Red Hat 企業 Linux(RHEL) 上,提供那些早已老掉牙的軟件已經是企業級軟件廠商的傳統了。這倒不是因為他們懶,而確實是用戶需要。很多公司像看待傢俱一樣看待軟件:我買一張桌子,能用一輩子,軟件不應該也這樣嗎?

CentOS 作為 RHEL 的複製品有著同樣的遭遇。雖然 Red Hat 還在為這些被廠商拋棄的過時軟件提供支持、修補安全漏洞等,但如果你的應用依賴新版軟件,你就得想辦法了。 我在這個問題上不止一次碰壁。 LAMP 組合裡任一個組件都需要其它所有組件能與其兼容,這有時就顯得很麻煩。 比如說去年我就被 RHEL/CentOS 折騰得夠嗆。REHL/CentOS 第 6 版最高支持 PHP 5.3 ,第 7 版支持到 PHP 5.4 。而 PHP 5.3 早在 2014 年 8 月就到達 EOL(End Of Life) ,不再被廠商支持了, PHP 5.4 的 EOL 在 2015 年 9 月, 5.5 則是 2016 年 7 月。 有太多古老的軟件版本,包括 MySQL、Python 等,它們應該像木乃伊一樣被展示在博物館裡,但它們卻活在你的系統上。

那麼,可憐的管理員們該怎麼辦呢?如果你跑著 RHEL/CentOS ,那應該先試試 Software Collections[1],因為這是 Red Hat 唯一支持的新軟件包源。 Software Collections[2] 為 CentOS 設立了專門的倉庫,安裝和管理都和其它第三方倉庫一樣。但如果你用的是 RHEL 的,情況就有點不同了,具體請參考 RHEL 的解決方法[3]。Software Collections[4] 同樣支持 Fedora 和 Scientific Linux 。

安裝 Software Collections

在 CentOS 6/7 上安裝 Software Collections 的命令如下:

$ sudo yum install centos-release-scl

centos-release-scl-rh 可能作為依賴包被同時安裝。

然後就可以像平常一樣搜索、安裝軟件包了:

$ yum search php7

[...]

rh-php70.x86_64 : Package that installs PHP 7.0

[...]

$ sudo yum install rh-php70

最後一件事就是啟用你的新軟件包:

$ scl enable rh-php70 bash

$ php -v

PHP 7.0.10

此命令會開啟一個新的 bash 並配置好環境變量以便運行新軟件包。 如果需要的話,你還得安裝對應的擴展包,比如對於 Python 、PHP、MySQL 等軟件包,有些配置文件也需要修改以指向新版軟件(比如 Apache )。

這些 SCL 軟件包在重啟後不會激活。SCL 的設計初衷就是在不影響原有配置的前提下,讓新舊軟件能一起運行。不過你可以通過 ~/.bashrc 加載 SCL 提供的 enable 腳本來實現自動啟用。 SCL 的所有軟件包都安裝在 /opt 下, 以我們的 PHP 7 為例,在 ~/.bashrc 里加入一行:

source /opt/rh/rh-php70/enable

以後相應的軟件包就能在重啟後自動啟用了。有新軟件保駕護航,你終於可以專注於自己的業務了。

列出可用軟件包

那麼,到底 Software Collections 裡都是些什麼呢? centos-release-scl 裡有一些由社區維護的額外的軟件包。除了在 CentOS Wiki[5] 查看軟件包列表外,你還可以使用 Yum 。我們先來看看安裝了哪些倉庫:

$ yum repolist

[...]

repo id repo name

base/7/x86_64 CentOS-7 - Base

centos-sclo-rh/x86_64 CentOS-7 - SCLo rh

centos-sclo-sclo/x86_64 CentOS-7 - SCLo sclo

extras/7/x86_64 CentOS-7 - Extras

updates/7/x86_64 CentOS-7 - Updates

Yum 沒有專門用來打印某一個倉庫中所有軟件包的命令,所以你得這樣來: (LCTT 譯註:實際上有,yum repo-pkgs REPO list,需要 root 權限,dnf 同)

$ yum --disablerepo "*" --enablerepo centos-sclo-rh \

list available | less

--disablerepo 與 --enablerepo 選項的用法沒有詳細的文檔,這裡簡單說下。 實際上在這個命令裡你並沒有禁用或啟用什麼東西,而只是將你的搜索範圍限制在某一個倉庫內。 此命令會打印出一個很長的列表,所以我們用管道傳遞給 less 輸出。

EPEL

強大的 Fedora 社區為 Feora 及所有 RHEL 系的發行版維護著 EPEL:Extra Packages for Enterprise Linux[6] 。 裡面包含一些最新軟件包以及一些未被髮行版收納的軟件包。安裝 EPEL 裡的軟件就不用麻煩 enable 腳本了,直接像平常一樣用。你還可以用 --disablerepo 和 --enablerepo 選項指定從 EPEL 裡安裝軟件包:

$ sudo yum --disablerepo "*" --enablerepo epel install [package]

Remi Collet

Remi Collet 在 Remi 的 RPM 倉庫[7] 裡維護著大量更新的和額外的軟件包。需要先安裝 EPEL ,因為 Remi 倉庫依賴它。

CentOS wiki 上有較完整的倉庫列表:更多的第三方倉庫[8] ,用哪些,不用哪些,裡面都有建議。


via: https://www.linux.com/learn/intro-to-linux/2017/2/best-third-party-repositories-centos

作者:CARLA SCHRODER[9] 譯者:Dotcra 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

  • [1]: Software Collections - https://www.softwarecollections.org/en/

  • [2]: Software Collections - https://www.softwarecollections.org/en/

  • [3]: RHEL 的解決方法 - https://access.redhat.com/solutions/472793

  • [4]: Software Collections - https://www.softwarecollections.org/en/

  • [5]: CentOS Wiki - https://wiki.centos.org/SpecialInterestGroup/SCLo/CollectionsList

  • [6]: EPEL:Extra Packages for Enterprise Linux - https://fedoraproject.org/wiki/EPEL

  • [7]: Remi 的 RPM 倉庫 - http://rpms.remirepo.net/

  • [8]: 更多的第三方倉庫 - https://wiki.centos.org/AdditionalResources/Repositories

  • [9]: CARLA SCHRODER - https://www.linux.com/users/cschroder

相關推薦

推薦中...