La mejor manera de hacer que RHSCL PHP esté disponible globalmente

La mejor manera de hacer que RHSCL PHP esté disponible globalmente

He instalado RHSCL 2 usando la siguiente URL:

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

utilizando el administrador de suscripciones de RedHat.

Luego corrí yum remove php*seguido poryum install rh-php56

Todo salió bien excepto que ahora PHP no se encuentra en ninguna parte. Luego corrí find / -name phpy encontré rh-php56en los siguientes directorios:

/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

¿Cuál es la mejor manera de obtener estos archivos binarios /usr/bino cualquier otro directorio que generalmente esté disponible globalmente para todos los usuarios?

¿Me perdí algún paso al instalar los paquetes y por eso no está disponible globalmente? ¿O es esto exactamente lo que sucede cuando se usan RHSCL?

Probé los archivos binarios en esas carpetas y funcionan cuando los ejecuto, php -vpor lo que funciona bien.

Mi primer pensamiento es simplemente cpentrar /bino, /usr/bin¿tal vez haya una forma oficial de hacer lo que estoy pidiendo?

editar

No puedo comentar, no hay representante... del capítulo 3 del enlace que publiqué, dice que los paquetes de recopilación de software deben ejecutarse así:

scl enable rh-php56 'php -v'

Lo cual funciona... sin embargo, ¿cómo hago para que se ejecute para todos los usuarios $ php -vsin comandos adicionales? Necesito los binarios de php disponibles globalmente para que los servidores web puedan usarlos y los usuarios de ssh con shells normales.

Respuesta1

La forma de importar una colección de software a su shell actual (no iniciar un subshell) es obtener el archivo "habilitar".

Por ejemplo, para rh-php56 en una máquina Redhat 7...

fuente /opt/rh/rh-php56/enable

Ahora puede ejecutar "php" o leer las páginas de manual "man php" normalmente.

eso agregará las variables de entorno apropiadas al entorno de shells actual. Los usuarios individuales pueden hacer esto en sus archivos .bashrc, lo que permite que esté disponible desde SSH (shells no interactivos)

También puede copiar (o vincular simbólicamente) el archivo de habilitación en /etc/profile.d/ con un sufijo ".sh" para habilitarlo automáticamente para TODOS los usuarios.

Por ejemplo

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

Tenga cuidado al hacer esto si se necesita algo más que un entorno (¿como demonios?). O si hay varias versiones de ese software presentes en un sistema (para compatibilidad con otros software/servicios), ya que puede haber interacción entre las versiones. Además, es posible que los usuarios no quieran la versión "más reciente" o se confundan en cuanto a por qué el sistema "base" (por ejemplo, /etc configs) no afecta la versión de la colección de software.

Anthony Thyssen (Un administrador de sistemas muy antiguo)

información relacionada