2009-01-05 7 views
21

Le système que j'utilise a installé gnuplot dans /usr/bin. Je n'ai pas de racine, mais j'avais besoin d'une version plus récente de gnuplot, donc je l'ai installé à $HOME/usr/bin. Comment faire tell linux pour utiliser celui dans mon répertoire personnel et pas celui dans /usr/bin. J'ai ajouté $HOME/usr/bin à mon chemin, mais il exécute toujours celui dans /usr/bin si je viens d'utiliser la commande gnuplot. Je préfère ne pas avoir à spécifier $HOME/usr/bin/gnuplot chaque fois que je dois l'utiliser.Choix entre plusieurs exécutables avec le même nom (linux)

Merci!

Répondre

22

Les exécutables se trouvent dans l'ordre PATH. Vous devez préfixer ${HOME}/usr/bin sur votre chemin, comme ceci:

export PATH="${HOME}/usr/bin:$PATH" 
20

Exécutables se trouvent dans l'ordre PATH. Votre PATH est apparemment configuré de sorte que /usr/bin précède ~/usr/bin/.

+0

Il serait mieux si vous fournissez quelques docs pour soutenir votre point de vue. – hiveer

2

Ce que Bombe dit est ok. J'ajouterais que vous devez déclarer vos entrées PATH spécifiques à l'utilisateur à l'intérieur du bashrc de votre utilisateur ($HOME/.bashrc), ainsi vos paramètres PATH ne s'appliquent qu'à votre utilisateur.

+0

Il n'a pas de racine, donc je doute qu'il puisse changer globalement le CHEMIN :) –

+0

Veuillez relire ma réponse. Je déclare qu'il devrait changer .bashrc de son propre utilisateur, qui est bien sûr inscriptible par le propre utilisateur (qui est en fait le propriétaire du dossier). –

5

Outre la modification du PATH comme cela a été expliqué, vous pouvez également utiliser des alias comme celui-ci (en BASH)

alias gn=$HOME/usr/bin/gnuplot 

vous suffit d'exécuter avec

gn 
+1

Pas si sûr codant dur un chemin est une bonne idée pour un alias. Je préfère l'utiliser pour spécifier les drapeaux que j'ai toujours voulu. –

+0

Dans ce cas, lorsque vous voulez une version spécifique d'un programme, je ne vois aucun problème. –

Questions connexes