11 votes

Meilleur moyen de rendre RHSCL PHP disponible au niveau mondial

J'ai installé RHSCL 2 en utilisant l'url suivante :

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

en utilisant le gestionnaire d'abonnement RedHat.

J'ai ensuite couru yum remove php* suivi par yum install rh-php56

Tout s'est déroulé sans problème, sauf que maintenant PHP n'est trouvé nulle part. J'ai ensuite exécuté find / -name php et a trouvé rh-php56 dans les répertoires suivants :

/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

Quel est le meilleur moyen d'obtenir ces binaires dans /usr/bin ou tout autre répertoire qui est généralement disponible globalement pour tous les utilisateurs ?

Ai-je manqué une étape lors de l'installation des paquets et c'est pourquoi il n'est pas disponible globalement ? Ou est-ce simplement ce qui se passe lorsque l'on utilise les RHSCL ?

J'ai testé les binaires dans ces dossiers et ils fonctionnent lorsque j'exécute php -v donc cela fonctionne bien.

Ma première pensée est de juste cp en /bin o /usr/bin mais peut-être existe-t-il un moyen officiel de faire ce que je demande ?

modifier

Impossible de commenter, pas de représentant... au chapitre 3 du lien que j'ai posté, il est dit que les paquets de collecte de logiciels doivent être exécutés ainsi :

scl enable rh-php56 'php -v'

Ce qui fonctionne... mais comment faire pour qu'il fonctionne pour tous les utilisateurs comme $ php -v sans aucune commande supplémentaire. J'ai besoin que les binaires php soient globalement disponibles pour que les serveurs web puissent les utiliser et les utilisateurs de ssh avec des shells normaux.

16voto

anthony Points 330

La façon d'importer une collection de logiciels dans votre Shell actuelle (et non de lancer une sous-Shell) est de sourcer le fichier "enable".

Par exemple pour rh-php56 sur une machine Redhat 7...

source /opt/rh/rh-php56/enable

Vous pouvez maintenant exécuter "php", ou lire les pages de manuel "man php" comme d'habitude.

qui ajoutera les variables d'environnement appropriées à l'environnement actuel du shell. Les utilisateurs individuels peuvent faire cela dans leurs fichiers .bashrc, ce qui permet d'être disponible depuis SSH (shells non interactifs).

Vous pouvez également copier (ou faire un lien symbolique) le fichier enable dans /etc/profile.d/ avec un suffixe ".sh" pour l'activer automatiquement pour TOUS les utilisateurs.

Par exemple

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

Faites attention en faisant cela si plus qu'un environnement est nécessaire (comme les démons ?). Ou si plusieurs versions de ce logiciel sont présentes sur un système (pour la rétrocompatibilité avec d'autres logiciels/services), car il peut y avoir une interaction entre les versions. De plus, les utilisateurs peuvent ne pas vouloir la "dernière" version ou ne pas comprendre pourquoi le système de base (EG : /etc configs) n'affecte pas la version de la collection de logiciels.

Anthony Thyssen (Un très ancien administrateur système)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X