Comment mettre à niveau correctement le logiciel lors de la construction de Linux (CentOS) avec Vagrant ~ En utilisant l'exemple de mise à niveau de Python 2.7 vers Python 3.6 ~

Qu'est-ce que PATH?

Non limité à Linux, il n'est pas nécessaire d'écrire le chemin complet lors de l'exécution d'une commande car les informations de ce chemin sont stockées dans PATH. Par exemple, lors de l'arrêt de Linux, vous pouvez écrire shutdown -h now au lieu de / usr / sbin / shutdown -h now car/ usr / sbin /est enregistré dans votre PATH. est.

Comment vérifier PATH

Procédez comme suit:

echo $PATH

Résultat de l'exécution: image.png

Dans mon cas, c'est parce que je me suis trompé. Vous pouvez enregistrer autant de PATH que vous le souhaitez, et ils sont séparés par :.

Que faire lorsque le même logiciel avec des versions différentes est installé

Par exemple, CentOS 7 a par défaut python 2.7. Si vous exécutez python --version, vous obtiendrez les informations de version. Supposons maintenant que vous frappiez la nouvelle commande suivante et que vous utilisiez Red Hut Enterprise Linux pour supprimer python 3.6.

sudo yum -y install centos-release-scl;
sudo yum -y install rh-python36;
sudo scl enable rh-python36 bash;

Quand j'exécute python --version après cela, je vois python 3.6, mais quand je recharge le chemin par l'opération Vagrant etc., il revient à l'original. Ceci est dû au fait que «python 3.6» déposé par «Red Hut Enterprise Linux» passe à «/ opt / rh / rh-python36 / root / bin /» au lieu d'aller à «/ usr / bin». Sauf si vous enregistrez ce / opt / rh / rh-python36 / root / bin / dans votre PATH et supprimez le python2.7 dans / usr / bin, vous ne pourrez pas mettre à jour le python proprement. .. Au fait, vous pouvez trouver le chemin de python référencé par Linux avec la commande suivante.

which python

Ce "qui", pas seulement "python", vous indique le chemin réel de la commande référencée par Linux.

Lors de la suppression d'une ancienne version d'un programme, telle que python2.7, il est préférable de la renommer avec la commande mv et de la mettre de côté, plutôt que de la supprimer avec la commande rm. Vous trouverez ci-dessous la commande lors de la prise de l'exemple Python.

sudo mv /usr/bin/python2.7 /usr/bin/python2.7_old

Linux peut désormais enregistrer Python 2.7.

Comment changer PATH

Je pense qu'il y en a plusieurs, mais mon préféré est d'utiliser la commande source pour importer un fichier appelé ~ / .bash_profile. Il y a des informations PATH dans ~ / .bash_profile, et l'enregistrement PATH se fait en exécutant source ~ / .bash_profile. Notez la personne qui fait cela dans le script shell, mais vous devez spécifier dans le script où se trouve ce ~. En effet, la partie ~ est différente entre l'utilisateur root et l'utilisateur général (voir vidéo). vagrant_root_homedirectory.gif

