Instalei o RHSCL 2 usando o seguinte URL:
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 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 colocar esses binários /usr/bin
ou 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 -v
então está funcionando bem.
Meu primeiro pensamento é apenas cp
entrar /bin
ou /usr/bin
talvez 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 -v
sem 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)