Подскажите, как поправить $PATH?

Автор PbI6A, 30 сентября 2018, 03:56:07

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

PbI6A

# echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
По-моему, здесь есть что-то неправильное :( Как поправить?
LINUX means: Linux Is Not a UniX
Вернулся на Devuan. Счастлив!

ecc83


mrgoodvin

Задается в /etc/profile для всех. И так же в ~/.profile для конкретного пользователя. А "неправильно" то что повторяются строки, видать?
У меня перечень такой:
/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Возможно для пользователя что-то правили (~/.profile ), я тоже менял его. Поэтому все что ниже не претендует на оригинальный.

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

А дальнейшими строками можно добавлять что угодно:
PATH="/ЧТО УГОДНО:$PATH"
export PATH

Ну конечно можно погуглить еще на эту тему.

yoric

Двойные значения где-то добавляются, прочешите .bash[rc|profile], .profile и в /etc их же, а ещё может .x[initrc|session].

PbI6A

Цитата: ecc83 от 30 сентября 2018, 08:26:03
sudo nano /etc/environment
Размер файла: 0  ???

Снова вернулся к этой теме потому что на другом компе не работало обновление системы, ругалось на отсутствие путей */sbin. Снова порылся везде, пока сделал так. В /root/.bashrc дописал в конце:
PATH="/usr/local/sbin:/usr/sbin:/sbin:$PATH"
export PATH

Теперь показывает */sbin дважды:
# echo $PATH
/usr/local/sbin:/usr/sbin:/sbin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Почему дублируется - хз, но, по крайней мере, работает.
LINUX means: Linux Is Not a UniX
Вернулся на Devuan. Счастлив!

grey_wolf

#5
столкнулся с такой же проблемой :(...нельзя ни apt-get upgrate или apt-get dist-upgrade или просто установить любой пакет выдаёт ошибку.
вывод в терминалеdpkg: предупреждение: «ldconfig» отсутствует в каталогах, перечисленных в PATH, или не является исполняемым
dpkg: warning: «start-stop-daemon» отсутствует в каталогах, перечисленных в PATH, или не является исполняемым
dpkg: ошибка: в каталогах PATH не найдено 2 ожидаемые программы или исполняемых файла
Замечание: В PATH суперпользователя обычно должны присутствовать /usr/local/sbin, /usr/sbin и /sbin

пока нашёл костыль - от рута в терминале PATH=$PATH:/sbin но это работает только до перезапуска системы.
самое обидное что раньше такой байды не было :'(...зачем испортили testing?!
Не опускай рук, а то пропустишь в бороду!

ecc83


echo 'PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"' | sudo tee /etc/environment
export PATH

grey_wolf

Не опускай рук, а то пропустишь в бороду!

ecc83

Цитата: grey_wolf от 22 октября 2018, 09:06:41
а если не юзаю sudo? а только su?!

Тогда команда приобретает фантастический вид:


su
echo 'PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"' | tee /etc/environment

grey_wolf

не прокатывает :(...после применения всё тот же выхлоп :'(
dpkg: предупреждение: «ldconfig» отсутствует в каталогах, перечисленных в PATH, или не является исполняемым
dpkg: предупреждение: «start-stop-daemon» отсутствует в каталогах, перечисленных в PATH, или не является исполняемым
dpkg: ошибка: в каталогах PATH не найдено 2 ожидаемые программы или исполняемых файла
Замечание: В PATH суперпользователя обычно должны присутствовать /usr/local/sbin, /usr/sbin и /sbin
E: Sub-process /usr/bin/dpkg returned an error code (2)

а вот после export PATH=$PATH:/sbin
нормально обновляется...но опять же после перезапуска ОСи эту команду нужно заново вводить. :(
Не опускай рук, а то пропустишь в бороду!

ecc83

Цитата: grey_wolf от 22 октября 2018, 20:51:31
не прокатывает :(...после применения всё тот же выхлоп :'(

Я надеюсь ты догадался перезагрузить комп после этой команды?

Если после перезагрузки всё равно не работает, значит что то сломано в testing.

Тогда можно напрямую указать:


su
echo 'export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"' >> /etc/profile
reboot



grey_wolf

 :D спасибо. вроде как работать стало. по крайней мере обновилась система без матюков.
Не опускай рук, а то пропустишь в бороду!

PbI6A

LINUX means: Linux Is Not a UniX
Вернулся на Devuan. Счастлив!

YVSIK

СТОЛЬКО переискал а на деле все решается проще))
вот ссылка https://specialistoff.net/question/869#answer853
берем открывает домашнюю папку
разрешаем просматривать скрытые файлы
находим файл .bashrc и в самом низу добовляем эту злосчастную строку

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

у меня сработатло сразу надо только пергрузить ПК и все стало ставиться на раЗ))

blink

YVSIK, спасибо, после перезагрузки все заработало)