So aktualisieren Sie die Software beim Erstellen von Linux (CentOS) mit Vagrant ~ Am Beispiel eines Upgrades von Python 2.7 auf Python 3.6 ~

Was ist PATH?

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.

So überprüfen Sie den Pfad

Mach Folgendes:

echo $PATH

Ausführungsergebnis: image.png

In meinem Fall liegt das daran, dass ich mich damit angelegt habe. Sie können beliebig viele Pfade registrieren, die durch : getrennt sind.

Was tun, wenn dieselbe Software mit unterschiedlichen Versionen installiert ist?

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.

So ändern Sie den Pfad

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). vagrant_root_homedirectory.gif

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;

Schließlich

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.

Referenz

https://teratail.com/questions/50308 https://qiita.com/nito128/items/e91e8510c882a7f24768

Recommended Posts

So aktualisieren Sie die Software beim Erstellen von Linux (CentOS) mit Vagrant ~ Am Beispiel eines Upgrades von Python 2.7 auf Python 3.6 ~
Wie man die Anzahl der GPUs aus Python kennt ~ Hinweise zur Verwendung von Multiprocessing mit pytorch ~
Beachten Sie bei der Verwendung von PyQtGraph mit Python Pyside die Reihenfolge des Imports
Vom Anfangszustand von CentOS8 bis zum Ausführen von PHP Python Perl Ruby mit Nginx
So gelangen Sie mit Vagrant in die Python-Entwicklungsumgebung
So kratzen Sie mit Python den Aktienkurs einer einzelnen Aktie von der Nikkei Shimbun-Website
So erhalten Sie mithilfe der Mastodon-API Follower und Follower von Python
So vermeiden Sie doppelte Daten bei der Eingabe von Python in SQLite.
[Python] Erklärt anhand eines Beispiels, wie die Formatierungsfunktion verwendet wird
Von der Einführung von JUMAN ++ bis zur morphologischen Analyse von Japanisch mit Python
So gehen Sie mit dem Problem um, dass das aktuelle Verzeichnis verschoben wird, wenn Python von Atom ausgeführt wird
So schneiden Sie den unteren rechten Teil des Bildes mit Python OpenCV
[Python] Erklärt anhand eines konkreten Beispiels, wie die Bereichsfunktion verwendet wird
[Einführung in Python] So sortieren Sie den Inhalt einer Liste effizient mit Listensortierung
Umgang mit SSL-Fehlern beim Herstellen einer Verbindung zu S3 mit Python boto
Wie man mit dem Problem umgeht, dass die Erstellung fehlschlägt, wenn CI / CD von Python Function mit AWS Amplify
So bedienen Sie Linux von der Konsole aus
So installieren Sie Python3 mit Docker Centos
[Circuit x Python] So ermitteln Sie die Übertragungsfunktion eines Schaltkreises mit Lcapy
Hinweis: So erhalten Sie den letzten Tag des Monats mit Python (hinzugefügt am ersten Tag des Monats)
[Python-Tipps] So rufen Sie mehrere Schlüssel mit dem Maximalwert aus dem Wörterbuch ab
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
So bedienen Sie Linux von außen Vorgehensweise
Wie man gut mit Linux-Befehlen aus Python umgeht
So legen Sie Attribute mit Mock of Python fest
Verwenden Sie Ruby und Python, um die Wahrscheinlichkeit zu ermitteln, dass eine Karte mit einer natürlichen Zahl von 1 bis 100 ein Vielfaches von 3 und kein Vielfaches von 5 ist.
So kehren Sie aus dem Zustand zum Befehl zurück, in dem Sie mit Python of Git Bash nicht in den interaktiven Modus wechseln können
Wie identifiziere ich das Element mit der geringsten Anzahl von Zeichen in einer Python-Liste?
Extrahieren Sie Bilder und Tabellen mit Python aus PDF, um die Berichtslast zu verringern
Übergeben von Argumenten beim Aufrufen von Python-Skripten über Blender in der Befehlszeile
Ein Hinweis auf Missverständnisse beim Versuch, das gesamte selbst erstellte Modul mit Python3 zu laden
So zählen Sie die Anzahl der Vorkommen jedes Elements in der Liste in Python mit der Gewichtung
Beim 15. Offline-Echtzeitversuch habe ich versucht, das Problem des Schreibens mit Python zu lösen
[Python] So entfernen Sie doppelte Werte aus der Liste
Die Wand beim Ändern des Django-Dienstes von Python 2.7 auf Python 3-Serie
Lerne Nim mit Python (ab Anfang des Jahres).
So kratzen Sie Bilddaten von Flickr mit Python
[Einführung in Python] Wie iteriere ich mit der Bereichsfunktion?
[Python] So legen Sie den Download-Speicherort mit youtube-dl fest
Beenden bei Verwendung von Python in Terminal (Mac)
[Python] Zusammenfassung, wie die Farbe der Figur angegeben wird
Informationen zur Option --enable-shared beim Erstellen von Python unter Linux
[Einführung in Python] Wie stoppe ich die Schleife mit break?
[Python] So schreiben Sie den Tabellenstil mit python-pptx um [python-pptx]
Studie aus Python Hour8: Verwenden von Paketen
ODBC-Zugriff auf SQL Server von Linux mit Python
Führen Sie das Programm aus, ohne eine Python-Umgebung zu erstellen! !! (Erste Schritte mit Google Colaboratory)
Ich habe versucht, das Problem von F02 zu lösen, wie man mit Python offline in Echtzeit schreibt
Grundlagen zum Erstellen eines internen Servers für Linux (CentOS 8.1, openSUSE 15.1, Ubuntu 20.04)! Dateiserver mit Samba
So erstellen Sie eine Instanz einer bestimmten Klasse aus dict mit __new__ () in Python
[Cyberduck] So tauschen Sie Dateien unter Linux (CentOS7) aus, die von VirtualBox mit Mac über die GUI gestartet wurden
Wie kann man schnell die Häufigkeit des Auftretens von Zeichen aus einer Zeichenfolge in Python zählen?
Umgang mit dem Terminal, das ohne Erlaubnis in die pipenv-Umgebung gelangt, wenn pipenv mit vscode verwendet wird
So erhalten Sie Informationen von Organisationen, Cost Explorer eines anderen AWS-Kontos bei Lambda (Python)
So schreiben Sie, wenn Sie eine Zahl nach der Gruppennummer setzen möchten, die durch einen regulären Ausdruck in Python ersetzt werden soll
So installieren Sie Python2.7 python3.5 mit pyenv (unter RHEL5 CentOS5) (2016 Nov)
Ich habe versucht, die Python-Bibliothek von Ruby mit PyCall zu verwenden
Offline-Echtzeit zum Schreiben eines E14 Python-Implementierungsbeispiels