'sudo' не доступен (команда не находится в ПУТИ),

Хорошо. Я не делаю просто команд вставки копии от сети, и я не видел, как/почему тот испортит вещи, но здесь....

Я хотел настроить webstorm для dev. Таким образом, я следовал этим инструкциям:

$  mkdir ~/.npm-global # directory where npm will install packages
$  npm config set prefix '~/.npm-global' # configure npm
$  echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.profile #add directory to path
$  source ~/.profile # refresh path for current session

Теперь, если я ввожу большинство команд, я получаю это:

anonymous@anonymous:/home$ sudo nano ~/.profile
Command 'sudo' is available in '/usr/bin/sudo'
The command could not be located because '/usr/bin' is not included in the PATH environment variable.
sudo: command not found

Я не вижу, как/почему это должно повредить в значительной степени все мои команды. Он переопределял то, что было в ПУТИ вместо добавления? Как я фиксирую это?

Да похоже, что он сделал, вот мой $PATH эха:

anonymous@anonymous:/home$ echo $PATH
/home/anonymous/.npm-global

Содержание ~/.profile:

# set PATH so it includes user's private bin directories
PATH="$HOME/bin:$HOME/.local/bin:$PATH"
export PATH=~/.npm-global
1
задан 5 November 2018 в 18:03

1 ответ

Инструкции сказали Вам выполнять эту команду:

echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.profile #add directory to path

Кажется, что Вы на самом деле работали:

echo 'export PATH=~/.npm-global' >> ~/.profile

Проблема состоит в том, что Вы отсутствовали :$PATH.

$PATH расширен до его значения, которое, при этом весь хорошо, должно быть чем-то как /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games. Заметьте, что каталоги в ПУТИ являются двоеточием (:) разделенный. Вот почему исходная команда имеет PATH=/new/path:$PATH - это помещает новый путь в начале восстановленной переменной ПУТИ.

Я рекомендую заключить присвоения ПУТИ В КАВЫЧКИ. Вы не должны export ПУТЬ, потому что это уже находится в среде и останется так.

Замените последнюю строку Вашего ~/.profile с

PATH="$HOME/.npm-global/bin:$PATH"

и все должны быть хорошо.

Я добавил /bin потому что исполняемые файлы, вероятно, там, как инструкции предполагают, но если по некоторым причинам они не, можно корректироваться как соответствующие. Поиск пути не является рекурсивным: фактический каталог, где исполняемый файл Вы хотите, чтобы Bash нашел, должен быть дан в ПУТИ. Я также поместил $PATH во-первых, но можно поместить его в конец. Если будет две команды в каталогах PATH с тем же именем, то одно самое близкое к запуску ПУТИ будет выполнено.

Примечание: если необходимо использовать критические команды, когда ПУТЬ повреждается, можно использовать их полные пути, т.е. /usr/bin/sudo. Но если Вы не отредактировали /etc/environment (который в целом Вы, вероятно, не были должны!) можно работать source /etc/environment получить нормальный ПУТЬ.

1
ответ дан 7 December 2019 в 15:11

Другие вопросы по тегам:

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