Melhor maneira de disponibilizar o RHSCL PHP globalmente

9

Eu instalei o RHSCL 2 usando o seguinte url:

link

usando o gerenciador de assinaturas RedHat.

Em seguida, executei yum remove php* seguido por yum install rh-php56

Tudo correu bem, exceto que agora o PHP não é encontrado em lugar nenhum. Em seguida, executei find / -name php e encontrei rh-php56 nos 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 obter esses binários em /usr/bin ou qualquer outro diretório geralmente disponível globalmente para todos os usuários?

Eu perdi uma etapa ao instalar os pacotes e é por isso que ele não está disponível globalmente? Ou isso é o que acontece quando se usa RHSCLs?

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

Meu primeiro pensamento é apenas cp em /bin ou /usr/bin , mas talvez exista uma maneira oficial de fazer o que estou perguntando?

editar

Não é possível comentar, não rep ... do capítulo 3 do link que postei, ele diz que os pacotes de coleção 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, como $ php -v , sem comandos adicionais. Preciso dos binários do php disponíveis globalmente para que os servidores da Web possam usá-los e usuários ssh com shells normais.

    
por Ozzy 09.10.2015 / 10:48

1 resposta

13

A maneira de importar uma coleção de software para o seu shell atual (não iniciar um sub-shell) é a fonte do arquivo "enable".

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

source /opt/rh/rh-php56/enable

Agora você pode executar "php" ou ler manpages "man php" normalmente.

que adicionará as variáveis de ambiente apropriadas ao ambiente de shells atual. Usuários individuais podem fazer isso em arquivos .bashrc, permitindo que eles estejam disponíveis a partir de SSH (shells não interativos)

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

Por exemplo

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

Tornar-se responsável por isso se mais do que o ambiente for necessário (como daemons?). Ou se várias versões desse software estiverem presentes em um sistema (para compatibilidade com outros softwares / serviços), pois pode haver interação entre as versões. Também 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 muito antigo do sistema)

    
por 11.02.2016 / 03:04