Автор Тема: Не добавляется путь в PATH.  (Прочитано 1947 раз)

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

Оффлайн anoobis

  • Активный пользователь
  • **
  • Topic Author
  • Сообщений: 77
Не добавляется путь в PATH.
« : 14 Декабрь 2016, 07:59:47 »
Всем привет!

В домашнем каталоге есть директория ~/.bin/ с исполняемыми файлами, путь к ней должен прописываться из файла .bash_profile такой строчкой:
Код: (Bash) [Выделить]
[[ -d "$HOME/.bin" ]] &&  [[ $PATH != *.bin* ]] && export PATH="$HOME/.bin:$PATH"однако, по факту, этого не происходит и после входа в окружение переменная пути имеет вид:
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/gamesВ результате чего теряется доступ к большинству моих приложений. Почему так и как сделать правильно?

PS:

система Linux jes 3.16.0-4-586 #1 Debian 3.16.36-1+deb8u2 (2016-10-19) i686 GNU/Linux
рабочее окружение: LXDE, ligtdm

прежде профиль пользователя использовался на разных дистрибутивах и на других $PATH дополняется нормально. 
Интересно, что при открытии TTY, без входа в LXDE - путь добавляется, при последующем запуске иксов через startx он остаётся прописанным, но вход должен быть через дисплей-менеджер.
Пробовал также прописывать эту строку добавления пути в .xsessionrc,  ничего нового не происходит.

Что сделано не так?
 

Оффлайн vic5710

  • Местный житель
  • ***
  • Сообщений: 452
Re: Не добавляется путь в PATH.
« Ответ #1 : 14 Декабрь 2016, 10:32:30 »
admin$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
admin$ [[ $PATH =~ ".bin" ]] && echo OK || echo ERR
ERR
admin$ [[ $PATH =~ "bin" ]] && echo OK || echo ERR
OK
admin$ [[ $PATH != "bin" ]] && echo OK || echo ERR
OK
admin$ [[ $PATH != ".bin" ]] && echo OK || echo ERR
OK
admin$
« Последнее редактирование: 14 Декабрь 2016, 10:35:15 от vic5710 »
 
Пользователи, которые поблагодарили этот пост: anoobis

Оффлайн anoobis

  • Активный пользователь
  • **
  • Topic Author
  • Сообщений: 77
Re: Не добавляется путь в PATH.
« Ответ #2 : 14 Декабрь 2016, 10:58:54 »
admin$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
admin$ [[ $PATH =~ ".bin" ]] && echo OK || echo ERR
ERR
admin$ [[ $PATH =~ "bin" ]] && echo OK || echo ERR
OK
admin$ [[ $PATH != "bin" ]] && echo OK || echo ERR
OK
admin$ [[ $PATH != ".bin" ]] && echo OK || echo ERR
OK
admin$
Примерно так я себе и представлял работу test, но проблема врядли в куске кода. Скорее всего, при запуске окружения из lightdm не выполняются стартовые файлы входа в профиль,
либо же lightdm/lxde подменяют переменную PATH на свою, ну или оба эти варианта вместе.
 
Пользователи, которые поблагодарили этот пост: Gamliel

Оффлайн vic5710

  • Местный житель
  • ***
  • Сообщений: 452
Re: Не добавляется путь в PATH.
« Ответ #3 : 14 Декабрь 2016, 12:01:50 »
либо же lightdm/lxde подменяют переменную PATH на свою, ну или оба эти варианта вместе.
не должно
.profile выполняется при логине каждый раз
 
Пользователи, которые поблагодарили этот пост: anoobis

Оффлайн anoobis

  • Активный пользователь
  • **
  • Topic Author
  • Сообщений: 77
Re: Не добавляется путь в PATH.
« Ответ #4 : 14 Декабрь 2016, 12:50:51 »
.profile выполняется при логине каждый раз
Ну у .bash_profile то приоритет выше, shell юзера /bin/bash к тому же. Но я сделал симлинк .profile --> .bash_profile, путь по-прежнему не меняется.
 

Оффлайн vic5710

  • Местный житель
  • ***
  • Сообщений: 452
Re: Не добавляется путь в PATH.
« Ответ #5 : 14 Декабрь 2016, 13:39:56 »
попробуй лог сделать типа
echo $PATH >> path.log
/usr/bin/env >>env.log
я когда-то использовал это, ЕМНИП все получалось
« Последнее редактирование: 14 Декабрь 2016, 13:57:35 от vic5710 »
 

Оффлайн anoobis

  • Активный пользователь
  • **
  • Topic Author
  • Сообщений: 77
Re: Не добавляется путь в PATH.
« Ответ #6 : 15 Декабрь 2016, 18:36:40 »
Как вообще формируется переменная PATH при загрузке ?

Добавил в /etc/profile $HOME/.bin,
Spoiler: ShowHide
if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="$HOME/.bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH

так на $PATH это никак не отразилось, чуть ниже вывод

