Добавьте $ HOME / bin в PATH для одного пользователя в Debian Wheezy с LXDE

8

В Ubuntu, если $ HOME / bin существует, он будет автоматически добавлен в PATH, но в Debian этого не происходит.

Как мне постоянно добавить его в PATH для данного пользователя, но только для него, а не для всех пользователей? Я хочу, чтобы он действовал и для программ с графическим интерфейсом, а не только для терминала.

Редактировать: Чтобы уточнить, я использую LXDE, и из менеджера входа в систему, то есть нет startx. .bashrcне работает для программ, которые я запускаю вне терминала.

sashoalm
источник
Примечание. Поскольку вы говорите от третьего лица, существует вероятность, что пользователь - это не вы. Тогда считается грубым изменять его настройки самостоятельно (если, конечно, он не задал это явно).
fkraiem
Не волнуйтесь, пользователь - это я.
sashoalm

Ответы:

8

Оказалось, что lightdm(теперь используется менеджер входа в систему LXDE) не источник ~/.profile.

То, что работало для меня, создавало ~/.xsessionrc:

if [ -d $HOME/bin ]; then
    export PATH="$HOME/bin:$PATH"
fi

Вы также можете добавить это, /etc/X11/Xsession.d/90userbinpathесли хотите, чтобы все пользователи извлекли выгоду из этого (каждый пользователь извлек бы выгоду из своего собственного пути) с общесистемной конфигурацией.

sashoalm
источник
2
Или вы можете получить весь файл .profile (который может сделать больше, чем просто установить $ PATH):if [ -f $HOME/.profile ]; then source $HOME/.profile; fi
basic6
1

Вы можете попробовать / etc / profile.

nano /etc/profile

Будет два вида: PATHпуть для пользователя root и путь для обычных пользователей, не являющийся пользователем root. Таким образом, вы просто добавляете к корневым или обычным пользователям / $ HOME / bin в конце строки Ctrl+Oи Ctrl+Xвсе готово :). Помните, что вам нужен root для выполнения этой операции.

Или вы можете пойти к себе домой и посмотреть там .profile.

cd /home/YOURUSERNAME
nano .profile

В Debian это тоже происходит автоматически (добавьте корзину в путь). Сделайте, echo $HOMEчтобы увидеть, что такое дом.

Рафаэль Кампос Нунес
источник
Это будет глобальным для всех пользователей, я специально указал «для одного пользователя». Не лучше ли использовать ~/.profileвместо этого?
sashoalm
@sashoalm, отредактировано :)
Рафаэль Кампос Нунес
ОК, но .profile, похоже, не выполняется вообще. Это правильный файл для использования? echo $PATHне показывает мои изменения даже из терминала. У меня нет ~/.bash_profileили ~/.bash_login.
sashoalm
Попробуйте выйти из сеанса и снова войти в систему, ну, я не знаю, правильный ли это файл для использования, но у каждого пользователя есть такой, так что это будет ответом на ваш вопрос ...
Rafael Campos Nunes
Да, я сделал это, но, похоже, его совсем не читают. Я разместил новый вопрос об этом - unix.stackexchange.com/questions/131320/…
sashoalm
-1

В вашем файле ~ / .bashrc добавьте следующую строку:

PATH=$PATH:$HOME/bin

Сохраните его, а затем отправьте файл для вступления в силу

source ~/.bashrc

Вы можете проверить, запустив

echo $PATH

Для запуска программ с графическим интерфейсом из окна «Выполнить» (Alt + F2) создайте новый пустой файл .xsession в вашем домашнем каталоге и добавьте следующие строки:

#!/bin/bash -l
PATH=$PATH:$HOME/bin

Сохраните его и перезагрузите сеанс LXDE. Я проверил, переместив xterm в каталог $ HOME / bin и вызвав его с помощью Alt + F2, и успешно запустился.

cioby23
источник
Это будет работать для сессий X / программ с графическим интерфейсом, а не только для терминала, верно?
sashoalm
Это будет работать как для графического интерфейса, так и для терминала.
cioby23
Хорошо, я думал, что программы с графическим интерфейсом не наследуются от .bashrc, если они не запущены из терминала.
sashoalm
Остерегайтесь, вы можете добавить $HOME/binнесколько раз в конец $ PATH следующим образом: unix.stackexchange.com/questions/124444/…
goldilocks
ОК, .bashrc не работает - кажется, он работает только для программ, с которых я запускаю xterm, но не для программ, которые я использую «Alt + F2», то есть из LXDE (DE, который я использую). DE использует менеджер входа, а не startx.
sashoalm