'que' relata uma coisa, o comando real é outro [duplicado]

2

Estou executando o Ubuntu 12.04, que veio com o Cmake v 2.8.7.

Eu precisava de um CMake mais atual, então baixei a fonte para 12.8.12.1, criei e instalei por direção. A última etapa, make install eu corri sudo ed.

./bootstrap
make
sudo make install

Agora quero executá-lo, mas descubro que a versão antiga ainda é invocada quando executo cmake na linha de comando:

jdibling@hurricane:/$ cd /; cmake --version; which cmake
cmake version 2.8.7
/usr/local/bin/cmake
jdibling@hurricane:/$ 

Estranho, eu acho. Então, eu su e experimento a partir daí:

root@hurricane:~# cd /; cmake --version; which cmake
cmake version 2.8.12.1
/usr/local/bin/cmake
root@hurricane:/# 

Por que which informa o mesmo diretório, mas cmake --version informa versões diferentes? Como posso encontrar onde o novo cmake foi realmente instalado?

Como sugerido, eu corri type :

jdibling@hurricane:/tmp/cmake-2.8.12.1$ type cmake
cmake is hashed (/usr/bin/cmake)
jdibling@hurricane:/tmp/cmake-2.8.12.1$ sudo su -
root@hurricane:~# type cmake
cmake is /usr/local/bin/cmake
root@hurricane:~# 
    
por John Dibling 10.01.2014 / 18:32

1 resposta

4

Você deve usar o comando type para saber o que realmente está em seu nome, por exemplo:

type cmake

Esse pode ser um alias que executa uma versão diferente de cmake ou function com um comportamento semelhante ou, finalmente, um comando anterior hashed que não é o primeiro em PATH como você experimentou.

    
por 10.01.2014 / 18:35