Ich habe RHSCL 2 mit der folgenden URL installiert:
mithilfe des RedHat-Abonnementmanagers.
Ich rannte dann, yum remove php*
gefolgt vonyum install rh-php56
Alles lief reibungslos, außer dass PHP jetzt nirgendwo zu finden ist. Ich habe es dann ausgeführt und in den folgenden Verzeichnissen find / -name php
gefunden :rh-php56
/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
Wie lassen sich diese Binärdateien am besten in ein Verzeichnis /usr/bin
oder ein anderes Verzeichnis übertragen, das normalerweise global für alle Benutzer verfügbar ist?
Habe ich beim Installieren der Pakete einen Schritt übersehen, weshalb es nicht global verfügbar ist? Oder passiert das einfach, wenn man RHSCLs verwendet?
Ich habe die Binärdateien in diesen Ordnern getestet und sie funktionieren, wenn ich sie ausführe, php -v
also funktioniert es einwandfrei.
Mein erster Gedanke ist, einfach cp
in /bin
oder einzusteigen /usr/bin
, aber vielleicht gibt es eine offizielle Möglichkeit, das zu tun, worum ich bitte?
bearbeiten
Kann keinen Kommentar abgeben, keine Antwort... in Kapitel 3 des Links, den ich gepostet habe, heißt es, dass Softwaresammlungspakete folgendermaßen ausgeführt werden müssen:
scl enable rh-php56 'php -v'
Das funktioniert zwar, aber wie bekomme ich es dazu, es für alle Benutzer $ php -v
ohne zusätzliche Befehle auszuführen? Ich brauche die PHP-Binärdateien global verfügbar, damit Webserver sie verwenden können und SSH-Benutzer mit normalen Shells.
Antwort1
Um eine Softwaresammlung in Ihre aktuelle Shell zu importieren (nicht um eine Unter-Shell zu starten), müssen Sie die Datei „enable“ als Quelle verwenden.
Zum Beispiel für rh-php56 auf einer Redhat 7-Maschine ...
Quelle /opt/rh/rh-php56/enable
Sie können jetzt wie gewohnt „php“ ausführen oder die Manpages „man php“ lesen.
Dadurch werden die entsprechenden Umgebungsvariablen zur aktuellen Shell-Umgebung hinzugefügt. Einzelne Benutzer können dies in ihren .bashrc-Dateien tun, sodass es über SSH (nicht interaktive Shells) verfügbar ist.
Sie können die Aktivierungsdatei auch mit der Endung „.sh“ in /etc/profile.d/ kopieren (oder einen symbolischen Link dazu erstellen), um sie automatisch für ALLE Benutzer zu aktivieren.
Zum Beispiel
ln -s /opt/rh/rh-php56/enable /etc/profile.d/rh-php56.sh
Seien Sie dabei vorsichtig, wenn mehr als eine Umgebung benötigt wird (z. B. Daemons?). Oder wenn mehrere Versionen dieser Software auf einem System vorhanden sind (aus Gründen der Abwärtskompatibilität mit anderer Software/anderen Diensten), da es zu Interaktionen zwischen den Versionen kommen kann. Außerdem möchten Benutzer möglicherweise nicht die „neueste“ Version oder sind verwirrt, warum das „Basis“-System (z. B.: /etc-Konfigurationen) die Version der Softwaresammlung nicht beeinflusst.
Anthony Thyssen (ein sehr alter Systemadministrator)