Quand j'ai mis un shell dans Vagrantfile et que je l'ai exécuté, je ne savais pas à quelle direction ~ faisait face (quand j'ai fait provision vagrant, l'utilisateur exécutant était vagrant, mais~était` / root / Il semblait regarder sur le côté), alors je l'ai spécifié.

En conséquence, j'ai lu le PATH avec la commande suivante.

#/home/vagrant/.bash_Définir les informations PATH dans le profil
echo "export PATH="/opt/rh/rh-python36/root/bin:/usr/bin:/usr/sbin"" >> /home/vagrant/.bash_profile;
#Enregistrer les informations PATH
source /home/vagrant/.bash_profile;

finalement

Si vous conservez les étapes ci-dessus, vous pouvez mettre à niveau n'importe quel logiciel sans aucun problème. J'ai pu mettre à jour «sqlite 3.2» vers «sqlite 3.29» avec la même approche.

référence

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

Recommended Posts

Comment mettre à niveau correctement le logiciel lors de la construction de Linux (CentOS) avec Vagrant ~ En utilisant l'exemple de mise à niveau de Python 2.7 vers Python 3.6 ~
Comment connaître le nombre de GPU de python ~ Remarques sur l'utilisation du multitraitement avec pytorch ~
Lorsque vous utilisez PyQtGraph avec Python Pyside, faites attention à l'ordre d'importation
De l'état initial de CentOS8 à l'exécution de php python perl ruby avec nginx
Comment entrer dans l'environnement de développement Python avec Vagrant
Comment gratter le cours d'une action individuelle du site Web Nikkei Shimbun avec Python
Comment obtenir des abonnés et des abonnés de Python à l'aide de l'API Mastodon
Comment éviter la duplication des données lors de la saisie de Python vers SQLite.
[Python] Explique comment utiliser la fonction format avec un exemple
De l'introduction de JUMAN ++ à l'analyse morphologique du japonais avec Python
Comment gérer le problème du déplacement du répertoire actuel lorsque Python est exécuté depuis Atom
Comment couper la partie inférieure droite de l'image avec Python OpenCV
[Python] Explique comment utiliser la fonction range avec un exemple concret
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
Comment gérer l'erreur SSL lors de la connexion à S3 avec Python boto
Comment résoudre le problème de l'échec de la construction lorsque CI / CD de Python Function avec AWS Amplify
Comment faire fonctionner Linux depuis la console
Comment installer python3 avec docker centos
[Circuit x Python] Comment trouver la fonction de transfert d'un circuit en utilisant Lcapy
Remarque: Comment obtenir le dernier jour du mois avec python (ajouté le premier jour du mois)
[Astuces Python] Comment récupérer plusieurs clés avec la valeur maximale du dictionnaire
Comment obtenir une liste de fichiers dans le même répertoire avec python
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Comment faire fonctionner Linux depuis l'extérieur Procédure
Comment bien gérer les commandes Linux à partir de Python
Comment spécifier des attributs avec Mock of Python
Utilisez Ruby et Python pour trouver la probabilité qu'une carte avec un nombre naturel de 1 à 100 soit un multiple de 3 et non un multiple de 5.
Comment revenir à la commande depuis l'état où vous ne pouvez pas entrer en mode interactif avec python de git bash
Comment identifier l'élément avec le plus petit nombre de caractères dans une liste Python?
Extraire des images et des tableaux de pdf avec python pour réduire la charge de reporting
Comment passer des arguments lors de l'appel d'un script python depuis Blender sur la ligne de commande
Une note de malentendu lors de la tentative de chargement de l'intégralité du module self-made avec Python3
Comment compter le nombre d'occurrences de chaque élément de la liste en Python avec poids
Le 15e temps réel hors ligne, j'ai essayé de résoudre le problème de l'écriture avec python
[Python] Comment supprimer les valeurs en double de la liste
Le mur lors du passage du service Django de Python 2.7 à la série Python 3
Apprenez Nim avec Python (dès le début de l'année).
Comment récupérer des données d'image de Flickr avec Python
[Introduction à Python] Comment itérer avec la fonction range?
[Python] Comment spécifier l'emplacement de téléchargement avec youtube-dl
Comment quitter lors de l'utilisation de Python dans Terminal (Mac)
[Python] Résumé de la façon de spécifier la couleur de la figure
À propos de l'option --enable-shared lors de la construction de Python sous Linux
[Introduction à Python] Comment arrêter la boucle en utilisant break?
[Python] Comment réécrire le style de table avec python-pptx [python-pptx]
Étude de Python Hour8: Utilisation de packages
Accès ODBC à SQL Server depuis Linux avec Python
Exécutez le programme sans créer d'environnement Python! !! (Comment démarrer avec Google Colaboratory)
J'ai essayé de résoudre le problème de F02 comment écrire en temps réel hors ligne avec Python
Bases de la création d'un serveur interne pour Linux (CentOS 8.1, openSUSE 15.1, Ubuntu 20.04)! Serveur de fichiers avec Samba
Comment créer une instance d'une classe particulière à partir de dict en utilisant __new__ () en python
[Cyberduck] Comment échanger des fichiers sous Linux (CentOS7) démarré par VirtualBox avec mac en utilisant l'interface graphique
Comment compter rapidement la fréquence d'apparition des caractères à partir d'une chaîne de caractères en Python?
Comment gérer l'entrée du terminal dans l'environnement pipenv sans autorisation lors de l'utilisation de pipenv avec vscode
Comment obtenir les informations des organisations, Cost Explorer d'un autre compte AWS avec Lambda (python)
Comment écrire quand on veut mettre un nombre après le numéro de groupe à remplacer par une expression régulière dans re.sub de Python
Comment installer Python2.7 python3.5 avec pyenv (sur RHEL5 CentOS5) (novembre 2016)
J'ai essayé d'utiliser la bibliothèque Python de Ruby avec PyCall
Comment écrire un exemple d'implémentation E14 Python en temps réel hors ligne