Я уверен, что вам надоели вопросы типа «XX: Команда не найдена», поэтому приношу свои извинения за добавление еще одного в стек, но вот оно.
Я пытаюсь создать tar-архив скомпилированной установки mercurial и python, который я могу отправить различным командам в моей компании, которые затем извлекут их на свои изолированные серверы unix (все с одной и той же версией одной и той же ОС) и будут работать с hg, даже если их собственная версия Python слишком старая.
Пока что все идет хорошо, но некоторые машины доставляют мне проблемы. Когда tar-шар будет извлечен, у пользователя появится новая папка bin, содержащая исполняемые файлы hg и python. После установки PATH в эту папку bin исполняемый файл python работает нормально, но исполняемый файл hg выдает сообщение «hg: Command not found». ошибка.
Неужели это плохой путь?
Выдает ошибку, если позвонить
> hg
несмотря на то, что
> which hg
дает правильный путь к исполняемому файлу hg
Кроме того, если вы перейдете в эту папку и позвоните
> ./hg
Вы по-прежнему получаете "hg: Command not found".
Единственный способ заставить его работать - позвонить
> ./python hg
Что работает правильно и показывает справочную информацию hg.
Может быть проблема с разрешением?
Я выполнил извлечение, и все файлы принадлежат мне. Я также проверил файл hg, и у меня есть разрешения на выполнение, как и следовало ожидать.
Почему я получаю эту ошибку?
Кроме пути и разрешений, я просто не знаю, что еще проверить. Мы ценим любые предложения.
Спасибо!
Возможно, что-то не так с волшебной линией в hg
сценарий. Пытаться:
$ less `which hg`
В первой строке должен быть абсолютный путь к интерпретатору python. Что-то вроде:
#!/usr/bin/python
(или где бы ни был ваш интерпретатор Python). Дважды проверьте правильность этого пути.