Невозможно выполнить команды терминала: «команда« sudo »доступна в« / usr / bin / sudo »»

13

Я уже давно пользуюсь Ubuntu 12.04, и у меня никогда не возникало проблем с этим. Я пытаюсь установить python 3.2 в моей системе Ubuntu, и каждый раз, когда я запускаю код для компиляции исходного кода python, я получаю эту ошибку:

'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'

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

user188283
источник
Бьюсь об заклад, вы, вероятно, получите ту же ошибку, когда вы попытаетесь запустить свои приложения через командную строку. Какой выход cat /etc/environment?
Алаа Али
Не могли бы вы рассказать нам, какую программу вы пытаетесь выполнить? Некоторые программы меняют переменную PATH, но без названия мы не можем быть уверены.
Брайам

Ответы:

24

Как говорится в ошибке, вы должны добавить /usr/binкаталог в переменную окружения PATH. Для этого выполните в терминале следующую команду:

export PATH=$PATH:/usr/bin

После того, как вы можете использовать sudo, вы можете отредактировать /etc/environmentфайл, чтобы сделать изменение постоянным, поэтому запустите в терминале:

sudo nano /etc/environment

редактировать файл. Убедитесь, что путь примерно такой:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

Сохраните и закройте файл с помощью Ctrl+ Xи нажмите, Yкогда вас попросят.

Смотрите также: Как добавить каталог в PATH?

Раду Рэдяну
источник
Это не постоянно, правда? Если он перезапустится, он снова уйдет.
Алаа Али
1
Да. Постоянные настройки для вашего пользователя, вероятно , в ~/.profile, ~/.bashrc, ~/.pam_environmentили ~/.xsessionrc. Настройки для всех пользователей, вероятно , в /etc/profile, /etc/profile.d/*, /etc/environment, /etc/bash/bashrc, /etc/lightdm/xsession. Возможно, один из ваших пользовательских файлов переопределяет стандартные системные настройки. Если у вас включен другой пользователь или гостевая учетная запись, попробуйте с другим пользователем и посмотрите, существует ли проблема и для этого другого пользователя. Если нет, проверьте файлы сценариев запуска ваших собственных пользователей.
soulsource
1
Это сработало отлично. Большое спасибо! Но не могли бы вы добавить больше информации о том, как сделать это изменение перманенр ??? Заранее спасибо.
OscaRoCa
Я получил эту ошибку: MY_USER_NAME отсутствует в файле sudoers. Об этом инциденте будет сообщено. , Я не админ .. что я должен делать ..
Ганем
6

Я получил проблему и исправил ее, отредактировав мой файл .bashrc

  1. Откройте файл .bashrc, используя nano

    $ sudo nano ~/.bashrc
    
  2. Добавьте следующую строку в файл bashrc

    export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:   /usr/local/games"
    
  3. Нажмите Ctrl + X, чтобы сохранить файл

  4. Он попросит изменить файл, нажмите y и Enter

Вы сделали.

user3721406
источник
1
Не манипулируйте файлами в вашем домашнем каталоге ( ~) с помощью sudo. Это может создать больше проблем, чем решить.
Мелебиус
1

Если вы хотите добавить новое значение в PATHсистемную переменную, вы, скорее всего, добавите новую строку ~/.bashrcили в ~/.bash_profileфайлы.

Например, если вы хотите добавить /opt/netbeans/binв PATH, вы должны добавить эту строку в конец ~/.bashrcфайла:

export PATH=$PATH:/opt/netbeans/bin

Давайте разберем эту линию.

  • export PATH- Здесь мы ссылаемся на PATHпеременную
  • =- Мы хотим присвоить ему новое значение с помощью =оператора (остальная часть строки - это значение, которое будет сохранено в PATH)
  • $PATH- Мы присваиваем переменную PATHзначению, которое было в переменной до текущей команды
  • : - добавляем разделитель для нового значения
  • /opt/netbeans/bin - И добавить новое значение к PATH

Вы должны увидеть все ваши ссылки на PATHпеременные в файлах ~/.bashrcили ~/.bash_profileи убедиться, что вы расширяете -

export PATH=$PATH:/opt/netbeans/bin

и не перезаписывать, как это -

export PATH=/opt/netbeans/bin

PATHпеременная

Вы должны удостовериться, что в каждом упоминании PATHвы используете $PATH:и ваше дополнительное значение после него


Если это не работает, вы можете сделать что-то вроде этого:

  • Убедитесь, что в /etc/environmentфайле есть что-то вроде следующей переменной, и она никогда не переопределяется в этом файле:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
  • Добавьте недостающие пути из вышеуказанной PATHпеременной в вашу PATHпеременную, расположенную в/etc/environment

Перед тестированием после каждого изменения в файлах не забудьте обновить ваши конфиги.

Например для ~/.bashrcфайла:

source `~/.bashrc`
fedotsoldier
источник