Я думаю, что эта проблема могла бы иметь некоторое отношение, как оболочка (Bash) хеширует пути к исполняемым файлам, когда их называют.
выборка из страницы справочника удара
Bash использует хеш-таблицу для запоминания полных путей исполняемых файлов (см. хеш под SHELL ВСТРОЕННЫЕ КОМАНДЫ ниже). Полный поиск каталогов в ПУТИ выполняется, только если команда не найдена в хеш-таблице.
Можно опросить хеш с помощью hash
управляйте как так:
$ hash -l
builtin hash -p /usr/sbin/update-alternatives update-alternatives
builtin hash -p /usr/bin/man man
builtin hash -p /bin/ls ls
Можно заставить хеш "забывать" все с -r
переключатель:
$ hash -r
manny@manny:~$ hash -l
hash: hash table empty
Я попытался бы выполнить a hash -r
до выполнения apt-get
видеть, решает ли это вопрос.
Также я смотрел бы на вывод от update-alternatives --query
для проверки это содержит значения, Вы думаете, что это должно. Здесь является моим для java
только для примера:
$ 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
С [119899]m[119900], [119901]-p[119902], [119903]-i[119904] быть: