Bash: приложение определенно находится в $ path, но не найдено при запуске - PullRequest
0 голосов
/ 20 марта 2020

У меня проблема с приложением python, которое я установил на пустом сервере. Установленный мной пакет invoke с использованием pip3 install invoke

После установки, если я просто запускаю invoke без указания пути abs, я получаю сообщение об ошибке: -bash: /usr/bin/invoke: No such file or directory

Запуск с полным путем к приложению работает нормально. Поэтому я запутался, почему он игнорирует приложение le git, которое находится в определенном месте на $PATH.

См. Команды cli ниже для визуальной справки:

/# invoke
-bash: /usr/bin/invoke: No such file or directory

/# find -name invoke
./usr/local/bin/invoke
./usr/local/lib/python3.6/dist-packages/invoke

/# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

/# /usr/local/bin/invoke -V
Invoke 1.4.1

Кто-нибудь знает, что здесь происходит?

1 Ответ

0 голосов
/ 20 марта 2020

Как уже упоминалось в комментариях к моему первоначальному сообщению, это произошло потому, что команда ранее хэшировалась и bash запомнил старый путь. Был предложен запуск hash -r, который сбрасывает все сопоставления. В конце концов я использовал hash -d invoke, который очистил только эту единственную запись. Мое рассуждение состояло в том, что я не был уверен, ожидалось ли что-либо еще в сопоставлениях от какого-либо другого приложения.

Редактировать : Как указано в комментариях ниже, нет вред от использования -r, поскольку это просто более быстрый способ поиска чего-либо и сохраняется там, когда он все равно находит это снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...