Nicht auf Linux beschränkt, es ist nicht erforderlich, den vollständigen Pfad zu schreiben, wenn ein Befehl ausgeführt wird, da die Informationen dieses Pfads in PATH gespeichert sind. Wenn Sie beispielsweise Linux herunterfahren, können Sie "shutdown -h now" anstelle von "/ usr / sbin / shutdown -h now" schreiben, da "/ usr / sbin /" in Ihrem PATH registriert ist. ist.
Mach Folgendes:
echo $PATH
Ausführungsergebnis:
In meinem Fall liegt das daran, dass ich mich damit angelegt habe. Sie können beliebig viele Pfade registrieren, die durch :
getrennt sind.
Zum Beispiel hat CentOS 7 standardmäßig "Python 2.7". Wenn Sie python --version
ausführen, erhalten Sie die Versionsinformationen.
Angenommen, Sie drücken den folgenden neuen Befehl und verwenden "Red Hut Enterprise Linux", um "Python 3.6" zu löschen.
sudo yum -y install centos-release-scl;
sudo yum -y install rh-python36;
sudo scl enable rh-python36 bash;
Wenn ich danach "python --version" ausführe, sehe ich "python 3.6", aber wenn ich den Pfad durch Vagrant-Operation usw. neu lade, kehrt er zum Original zurück. Dies liegt daran, dass "Python 3.6", das von "Red Hut Enterprise Linux" gelöscht wurde, auf "/ opt / rh / rh-python36 / root / bin /" fällt, anstatt auf "/ usr / bin". Wenn Sie dieses / opt / rh / rh-python36 / root / bin /
nicht in Ihrem PFAD registrieren und das python2.7
in / usr / bin
entfernen, können Sie das python
nicht sauber aktualisieren. .. Übrigens können Sie den Pfad von "Python" finden, auf den Linux mit dem folgenden Befehl verweist.
which python
Dieses "welche", nicht nur "Python", gibt Ihnen den tatsächlichen Pfad des Befehls an, auf den Linux verweist.
Wenn Sie eine ältere Version eines Programms wie "python2.7" entfernen, ist es besser, es mit dem Befehl "mv" umzubenennen und beiseite zu legen, als es mit dem Befehl "rm" zu löschen. Unten finden Sie den Befehl für das Python-Beispiel.
sudo mv /usr/bin/python2.7 /usr/bin/python2.7_old
Linux kann jetzt Python 2.7 speichern.
Ich denke, es gibt mehrere, aber mein Favorit ist es, den Befehl source
zu verwenden, um eine Datei mit dem Namen ~ / .bash_profile
zu importieren. Es gibt PATH-Informationen in ~ / .bash_profile
, und die PATH-Registrierung erfolgt durch Ausführen von source ~ / .bash_profile
. Beachten Sie die Person, die dies im Shell-Skript tut, aber Sie sollten im Skript angeben, wo sich dieses ~
befindet. Dies liegt daran, dass sich der Teil ~
zwischen dem Root-Benutzer und dem allgemeinen Benutzer unterscheidet (siehe Video).
Als ich eine Shell in "Vagrantfile" einfügte und sie ausführte, wusste ich nicht, in welche Richtung "~" blickte (als ich "Vagrant Provisioning" durchführte, war der ausführende Benutzer "Vagrant", aber "~" war "/ root / Es schien zur Seite zu schauen), also habe ich es spezifiziert.
Als Ergebnis habe ich den PFAD mit dem folgenden Befehl gelesen.
#/home/vagrant/.bash_Legen Sie die PATH-Informationen im Profil fest
echo "export PATH="/opt/rh/rh-python36/root/bin:/usr/bin:/usr/sbin"" >> /home/vagrant/.bash_profile;
#Registrieren Sie die PATH-Informationen
source /home/vagrant/.bash_profile;
Wenn Sie die obigen Schritte ausführen, können Sie jede Software problemlos aktualisieren. Mit dem gleichen Ansatz konnte ich "sqlite 3.2" auf "sqlite 3.29" aktualisieren.
https://teratail.com/questions/50308 https://qiita.com/nito128/items/e91e8510c882a7f24768
Recommended Posts