web-dev-qa-db-ja.com

Centosで新しいソフトウェア用の正しいリポジトリを選択する方法

PHP7をインストールしたいのですが、Centosでは、追加のリポジトリをインストールすることによってのみそれを行うことができます。私はそれらのさまざまな(レミ、ius、webtatic)を見て、フォーラムのコメントは賛否両論です。

私は個人的な意見を求めているわけではありませんが、私が考慮すべき基準と回避すべき落とし穴について、専門家が何を選択したのかについて興味があります。

4
Elzo Valugi

Red Hat/CentOSにさまざまなソフトウェアの最新バージョンをインストールするための最も「公式な」ソリューションは、ソフトウェアコレクションであることに注意してください。

Red Hat Software Collectionsバージョン2. はphp 5.6と7.0の両方を提供し、Red Hatによって保守され、centos-sclリポジトリーでCentOSユーザーが使用でき、 SCLo SIG によって保守されます。 。

興味深いソリューションの比較: CentOSで新しいアプリケーションを実行する

11
Remi Collet

PHPの場合は、 remi repo を使用します。積極的にメンテナンスされており、メンテナーはRHのために働いています。 Software Collection としてインストールすることもできます。

2
user9517

私はIUSコア開発者の一人です。 IUSを使用する理由は、それがRackspaceによって提供され、複数のRackspaceエンジニアによって保守されているためです。元の質問で述べられている他のリポジトリ(RemiとWebtatic)は個人が管理しています。雇用主に関係なく、個々の副プロジェクトのバス係数は最適ではありません。

RHSCLは公式のRed Hatソリューションですが、IUSと比較するといくつかの欠点があります。

  • 更新頻度が少ない
  • 通常はライフサイクルが短い
  • 間違いなくもっと紛らわしい使用法
2
carlwgeorge

編集された回答:

TL; DRシステム全体の使用を対象とする場合は、IUSを使用します。開発またはテストの使用を対象とする場合、SCLを使用します。

通常のsysadminワークフローに従うシステム全体で安全な使用のためのIUS:

[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を使用します。これは、(現在のシステムパッケージを最初にアンインストールして)システムパッケージを安全で新しい代替手段に置き換えることを目的としているためです。 こちら を参照してください。複数の異なるバージョンのパッケージを開発してテストしたい場合は、SCLを使用してください。SCLはソフトウェアを/ optにパッケージ化し、includeステートメントを使用して、または絶対パスで明示的に呼び出されるためです。私はシステム管理者の側で誤る傾向があるので、システムを構成するとき、それを単一の目的のために構成します(つまり、システムのPHPのバージョンは1つだけです)。私は明らかな理由で、本番レベルのシステムで複数のバージョンのソフトウェアを実行するファン。


元の回答:

IUS Repo Rackspaceがスポンサーであり、デフォルトのパッケージを上書きせず、正しい場所にインストールするため(/usr/sbin/opt

0