como escolher o repositório correto para o novo software no Centos

5

Eu quero instalar o PHP7 e no Centos você só pode fazer isso instalando repositórios extras. Eu vejo uma variedade deles (remi, ius, webtatic), e os comentários nos fóruns são tanto pro como contra.

Eu não estou pedindo opiniões pessoais, mas estou interessado em quais são as razões profissionais para escolher uma sobre a outra - critérios que eu deveria levar em conta e possíveis armadilhas que eu deveria evitar.

    
por Elzo Valugi 02.01.2017 / 14:03

4 respostas

10

Observe que a solução mais "oficial" para instalar versões recentes de vários softwares no Red Hat / CentOS são as Coleções de Software.

Red Hat Software Collections versão 2.3 fornece tanto o PHP 5.6 quanto o 7.0, e são mantidos pela Red Hat, e disponíveis para usuários do CentOS no repositório centos-scl, mantido pelo SCLo SIG .

Uma comparação de solução interessante: Executando aplicativos mais recentes no CentOS

    
por 02.01.2017 / 19:12
2

Para o php, basta ir com o remi repo . Ele é mantido ativamente e seu mantenedor trabalha para RH. Você pode até instalá-lo como uma Coleção de Software .

    
por 02.01.2017 / 14:48
1

Eu sou um dos principais desenvolvedores do IUS. Em várias ocasiões, os usuários me deram feedback de que o motivo pelo qual usam o IUS é que ele é patrocinado pela Rackspace e mantido por vários engenheiros da Rackspace. Os outros repos mencionados na questão original (Remi e Webtatic) são mantidos por indivíduos. O fator de barramento para projetos paralelos individuais não é o ideal, independentemente do empregador.

RHSCL é a solução oficial da Red Hat, no entanto, tem várias desvantagens em comparação com o IUS.

  • atualizações menos frequentes
  • geralmente um ciclo de vida mais curto
  • uso possivelmente mais confuso
por 12.02.2017 / 23:13
0

Resposta Editada:

TL; DR Se estiver usando todo o sistema, use IUS. Se o desenvolvimento de segmentação ou o uso de teste, use SCL.

IUS para uso seguro em todo o sistema após um fluxo de trabalho normal do administrador de sistema:

[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

Se você for instalar um pacote para uso em todo o sistema, eu definitivamente usaria o IUS Repo porque ele é destinado a substituir pacotes de sistema (com a desinstalação dos pacotes de sistema atuais primeiro) por alternativas novas e seguras. Veja aqui . Se você quiser desenvolver e testar várias versões diferentes de pacotes, vá com o SCL, pois eles empacotam seu software em / opt e devem ser explicitamente chamados usando uma instrução include ou por caminho absoluto. Eu costumo errar ao lado de um administrador do sistema, então quando eu configuro um sistema, eu o configuro para uma única finalidade (ou seja, apenas UMA versão do PHP para o sistema). Não sou fã de executar várias versões de software em um sistema de nível de produção por motivos óbvios.

Resposta original:

IUS Repo porque é patrocinado pela Rackspace e não sobrescreve os pacotes padrão e também os instala nos locais corretos (por exemplo, /usr/sbin vs /opt )

    
por 08.01.2017 / 07:24