当前位置: 首页 > 科技观察

更好的CentOS第三方存储库

时间:2023-03-20 12:02:19 科技观察

从SoftwareCollections、EPEL和Remi获取可靠的CentOS软件新版本。在RedHatEnterpriseLinux(RHEL)上,企业软件供应商的传统是提供那些旧软件。这不是因为他们懒惰,而是因为用户确实需要它。很多公司对待软件就像对待家具一样:我买了一张桌子,它让我用了一辈子,软件不应该这样做吗?作为RHEL克隆的CentOS也有同样的经历。虽然RedHat还在为这些被厂商抛弃的过时软件提供支持、修补安全漏洞等,但是如果你的应用程序依赖更新版本的软件,你就得想办法了。在这个问题上我不止一次碰壁。LAMP堆栈的任何一个组件都需要所有其他组件与其兼容,这有时会很麻烦。比如我去年被RHEL/CentOS折腾。REHL/CentOS***版本6支持PHP5.3,版本7最高支持PHP5.4。PHP5.3早在2014年8月就到达了EOL(EndOfLife),不再得到制造商的支持。PHP5.4的EOL是在2015年9月,5.5是在2016年7月。有很多古老的软件版本,包括MySQL,Python等,它们应该像博物馆中的木乃伊一样展示,但它们却活在你的系统中.那么可怜的管理员该怎么办呢?如果您正在运行RHEL/CentOS,您应该首先尝试软件集合,因为这是RedHat支持的唯一新包源。SoftwareCollections为CentOS建立了专用仓库,安装和管理与其他第三方仓库相同。但是如果你使用的是RHEL,情况就有点不同了,具体请参考RHEL解决方案。SoftwareCollections还支持Fedora和ScientificLinux。安装SoftwareCollections在CentOS6/7上安装SoftwareCollections命令如下:$sudoyuinstallcentos-release-sclcentos-release-scl-rh可以同时作为依赖包安装。然后你可以像往常一样搜索和安装软件包:$yumsearchphp7[…]rh-php70.x86_64:PackagethatinstallsPHP7.0[…]$sudoyuinstallrh-php70***一件事是启用你的新软件软件包:$sclenablerh-php70bash$php-vPHP7.0.10此命令将打开一个新的bash并配置环境变量以运行新包。如果需要,还得安装相应的扩展包,比如对于Python、PHP、MySQL等软件包,还需要修改一些配置文件指向新版本的软件(比如Apache)。这些SCL包在重启后不会激活。SCL旨在让新旧软件在不影响原始配置的情况下一起运行。但是,您可以通过~/.bashrc加载SCL提供的启用脚本来自动启用它。所有SCL软件包都安装在/opt下。以我们的PHP7为例,在~/.自动启用。有了新软件,您终于可以专注于您的业务。列出可用的包那么,SoftwareCollections中到底有什么?centos-release-scl有一些由社区维护的附加组件。除了在CentOSWiki上查看软件包列表外,您还可以使用Yum。我们先来看看安装了哪些仓库:$yumrepolist[...]repoidreponamebase/7/x86_64CentOS-7-Basecentos-sclo-rh/x86_64CentOS-7-SCLorhcentos-sclo-sclo/x86_64CentOS-7-SCLoscloextras/7/x86_64CentOS-7-Extrasupdates/7/x86_64CentOS-7-Updatesyum没有专门的命令打印某个仓库的所有包,所以你必须这样做:(LCTT译注:实际上,yumrepo-pkgsREPO列表,需要root权限,同dnf)$yum--disablerepo"*"--enablerepocentos-sclo-rh\listavailable|less--disablerepo和--enablerepo选项没有详细说明,这里简单介绍一下。实际上,您并没有在该命令中禁用或启用任何内容,而只是将您的搜索范围限制在某个仓库内。此命令打印一长串,因此我们将输出通过管道传递给less。EPEL强大的Fedora社区维护着EPEL:适用于Feora和所有基于RHEL的发行版的企业Linux的额外软件包。它包含一些高级包和一些未包含在发行版中的包。在EPEL中安装软件,无需打扰启用脚本,照常使用即可。您还可以使用--disablerepo和--enablerepo选项指定从EPEL安装包:$sudoyum--disablerepo"*"--enablerepoepelinstall[package]RemiColletRemiCollet维护着大量更新的和附加的包。需要先安装EPEL,因为Remi存储库依赖于它。CentOSwiki上有比较完整的仓库列表:更多的第三方仓库,用哪个用哪个,有建议。