Ich habe RHSCL 2 mit der folgenden URL installiert:
Verwenden des RedHat-Abonnement-Managers.
Ich rannte dann yum remove php*
gefolgt vonyum install rh-php56
Alles verlief reibungslos, außer dass PHP nirgendwo zu finden ist. Ich lief dann find / -name php
und fand rh-php56
in den folgenden Verzeichnissen:
/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
Was ist der beste Weg, um diese Binärdateien in /usr/bin
ein anderes Verzeichnis zu bringen, das normalerweise global für alle Benutzer verfügbar ist?
Habe ich bei der Installation der Pakete einen Schritt verpasst, weshalb sie nicht global verfügbar sind? Oder passiert genau das, wenn RHSCLs verwendet werden?
Ich habe die Binärdateien in diesen Ordnern getestet und sie funktionieren beim Ausführen, php -v
sodass sie einwandfrei funktionieren.
Mein erster Gedanke ist, nur cp
in /bin
oder /usr/bin
aber vielleicht gibt es einen offiziellen Weg, um das zu tun, was ich verlange?
bearbeiten
Kann nicht kommentieren, keine Wiederholung ... aus Kapitel 3 des Links, den ich gepostet habe, heißt es, dass Software-Erfassungspakete wie folgt ausgeführt werden müssen:
scl enable rh-php56 'php -v'
Was funktioniert ... aber wie kann ich es für alle Benutzer wie $ php -v
ohne zusätzliche Befehle ausführen. Ich brauche die PHP-Binärdateien weltweit verfügbar, damit Webserver sie und SSH-Benutzer mit normalen Shells verwenden können.
quelle
scl enable rh-php56 command
, was kompliziert ist. Die globale Aktivierung über die Antwort von @ antofthy ist viel eleganter.Antworten:
Die Möglichkeit, eine Software-Sammlung in Ihre aktuelle Shell zu importieren (keine Sub-Shell zu starten), besteht darin, die Datei "enable" als Quelle zu verwenden.
Zum Beispiel für rh-php56 auf einem Redhat 7-Computer ...
Sie können jetzt "php" ausführen oder die Manpages "man php" wie gewohnt lesen.
Dadurch werden der aktuellen Shells-Umgebung die entsprechenden Umgebungsvariablen hinzugefügt. Einzelne Benutzer können dies in ihren .bashrc-Dateien tun, sodass sie über SSH (nicht interaktive Shells) verfügbar sind.
Sie können die Aktivierungsdatei auch mit dem Suffix ".sh" in /etc/profile.d/ kopieren (oder mit einem Symlink verknüpfen), um sie automatisch für ALLE Benutzer zu aktivieren.
Beispielsweise
Seien Sie vorsichtig, wenn mehr als die Umgebung benötigt wird (z. B. Dämonen?). Oder wenn mehrere Versionen dieser Software auf einem System vorhanden sind (aus Gründen der Abwärtskompatibilität mit anderer Software / Diensten), da möglicherweise eine Interaktion zwischen den Versionen besteht. Außerdem möchten Benutzer möglicherweise nicht die 'neueste' Version oder sind verwirrt darüber, warum das 'Basissystem' (EG: / etc configs) die Software-Erfassungsversion nicht beeinflusst.
Anthony Thyssen (Ein sehr alter Systemadministrator)
quelle
source scl_source enable python33