web-dev-qa-db-fra.com

Comment supprimer python dans/usr/local/bin /

J'ai installé Python 2.7.9 dans /usr/local/bin. Maintenant ça ne marche plus. J'ai un autre Python dans /usr/bin/ mais le chemin est d'abord /usr/local/bin/. Comment puis-je retirer le 2.7.9 Python?

5
Velrest

DISCLAIMER: Depuis, j'ai beaucoup appris et je recommanderais de définir des variables d'environnement pour une session Shell ou une session Shell plutôt que d'utiliser cette réponse. Par exemple, si vous reliez manuellement l'interpréteur Python2 du système à un interprète Python3, vous risquez de provoquer des dégâts sur votre système. S'il vous plaît utiliser cette réponse avec prudence.

Il suffit de réinitialiser le lien symbolique.

D'abord, trouvez quel python:

$ which python

Dans mon cas, je reçois:

/usr/local/bin/python

Puis trouvez où le lien symbolique pointe vers

$ file /usr/local/bin/python
/usr/local/bin/python: symbolic link to `/usr/bin/python'

Ensuite, reconnectez le lien symbolique à la valeur par défaut (dans ce cas, j’utilise la valeur par défaut:/usr/bin/python).

Aucune désinstallation nécessaire.

Mettre à jour


Depuis, j’ai trouvé de nombreux moyens plus efficaces d’appliquer le même comportement, sans que cela ait des effets sur l’ensemble du système.

Supposons que je possède une installation python non désirée dans /usr/bin et une installation désirée python dans /opt/bin. Supposons pour le point de comparaison que /usr/bin est Python 3.5 et que /opt/bin est Python 2.7. Cela aurait des conséquences immédiates si vous utilisiez le mauvais interpréteur Python, plutôt que des erreurs subtiles dans la suite.

Application par défaut

Si vous souhaitez (sur les systèmes Linux) changer quel interpéter exécute les scripts Python, vous pouvez le changer soit via une interface graphique, soit via xdg-mime (une procédure peut être trouvée ici ). Pour macOS ou Windows, cela peut être fait facilement via une interface graphique.

Shell interactif

Si vous souhaitez modifier le code Python par défaut pour un shell spécifique, vous pouvez le faire de deux manières. Une solution consisterait à modifier la recherche par défaut PATH en définissant /opt/bin avant usr/bin pour une situation spécifique. Toutefois, si vous disposez de nombreuses installations alternatives aux packages système, cela pourrait également poser problème. Une autre solution consisterait à définir un alias pour Python avec la version que vous souhaitez utiliser. Cette solution est recommandée car elle ne fait que modifier l’interpréteur et n’est qu’un raccourci pour référencer une commande existante.

Par exemple, pour définir l'alias, je pourrais utiliser:

alias python="/opt/bin/python"

Et pour changer le chemin par défaut, je pourrais utiliser:

export PATH=/opt/bin:$PATH

En ajoutant ces lignes à ~/.bashrc ou ~/.bash_aliases (ce dernier est réservé à Ubuntu par défaut), ces raccourcis seront les raccourcis par défaut de tout shell interactif que vous démarrez. La combinaison des valeurs par défaut de l'application et des scripts Shell interactifs vous permet de contrôler de manière précise l'interpréteur qui exécute votre code, sans qu'il soit nécessaire d'interférer avec des fichiers système potentiellement cruciaux.

4

Votre question manque de détails, le plus pertinent étant de savoir comment vous avez réellement installé Python dans /usr/local/bin. La méthode d'installation indiquerait comment supprimer les fichiers installés.

Le moyen le plus courant d’installer des packages dans la hiérarchie des répertoires /usr/local consiste à compiler à partir de la source et à exécuter Sudo make install après la compilation et l’établissement de liens. Si vous n'avez pas déjà supprimé le répertoire source d'origine (non compressé), vous pouvez le modifier et supprimer le package Python compilé en exécutant:

 Sudo make uninstall

Si le code source a été supprimé, vous pouvez essayer de télécharger à nouveau la source.

S'il n'y a pas de cible uninstall pour make (malheureusement, plus courante que vous ne le pensez), une autre option (inélégante) consiste à utiliser la commande find pour rechercher tous les fichiers de l'arborescence de répertoires /usr/local ayant le même temps de modification que les autres fichiers de l'application que vous voulez supprimer.

Ces jours-ci, je recommanderais d'installer l'outil checkinstall . Au lieu d’exécuter make install, cela peut être utilisé pour créer un paquet RPM ou Debian qui peut ensuite être installé (et désinstallé) à l’aide des outils d’installation logicielle standard du système.

8

Votre variable d'environnement PATH. Il contient une liste de répertoires que bash cherche (dans le même ordre) quand il cherche un programme à exécuter. En gros, vous voulez mettre/usr/local/bin au début de votre variable d’environnement PATH. Ajoutez les éléments suivants à votre fichier ~/.bashrc:

export PATH=/usr/local/bin:$PATH

Vous pouvez consulter le paramètre actuel en exécutant la commande set dans bash.

Sinon, vous pouvez simplement renommer/usr/bin/python en /usr/bin/python2.3 et créer un lien symbolique pointant vers la nouvelle version, par exemple.

ln -s /usr/local/bin/python /usr/bin/python
3
Haresh Shyara

Vous pouvez utiliser checkinstall pour supprimer Python:

  1. Installer checkinstall
  2. Utilisez checkinstall pour créer un deb de votre installation Python
  3. Utilisez dpkg -r pour supprimer le deb.

Voir cet article pour plus de détails.

1
Prasanna Vasan