Вопрос или проблема
Я пытался установить переменную 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
-
Откройте терминал.
-
Перейдите в домашнюю директорию:
cd ~
-
Откройте файл
.bashrc
с помощью текстового редактора, например,nano
:nano .bashrc
-
В конец файла добавьте следующую строку:
export PATH="/usr/bin:$PATH"
-
Сохраните изменения и закройте редактор (в
nano
сделайте это с помощью комбинацииCtrl + O
, затемEnter
, иCtrl + X
для выхода). -
Чтобы изменения вступили в силу, выполните:
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. Если у вас есть дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью.