$PATH

Автор icarus, 25 августа 2022, 23:45:10

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

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

icarus

Здравствуйте.
$ uname -a
Linux nb11 5.10.0-17-amd64 #1 SMP Debian 5.10.136-1 (2022-08-13) x86_64 GNU/Linux
Не могу добавить каталог в PATH. В консоли добавляется, под иксами - нет. Поиском искал по форуму, вижу что уже обсуждалось несколько лет назад, да так и не обсудилось. Примечательно что на прежнем дебиане (10.. не помню точно, винт умер) такой проблемы не было и несмотря на systemd прекрасно канало
echo " PATH=\$PATH:/icarix/bin
  export PATH " > /etc/profile.d/icarix.sh

chmod a+x /etc/profile.d/icarix.sh


Всё работало у меня на 10ке!
Теперь же вот на дебиане11.3 у меня уже кончилась фантазия в какой профиль это можно записать. Ничего не работает. Точнее - в консоли работает, даже по нескольку раз добавлено 
../icarix/bin:/icarix/bin
а под иксами - нет.

Может я что пропустил и уже разобрались товарищи форумчане за несколько лет с этой казалось бы элементарной вещью? Подскажете?


Linux -- 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64 GNU/Linux

yoric

Здра!
У меня в ~/.bashrc прописано:
PATH="$HOME/bin:$PATH"
export PATH LC_MESSAGES=en_US QT_QPA_PLATFORMTHEME=qt5ct
И всё работает. И в Х=ах.

icarus

И верно, так работает. Только мне то надо бы чтобы на всех пользователей.
Пишут что вносить это в ~/.bashrc чем-то там идеологически неправильно, не знаю почему. Меня же смущает, что это же для bash, а dash, например будет его читать?

Ещё пишут что проблема под иксами возникает из-за того что пути устанавливаетlightdm. /etc/profile он не читает, а где берёт пути, решительно никто не знает. Я всё так и не встретил человека который знает это.

Вот я гляжу, а у меня оказывается есть
lab@nb11:~$ file /usr/sbin/gdm3
/usr/sbin/gdm3: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=99ec19f7b13ed77560e38969700a8e141e5c51c6, for GNU/Linux 3.2.0, stripped

я его прописываю сюда
echo "/usr/sbin/gdm3" > /etc/X11/default-display-manager

перезагружаюсь и
  pstree
...
        ├─lightdm─┬─Xorg───9*[{Xorg}]
        │        ├─lightdm─┬─gnome-session-c─┬─gnome-session-b───3*[{gnome-ses+
        │        │        │                └─ssh-agent
        │        │        └─2*[{lightdm}]
        │        └─2*[{lightdm}]
...
вообще ему наплевать что в /etc/X11/default-display-manager прописано.. Ну что за система???
Linux -- 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64 GNU/Linux

yoric

Цитата: icarus от 29 августа 2022, 13:26:45вносить это в ~/.bashrc чем-то там идеологически неправильно, не знаю почему.
Врут, просто это для одного именно что человека, не затрагивая других.

Цитата: icarus от 29 августа 2022, 13:26:45это же для bash, а dash, например будет его читать?
Не знаю, что это за Debian-чего-то-там-шелл, может и будет.


Цитата: icarus от 29 августа 2022, 13:26:45пути устанавливает lightdm
Много их, у меня, например, xdm. Это к слову, ничего не обещает.

Цитата: icarus от 29 августа 2022, 13:26:45Ну что за система???
Потому что, это, возможно, делается не так топорно, через какой-нить *alternatives*

У меня есть /etc/bash/bashrc & /etc/environment, попробуйте через них.

icarus

Вот кстати о /etc/environment - если туда прописать PATH=$PATH:/icarix/bin то кроме этой записи никаких путей не появляется , то есть
echo $PATH
PATH=$PATH:/icarix/bin
вот прямо так и выдаёт

Цитата: yoric от 29 августа 2022, 14:38:07Потому что, это, возможно, делается не так топорно, через какой-нить *alternatives*
Тык ведь, кажется юникс-уэй сам по себе подразумеввал что всё делается через текстовые конфиги, а тут  - нет надо всё делать через, так сказать, *rectum*
И для кого или для чего тогда /etc/X11/default-display-manager ?

Где-то советовали пользовать dpkg-reconfigure - но у меня такого нет.. Целая ж, блин, утилита для того что по идее должно делаться при помощи одной только команды echo !  Unix-way, видать совсем dead...



lab@nb11:~$ cat  /etc/bash/bashrc
cat: /etc/bash/bashrc: Нет такого файла или каталога
Увы мне )

Linux -- 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64 GNU/Linux

yoric

Цитата: icarus от 29 августа 2022, 19:43:42вот прямо так и выдаёт
Попробуйте туда прописать просто /icarix/bin/ Кстати, это нарушение юниксвей, см. man hier, wiki FHS. Такие вещи надо класть в /usr/local/ И всем будет доступно без лишней суеты.

Чем вас не устраивает PATH=${HOME}/bin:$PATH? Может, сложности из-за того, что идёте против шерсти)) И не надо про ректум, если не смогли разобраться, в display-manager может пишет автомат, и ещё в пару мест одновременно. Не всё так просто как хотелось бы))

