Melhor maneira de disponibilizar RHSCL PHP globalmente

Melhor maneira de disponibilizar RHSCL PHP globalmente

Instalei o RHSCL 2 usando o seguinte URL:

https://access.redhat.com/documentation/en-US/Red_Hat_Software_Collections/2/html/2.0_Release_Notes/chap-Installation.html

usando o gerenciador de assinaturas RedHat.

Eu então corri yum remove php*seguido poryum install rh-php56

Tudo correu bem, exceto que agora o PHP não foi encontrado em lugar nenhum. Em seguida, corri find / -name phpe encontrei rh-php56nos seguintes diretórios:

/var/opt/rh/rh-php56/lib/php
/opt/rh/rh-php56/register.content/var/opt/rh/rh-php56/lib/php
/opt/rh/rh-php56/root/usr/bin/php
/opt/rh/rh-php56/root/usr/lib64/php
/opt/rh/rh-php56/root/usr/share/php

Qual é a melhor maneira de colocar esses binários /usr/binou qualquer outro diretório que geralmente esteja disponível globalmente para todos os usuários?

Perdi alguma etapa ao instalar os pacotes e é por isso que eles não estão disponíveis globalmente? Ou é exatamente isso que acontece ao usar RHSCLs?

Eu testei os binários nessas pastas e eles funcionam quando eu executo, php -ventão está funcionando bem.

Meu primeiro pensamento é apenas cpentrar /binou /usr/bintalvez haja uma maneira oficial de fazer o que estou pedindo?

editar

Não posso comentar, não tenho representante... do capítulo 3 do link que postei, diz que os pacotes de coleta de software devem ser executados assim:

scl enable rh-php56 'php -v'

O que funciona... no entanto, como faço para que ele seja executado para todos os usuários, $ php -vsem comandos adicionais. Eu preciso dos binários php disponíveis globalmente para que os servidores da web possam usá-los e os usuários ssh com shells normais.

Responder1

A maneira de importar uma coleção de software para seu shell atual (não iniciar um subshell) é obter o arquivo "enable".

Por exemplo, para rh-php56 em uma máquina Redhat 7...

fonte /opt/rh/rh-php56/enable

Agora você pode executar "php" ou ler as páginas de manual "man php" normalmente.

que adicionará as variáveis ​​de ambiente apropriadas ao ambiente de shell atual. Usuários individuais podem fazer isso nos arquivos .bashrc, permitindo que ele esteja disponível em SSH (shells não interativos)

Você também pode copiar (ou vincular simbolicamente) o arquivo de ativação em /etc/profile.d/ com um sufixo ".sh" para habilitá-lo automaticamente para TODOS os usuários.

Por exemplo

ln -s /opt/rh/rh-php56/enable /etc/profile.d/rh-php56.sh

Tenha cuidado ao fazer isso se for necessário mais do que ambiente (como daemons?). Ou se múltiplas versões desse software estiverem presentes em um sistema (para compatibilidade retroativa com outros softwares/serviços), pois pode haver interação entre versões. Além disso, os usuários podem não querer a versão 'mais recente' ou ficar confusos sobre o motivo pelo qual o sistema 'base' (EG: /etc configs) não afeta a versão da coleção de software.

Anthony Thyssen (um administrador de sistema muito antigo)

informação relacionada