如何在Centos上为新软件select正确的存储库

我想安装PHP7,而在Centos上只能安装额外的软件仓库。 我看到了各种各样的(remi,ius,webtatic),论坛上的评论都是亲和的。

我不是在征求个人的意见,但是我有兴趣select一个接一个的职业理由 – 我应该考虑的标准以及我应该避免的可能的陷阱。

注意,在Red Hat / CentOS上安装最新版本的各种软件的最“官方”解决scheme是软件集合。

红帽软件集2.3版提供了php 5.6和7.0两个版本 ,由Red Hat维护,可用于由SCLo SIG维护的centos-scl版本库中的CentOS用户。

一个有趣的解决scheme比较: 在CentOS上运行更新的应用程序

对于PHP只是去与remi回购 。 它被积极维护,它的维护者为RH工作。 您甚至可以将其作为软件集合进行安装。

我是IUS核心开发人员之一。 用户多次向我反馈,他们使用IUS的原因是由Rackspace赞助,由多个Rackspace工程师维护。 原始问题(Remi和Webtatic)中提到的另一个回购是由个人维护的。 无论雇主如何,单个项目的公交系数都不是最优的。

RHSCL是Red Hat的官方解决scheme,但与IUS相比,它有一些缺点。

  • 不太频繁的更新
  • 通常生命周期较短
  • 可以说是比较混乱的用法

编辑答案:

TL; DR如果针对整个系统使用,请使用IUS。 如果定位开发或testing使用,请使用SCL。

IUS在正常系统pipe理员工作stream程之后的系统范围内安全使用:

[root@localhost ~]# which php /bin/php [root@localhost ~]# php --version PHP 5.4.16 (cli) (built: Nov 6 2016 00:29:02) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies [root@localhost ~]# yum list installed | grep -i php php.x86_64 5.4.16-42.el7 @base php-cli.x86_64 5.4.16-42.el7 @base php-common.x86_64 5.4.16-42.el7 @base [root@localhost ~]# yum info php56u ... Available Packages Name : php56u Arch : x86_64 Version : 5.6.29 Release : 1.ius.centos7 Size : 2.6 M Repo : ius/x86_64 Summary : PHP scripting language for creating dynamic web sites URL : http://www.php.net/ License : PHP and Zend and BSD Description : PHP is an HTML-embedded scripting language. PHP attempts to make it : easy for developers to write dynamically generated web pages. PHP also : offers built-in database integration for several commercial and : non-commercial database management systems, so writing a : database-enabled webpage with PHP is fairly simple. The most common : use of PHP coding is probably as a replacement for CGI scripts. : : The php package contains the module (often referred to as mod_php) : which adds support for the PHP language to Apache HTTP Server. [root@localhost ~]# yum update php ... No packages marked for update [root@localhost ~]# yum install php56u ... Resolving Dependencies ... --> Finished Dependency Resolution Error: php56u conflicts with php-5.4.16-42.el7.x86_64 Error: php56u-cli conflicts with php-cli-5.4.16-42.el7.x86_64 Error: php56u-common conflicts with php-common-5.4.16-42.el7.x86_64 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest [root@localhost ~]# yum remove php-* Loaded plugins: fastestmirror Resolving Dependencies ... Dependencies Resolved ... 3/3 Removed: php.x86_64 0:5.4.16-42.el7 php-cli.x86_64 0:5.4.16-42.el7 php-common.x86_64 0:5.4.16-42.el7 Complete! [root@localhost ~]# yum install php56u ... Resolving Dependencies ... Dependencies Resolved ... 7/7 Installed: php56u.x86_64 0:5.6.29-1.ius.centos7 Dependency Installed: php56u-cli.x86_64 0:5.6.29-1.ius.centos7 php56u-common.x86_64 0:5.6.29-1.ius.centos7 php56u-pear.noarch 1:1.10.1-4.ius.centos7 php56u-pecl-jsonc.x86_64 0:1.3.10-2.ius.centos7 php56u-process.x86_64 0:5.6.29-1.ius.centos7 php56u-xml.x86_64 0:5.6.29-1.ius.centos7 Complete! [root@localhost ~]# which php /bin/php [root@localhost ~]# php --version PHP 5.6.29 (cli) (built: Dec 9 2016 07:40:09) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies [root@localhost ~]# yum repolist ... repo id repo name status base/7/x86_64 CentOS-7 - Base 9,363 *epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 11,040 extras/7/x86_64 CentOS-7 - Extras 200 ius/x86_64 IUS Community Packages for Enterprise Linux 7 - x86_64 336 updates/7/x86_64 CentOS-7 - Updates 438 repolist: 21,377 

如果你打算安装一个供系统使用的软件包,那么我肯定会用IUS Repo,因为它打算用安全的,更新的替代品replace(通过你先卸载当前的系统软件包)系统软件包。 看到这里 。 如果您想针对多个不同版本的软件包进行开发和testing,请使用SCL,因为它们将软件打包在/ opt中,并且使用include语句或绝对path显式调用软件。 我倾向于在系统pipe理员方面犯错,因此当我configuration一个系统时,我将其configuration为一个目的(即只有一个版本的PHP系统)。 由于显而易见的原因,我并不喜欢在生产级系统上运行多个版本的软件。


原始答案:

IUS Repo,因为它是由Rackspace赞助的,不会覆盖默认软件包,也可以将它们安装在正确的位置(例如/usr/sbin vs /opt