Цитата: icarus от 29 августа 2022, 19:43:42Увы мне )
А рядом посмотреть? /etc/bash.bashrc надеюсь есть? Так это он же самый.


dzhoser

#6
И для кого или для чего тогда /etc/X11/default-display-manager ?
Это для определения дисплей менеджера по умолчанию. Может использоваться для автологина.
icarus, можете кейс задачи поподробнее расписать. Для чего эта переменная в GUI?
И нужно уточнить какими переменными окружения мы оперируем глобальными или пользователевскими. Подробнее тут
Ubuntu->Linux mint->Astra Linux SE->Debian 12
Для новичков

ChubaDuba

#7
icarus, читайте про DotFiles
Все вопросы сразу отпадут.

30 августа 2022, 10:15:16
Цитата: yoric от 26 августа 2022, 15:31:25У меня в ~/.bashrc прописано...
+1
Тоже всегда туда прописываю. Кстати, настройки для Qt прописываю в /etc/profile

icarus

Цитата: yoric от 30 августа 2022, 08:46:06/etc/bash.bashrc надеюсь есть?
Точно. Это мне лучше всего подходит. 
Юниксвей нарушаю, конечно, но я же в индивидуальном порядке, тайком значит можно)))

Цитата: dzhoser от 30 августа 2022, 08:50:26И для кого или для чего тогда /etc/X11/default-display-manager ?
Это для определения дисплей менеджера по умолчанию. Может использоваться для автологина.
Пардон, не доходит до меня. А как он ещё может быть кроме как по умолчанию, я же не могу выбирать его при каждой загрузке? И как же мне тогда поменять дисплей менеджер? Я читал, что для этого есть какие-то утилиты, (которых у меня не оказалось) или вот собственно этот /etc/X11/default-display-manager.
Я в нём заменил /usr/sbin/lightdm на /usr/sbin/gdm3 ничего не изменилось. Как же тогда поменять дисплей менеджер?


Цитата: dzhoser от 30 августа 2022, 08:50:26icarus, можете кейс задачи поподробнее расписать. Для чего эта переменная в GUI?
И нужно уточнить какими переменными окружения мы оперируем глобальными или пользователевскими.

Задача практически полностью решается через /etc/bash.bashrc
Но мне хочется понять: если PATH в графике не читается ни из /etc/profile , ни из /etc/profile.d , ни из каких других мест, где эти пути явно прописаны (и в консоли читаются именно оттуда), то откуда тогда они в графике читаются, и почему так?  Это что-то новое, раньше такого не было.


Linux -- 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64 GNU/Linux

yoric

Цитата: icarus от 07 сентября 2022, 23:48:30Как же тогда поменять дисплей менеджер?
Снести lightdm и прочие, оставить только gdm3

icarus

Поставил tdm. С путями стало нормально.
Из каких конфигов lightdm брал пути остаётся загадкой. Но теперь можно махнуть рукой и сказать: ну и хрен с ним.. Как-то так.
Linux -- 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64 GNU/Linux