Estou a pensar que este problema pode ter algo a ver com o modo como o shell (Bash) hashes os caminhos para executáveis quando são chamados.
trecho da página man do bash
Bash uses a hash table to remember the full pathnames of executable files (see hash under SHELL BUILTIN COMMANDS below). A full search of the directories in PATH is performed only if the command is not found in the hash table.
Você pode interrogar o hash usando o comando hash
da seguinte forma:
$ hash -l
builtin hash -p /usr/sbin/update-alternatives update-alternatives
builtin hash -p /usr/bin/man man
builtin hash -p /bin/ls ls
Você pode fazer com que o hash "esqueça" tudo com a opção -r
:
$ hash -r
manny@manny:~$ hash -l
hash: hash table empty
Eu tentaria executar um hash -r
antes de executar apt-get
para ver se isso resolve o problema.
Além disso, dou uma olhada na saída de update-alternatives --query <command>
para ter certeza de que ela contém os valores que você acha que deveria. Aqui está o meu para java
apenas para um exemplo:
$ update-alternatives --query java
Name: java
Link: /usr/bin/java
Slaves:
java.1.gz /usr/share/man/man1/java.1.gz
Status: auto
Best: /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
Value: /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
Alternative: /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
Priority: 1071
Slaves:
java.1.gz /usr/lib/jvm/java-7-openjdk-amd64/jre/man/man1/java.1.gz