экспорт PATH=”/usr/bin:$PATH” необходимо для каждой команды

Вопрос или проблема

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

Команда 'poweroff' доступна в следующих местах
* /sbin/poweroff
* /usr/sbin/poweroff
Команду не удалось найти, потому что '/sbin:/usr/sbin' не включены в 
переменную окружения PATH.
Скорее всего, это вызвано отсутствием административных прав, связанных с 
вашей учетной записью.
poweroff: команда не найдена

Я могу исправить это с помощью этой команды:

export PATH="/usr/bin:$PATH"

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

Я был бы признателен, если бы вы могли помочь. Кстати, я использую Ubuntu 22.04.1 LTS

Хотя, поскольку вы приняли вопрос, это может быть временным решением, которое работает для вас, лучшим подходом было бы устранить причину ошибки. К сожалению, в вашем вопросе вы не указываете как вы установили переменную JAVA_HOME. Почему-то вы внесли изменения, которые опустошают переменную PATH.

Таким образом, тщательно проверьте файл .bashrc. Все, что изменяет PATH, было добавлено вами. По умолчанию PATH больше не модифицируется в .bashrc. См. /etc/skel/.bashrc для стандартного файла .bashrc.

Перейдите в свою домашнюю директорию, отредактируйте .bashrc

Добавьте вашу строку:

export PATH=”/usr/bin:$PATH”

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

Вы можете, конечно, добавить любой другой путь, который хотите, перед $PATH

Удачи.

Переменная PATH обычно устанавливается в /etc/environment. Вот моя версия:

$ cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"

Теперь я не знаю, что вы сделали для установки вашей JAVA_HOME, но есть примеры, такие как https://stackoverflow.com/questions/47013303/ubuntu-java-environment-path-bash-etc-environment-permission-denied, которые объясняют, как добавить JAVA_HOME в /etc/environment. Если вы следовали этому, но заменили >> на >, вместо того чтобы добавлять в существующий файл, вы перезаписали его. Это означает, что переменная PATH теперь отсутствует.

Повторное добавление определения PATH из моего примера должно исправить большинство проблем, если только у вас не установлен какой-то пакет, который добавляет еще один компонент пути.

Преимущество выполнения этого в /etc/environment, вместо .profile или .bashrc, заключается в том, что это работает для всех пользователей, включая пользователей, которые запускают серверные процессы, а не только для вас.

Ответ или решение

Ваша проблема заключается в том, что переменная окружения PATH была изменена или очищена, что приводит к невозможности найти стандартные команды, такие как poweroff. Давайте разберем, как исправить эту ошибку и предотвратить её возникновение в будущем.

1. Что такое переменная PATH?

PATH – это переменная окружения в операционных системах Unix и Linux, которая указывает каталоги, в которых система ищет исполняемые файлы команд. Если команду нельзя найти в указанных в PATH каталогах, она будет недоступна, что и произошло в вашем случае.

2. Почему возникает ошибка?

Ошибка, с которой вы столкнулись, указывает на то, что каталоги /sbin и /usr/sbin, содержащие команды, которые часто требуют повышенных привилегий, не добавлены в ваш PATH. Это может произойти в результате некорректных изменений, сделанных при настройке переменной окружения JAVA_HOME или в других конфигурационных файлах.

3. Как исправить переменную PATH?

Как вы уже заметили, временно можно решить проблему с помощью команды:

export PATH="/usr/bin:$PATH"

Однако это изменение не сохраняется после закрытия терминала, поэтому нужно внести изменения в конфигурационные файлы, которые загружаются при каждом запуске терминала.

4. Корректировка файла .bashrc

  1. Откройте терминал.

  2. Перейдите в домашнюю директорию:

    cd ~
  3. Откройте файл .bashrc с помощью текстового редактора, например, nano:

    nano .bashrc
  4. В конец файла добавьте следующую строку:

    export PATH="/usr/bin:$PATH"
  5. Сохраните изменения и закройте редактор (в nano сделайте это с помощью комбинации Ctrl + O, затем Enter, и Ctrl + X для выхода).

  6. Чтобы изменения вступили в силу, выполните:

    source .bashrc

5. Проверка и восстановление стандартного PATH

Для того чтобы избежать подобных проблем в будущем, рекомендую сверить текущий PATH со стандартными настройками. Откройте файл /etc/environment:

cat /etc/environment

Стандартный PATH для Ubuntu может выглядеть следующим образом:

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

Если ваш PATH отличается или отсутствует, вы можете добавить нужные значения в файл /etc/environment.

6. Заключение

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

Следуя этим шагам, вы сможете избежать подобных ошибок в будущем и корректно настроить ваше окружение в Ubuntu 22.04.1 LTS. Если у вас есть дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью.

Оцените материал
Добавить комментарий

Капча загружается...