9
votes

"cmake --version" pointe vers / usr / bin / cmake tandis que "quel cmake" pointe vers / usr / local / bin

J'essaye de mettre à jour cmake sur mon ordinateur Linux. Voici la commande que j'ai utilisée.

Supprimez l'ancien cmake:

/usr/local/bin/cmake

Téléchargez et extrait cmake-3.13.3.tar.gz depuis https://cmake.org/download/

Puis dans le dossier cmake extrait:

bash: /usr/bin/cmake: No such file or directory

quand j'ai fait cmake --version il renvoie

./bootstrap
make 
sudo make install 

qui indique qu'aucun exécutable cmake n'existe dans / usr / bin . Cependant, quand j'exécute quel cmake il renvoie

sudo apt purge --auto-remove cmake

Et cela existe.

Comment ai-je la commande cmake pointez sur /usr/local/bin/cmake?

Mon $ PATH montre

/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / local / games: / snap / bin code>

Edit: différent de l'autre question puisque je sais exactement où l'exécutable cmake est juste que --version et qui ont un effet différent.


2 commentaires

La différence entre quel sortie et l'exécution réelle de l'exécutable par son nom signifie que cmake dans votre cas est un alias . Voir par exemple cette question sur Unix et Linux: unix.stackexchange.com/questions/85249/... Vous devez supprimer cet alias pour que make cmake fasse référence à son emplacement réel. La question n'est pas spécifique à cmake , et donc il ne s'agit pas de programmation .


Double possible de Comment vérifier si un programme existe à partir d'un script Bash? et Comment vérifier si une commande existe dans un script shell? Voir la discussion sur which par rapport à commande -v . Comment "hacher -r" et actualiser tous les shells? et Quand refaire les exécutables dans $ PATH avec bash?


3 Réponses :


0
votes

Selon github / cmake readme :

  ./bootstrap --prefix=/usr \
    --mandir=/share/man \
    --docdir=/share/doc/cmake \
    --sphinx-man \
    --system-libs \
    --qt-gui \
    --parallel=$(/usr/bin/getconf _NPROCESSORS_ONLN)

Dans boostrap que l'on peut voir, que l'installation par défaut du préfixe cmake est, à partir de ici :

cmake_default_prefix="/usr/local"

Mais je n'irais pas simplement avec bootstrap --prefix = / usr . Comme j'utilise archlinux, j'irais avec ce qu'utilise Archlinux pour l'installation par défaut, depuis ici :

 You may use the --prefix=<install_prefix> option to specify a custom installation directory for CMake. 

Ça a l'air raisonnable. Je vois que vous utilisez apt-get comme gestionnaire de paquets, si c'est debian, vous pouvez télécharger les paquets source pour cmake depuis ici et trouvez la commande build quelque part là-bas.


0 commentaires

9
votes

Il s'avère que j'ai besoin de sortir du shell pour que l'effet se produise. Une fois que j'ai démarré un nouveau terminal shell cmake --version a fonctionné.


0 commentaires

19
votes

Dans bash, vous pouvez utiliser hash -r pour qu'il oublie tous les emplacements mémorisés des commandes précédemment exécutées.


0 commentaires