Ошибка не найдена команда - bash

Я в той же лодке и собирался использовать правила сравнения только на локальном компьютере. единственное, что я читал, это ставить стоп после каждого правила. поэтому, когда совпадение будет найдено, проверка других правил прекратится.

Теперь метод остановки зависит от вашей версии.

новее его остановись

старейшина тильда я думаю

0
26.06.2017, 00:36
3 ответа

Я думаю, вы сможете получить представление о том, что происходит, отслеживая выполнение Emacs (sudo). Вот хорошее и дружелюбное объяснение того, как его использовать.

0
28.01.2020, 02:14

Классический пример , почему бы не использоватьwhich.

В основе проблемы лежит which. Если вы проверите, что говорит type emacsили command -v emacs, ваша проблема будет решена.

Редактировать :Если вы пытаетесь запустить как пользователь root, что произойдет, когда вы попытаетесь запустить :

?
su
<password>
command -v emacs

Редактировать 2 :Это aliasявляется проблемой. Вам нужно проверить ~/.bashrcили ~/.profileдля этого пользователя. Либо изменить его, либо создать новый aliasбыло бы моим предложением.

Редактировать 3:Вы делаете нестандартные -вещи, то есть устанавливаете emacsв папку пользователя, а затем ожидаете, что сможете выполнить его как root. Это означает, что вам нужно нестандартное решение -.

Вариант 1

Установите emacs/usr/local/bin- в правильном месте. Не используйте папку пользователей для хранения приложений, которые должны быть доступны для root.

Вариант 2

Используйте полный путь при запуске emacs-, как указано в ответе 7 _R3X. Например:

sudo /home/user1/local_build/bin/emacs

Опция 3

Добавьте следующееalias:

alias emacs='/home/user1/local_build/bin/emacs'

Это aliasследует добавить как к /home/user1/.bashrc, так и к /root/.bashrc. Если /root/.bashrcне существует, просто создайте его.

Вариант 3 не рекомендуется (на мой взгляд ), так как он начинает создавать настоящий беспорядок в вашей системе. Также возможно, что rootне использует оболочку bash. Я не знаю, почему у вас emacsв папке пользователей, поэтому я включил эту опцию.

Другой вариант — изменить aliasдля Варианта 3 на что-то более индивидуальное, например:

alias emacsuser1='/home/user1/local_build/bin/emacs'

или даже

alias localemacs='/home/user1/local_build/bin/emacs'

Таким образом вы узнаете, что используете не -стандартную установку или пользовательскую версию.

3
28.01.2020, 02:14

cylgalad упомянул причину вашей ошибки в комментарии о том, что путь /home/user1/local_build/binотсутствует в системной переменной root PATH.

Причина вашей проблемы в том, что каталог /home/user1/local_build/binотсутствует в переменной secure_path. Чтобы добавить этот каталог в secure_path, вам нужно отредактировать файл /etc/sudoersи изменить содержимое в его содержимом по умолчанию.

ИЛИ альтернативно,

Чтобы решить эту проблему, вы можете либо запустить emacs, явно указав его полный путь в команде:

sudo /home/user1/local_build/bin/emacs /etc/apache2/sites-available/000-default.conf

или альтернативно

вы можете добавить путь /home/user1/local_build/bin/к корневому PATH. Просто поместите следующую строку в файл .bashrc, расположенный в каталоге ~/root/.

PATH=$PATH:~/home/user1/local_build/bin

Добавление каталога в root PATHне будет работать по причинам, упомянутым steeldriver в комментарии.

4
28.01.2020, 02:14

Теги

Похожие вопросы