vic5710,
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Зачем вам вывод переменных окружения !?
"$ env": ShowHide
XDG_VTNR=7
SSH_AGENT_PID=1042
XDG_SESSION_ID=2
SAL_USE_VCLPLUGIN=gtk
XDG_GREETER_DATA_DIR=/var/lib/lightdm/data/i
QT_STYLE_OVERRIDE=GTK+
TERM=xterm-256color
SHELL=/bin/bash
XDG_MENU_PREFIX=lxde-
GTK2_RC_FILES=/home/i/.gtkrc-2.0
USER=i
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session1
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
SSH_AUTH_SOCK=/tmp/ssh-02SVPAEnob9M/agent.1018
XDG_CONFIG_DIRS=/etc/xdg
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
DESKTOP_SESSION=LXDE
PWD=/home/i/desktop
EDITOR=/usr/bin/mcedit
LANG=ru_RU.UTF-8
GDM_LANG=ru_RU.utf8
GDMSESSION=LXDE
_LXSESSION_PID=1018
SHLVL=1
XDG_SEAT=seat0
HOME=/home/i
XDG_CONFIG_HOME=/home/i/.config
LOGNAME=i
XDG_DATA_DIRS=/usr/local/share:/usr/share:/usr/share/gdm:/var/lib/menu-xdg:/usr/local/share/:/usr/share/:/usr/share/gdm/:/var/lib/menu-xdg/
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-hoDdyN9wZb,guid=c3bb1c21c4ee49e0377d52955852b4cb
XDG_RUNTIME_DIR=/run/user/1000
DISPLAY=:0
XDG_CURRENT_DESKTOP=LXDE
NO_AT_BRIDGE=1
XAUTHORITY=/home/i/.Xauthority
_=/usr/bin/env



я когда-то использовал это, ЕМНИП все получалось
Для чего мне это?
 

Оффлайн vic5710

  • Местный житель
  • ***
  • Сообщений: 452
Re: Не добавляется путь в PATH.
« Ответ #7 : 15 Декабрь 2016, 19:59:50 »
Зачем вам вывод переменных окружения !?
 (кликните для
мне он не нужен, нужен тебе если хочешь разобраться. УМВР
 

Оффлайн anoobis

  • Активный пользователь
  • **
  • Topic Author
  • Сообщений: 77
Re: Не добавляется путь в PATH.
« Ответ #8 : 15 Декабрь 2016, 20:11:00 »
нужен тебе если хочешь разобраться. УМВР
Это не так, мне всего лишь нужно чтобы при загрузке к переменной PATH добавлялся мой путь, остальное всё ваши фантазии.
 

Оффлайн vic5710

  • Местный житель
  • ***
  • Сообщений: 452
Re: Не добавляется путь в PATH.
« Ответ #9 : 15 Декабрь 2016, 20:28:03 »
желаю удачи.good bye
 

Оффлайн anoobis

  • Активный пользователь
  • **
  • Topic Author
  • Сообщений: 77
Re: Не добавляется путь в PATH.
« Ответ #10 : 15 Декабрь 2016, 21:04:04 »
Пока что, пришлось сделать костыль -


Файл: /usr/bin/startlxde
Код: (Bash) [Выделить]
#!/bin/sh
[ -d "$HOME/.bin" ] && [ "$PATH" != *.bin* ] && export PATH="$HOME/.bin:$PATH"
...

В таком виде путь прописывается, остальные загрузочные файлы дебиан игнорирует. Буду весьма признателен, если появится более красивое и правильное решение. Тему не закрываю.
 

Оффлайн yoric

  • Старожил
  • ****
  • Сообщений: 742
  • Jabber: yoric@jabber.ru
Re: Не добавляется путь в PATH.
« Ответ #11 : 16 Декабрь 2016, 06:42:13 »
Помнится, тоже решал такую проблему. Как Вы уже заметили, в случае запуска Х-ов через startx или дисп. менеджер поведение различается. Сейчас не помню, но удалось где-то как-то удачно прописать, и поведение стало одинаково везде. Ещё учтите, что есть такая команда "export" в скриптах, по-моему, именно она (или её удаление) мне помогло.
 

Теги:
 

Изменила путь к VirtualHost и Directory, помогите вернуть назад

Автор oksana

Ответов: 3
Просмотров: 2055
Последний ответ 11 Июль 2012, 13:59:40
от qupl
Подскажите, как поправить $PATH?

Автор PbI6A

Ответов: 16
Просмотров: 10982
Последний ответ 10 Май 2020, 17:17:58
от qupl
CA path error, file does not exist:admin/openssl.cnf

Автор diefair

Ответов: 6
Просмотров: 1830
Последний ответ 01 Август 2014, 23:20:48
от diefair
debian 10, root и $PATH

Автор romt

Ответов: 7
Просмотров: 5641
Последний ответ 06 Август 2019, 23:37:44
от Authlogin
Получить полный путь к файлу

Автор mfch

Ответов: 3
Просмотров: 1462
Последний ответ 13 Июль 2016, 15:14:43
от qupl