Стандартные переменные окружения

Прочитал про такую переменную окружения в документации по awesome, но команда env ничего похожего не возвращает.

Как как задать переменную окружения, чтобы она каждый раз инициализировалась при загрузке?

Насколько я понимаю, $XDG_CONFIG_HOME - это стандартная переменная окружения, возможно существуют еще подобные. Есть у кого-то ссылки на материалы про это?

это куски от FreeDesktop.org

это куски от FreeDesktop.org , тамже можно и документацию отрыть

Имхо это как-то связано с

Имхо это как-то связано с ConsoleKit и PolicyKit (а в общем и freedesktop.org)... Надо или костылять поддержку consolekit или курить... неслабо курить...

Нейтральность - высшее достижение сознания!

создайте скрипт с объявлением

создайте скрипт с объявлением переменной и поместите его в /etc/profile.d/

$ echo "export XDG_CONFIG_HOME=..." > /etc/profile.d/foo.sh

можно и посложнее написать, ведь это самый обычный bash-скрипт ;)
НО!!! скрипт не должен начинаться с #!/bin/bash !!!

Всем пользователям задать

Всем пользователям задать один и тот же домашний каталог?

Нет

Наверное именно для этого и была придумана такая штука как ~ (тильда).

Ardling написал(а): Как как

Ardling написал(а):
Как как задать переменную окружения, чтобы она каждый раз инициализировалась при загрузке?

Для всех пользователей - в /etc/env.d (потом # env-update). Для своего пользователя - где-то в ~/.bashrc.

a_v написал(а): Ardling

a_v написал(а):
Ardling написал(а):
Как как задать переменную окружения, чтобы она каждый раз инициализировалась при загрузке?

Для всех пользователей - в /etc/env.d (потом # env-update). Для своего пользователя - где-то в ~/.bashrc.

+100
и не надо "лазать гразными лапами" в profile.d.
Для юзеров есть ~/.bash* vs. ~/.profile, для админов env.d.

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

А поподробнее?

slepnoga написал(а):
Для юзеров есть ~/.bash* vs. ~/.profile, для админов env.d.

Есть где-то формальное описание что должно лежать в этих папках? Хочется иметь некоторое понимание, кто или пользуется и как оно все работает.

Не давайте пожалуйста ссылок на гугол, они к меня уже есть, и если хотите отправить меня читать маны, то указывайте их названия. Заранее благодарен.

А не могли бы вы рассказать,

А не могли бы вы рассказать, как определить эту переменную в env.d? Создаю файл 95xdg-config, туда пихаю XDG_CONFIG_HOME="${HOME}/.config", а переменная ${HOME} не обрабатывается и в итоге ничего не работает. ЧЯДНТ?

кстати да

Тоже интересует этот вопрос - как сделать так, чтобы переменные в /etc/env.d раскрывались? Может кто подскажет?
Я пытался для Wine пеоеопределить переменную WINEPREFIX, и переменная $USER не раскрывается.

.

alex__ написал(а):
Тоже интересует этот вопрос - как сделать так, чтобы переменные в /etc/env.d раскрывались? Может кто подскажет?
Я пытался для Wine пеоеопределить переменную WINEPREFIX, и переменная $USER не раскрывается.

env-update (да и вообще Хэндбук читать) кто делать будетЪ?

:wq
--
Live free or die

Не тыкните ли в место в

Не тыкните ли в место в хандбуке, где рассказывается, как подставлять переменные в переменные в env.d? man env-update читал.

?

5.b. Defining Variables Globally
Occasionally you might be asked to set a certain environment variable system-wide. As an example we take the http_proxy variable. Instead of messing about with /etc/profile, you can now just create a file (/etc/env.d/99local) and enter your definition(s) in it
5.c. Defining Variables Locally
If you want to define an environment variable locally, you should use ~/.bashrc or ~/.bash_profile

# cat /etc/profile
...
# Load environment settings from profile.env, which is created by
# env-update from the files in /etc/env.d
if [ -e /etc/profile.env ] ; then
        . /etc/profile.env
fi

# You should override these in your ~/.bashrc (or equivalent) for per-user
# settings.  For system defaults, you can add a new file in /etc/profile.d/.
export EDITOR=${EDITOR:-/bin/nano}
...
# cat /etc/profile.env
export VAR='string'

обратите внимание, что в /etc/profile есть строка
export EDITOR=${EDITOR:-/bin/nano}
но если вы в /etc/env.d/99local напишете
export EDITOR=${EDITOR:-/bin/nano}
и сделаете env-update, то в /etc/profile.env попадёт
export EDITOR='${EDITOR:-/bin/nano}'
а это не одно и то же.

Если кратко - /etc/env.d/ вы не сможете вставлять переменные в переменные.
Ваш случай - "5.c. Defining Variables Locally"

См также http://bugs.gentoo.org/show_bug.cgi?id=4854

а эта строка - это просто подпись

Спасибо огромное :)

Спасибо огромное :)

Ardling написал(а): Насколько

Ardling написал(а):
Насколько я понимаю, $XDG_CONFIG_HOME - это стандартная переменная окружения, возможно существуют еще подобные.

Насколько я понимаю, не совсем. Это переменная, которую можно указать, чтоб наплевать на умолчальное поведение — использование $HOME/.config

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

krigstask написал(а): Это

krigstask написал(а):
Это переменная, которую можно указать, чтоб наплевать на умолчальное поведение — использование $HOME/.config

Есть некоторое сомнение на этот счет. Дело в том, что я с этой переменной столкнулся немного в другом контексте. awesome по умолчанию хранит свой конфиг в папке $XDG_CONFIG_HOME/awesome. Но у меня переменная $XDG_CONFIG_HOME не определена, и паки awesome я нигде не нашел.

А еще мне не нравится, что все программы хранят свои конфиги прямо в домашнем каталоге, это мешает искать если что-то потерялось, да и перенести настройки всех программ (без данных) просто скопировав одну папочку удобнее. Возможно изменение этой переменной как раз и поможет внести некоторый порядок. Еще возможно есть другие подобные стандартные переменные, которые могут помочь упорядочить программы. Если кто-то знает о таких, то отпишитесь пожалуйста.

Ardling

Ardling написал(а):
krigstask написал(а):
Это переменная, которую можно указать, чтоб наплевать на умолчальное поведение — использование $HOME/.config

Есть некоторое сомнение на этот счет. Дело в том, что я с этой переменной столкнулся немного в другом контексте. awesome по умолчанию хранит свой конфиг в папке $XDG_CONFIG_HOME/awesome. Но у меня переменная $XDG_CONFIG_HOME не определена, и паки awesome я нигде не нашел.

Ещё раз перечитай моё сообщение (-:Е
awesome не хранит свой конфиг в $XDG_CONFIG_HOME/awesome, он его оттуда берёт. Если она явно не определена (как и у меня), то конфиг берётся из $HOME/.config/awesome. А если нет такового, то берёт из $XDG_CONFIG_DIRS/awesome.

Цитата:
А еще мне не нравится, что все программы хранят свои конфиги прямо в домашнем каталоге, это мешает искать если что-то потерялось, да и перенести настройки всех программ (без данных) просто скопировав одну папочку удобнее. Возможно изменение этой переменной как раз и поможет внести некоторый порядок.

Это вряд ли. Программы, уважающие эту переменную, и так кладут свои конфиги в $HOME/.config/ (awesome, deluge, eric, transmission…).

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

krigstask

krigstask написал(а):
awesome не хранит свой конфиг в $XDG_CONFIG_HOME/awesome, он его оттуда берёт. Если она явно не определена (как и у меня), то конфиг берётся из $HOME/.config/awesome. А если нет такового, то берёт из $XDG_CONFIG_DIRS/awesome.

$XDG_CONFIG_DIRS не определен, но в .config директории awesome нет. И в ~ ее нет. Отсюда вопрос, как отредактировать конфиг?

mkdir -p ~/.config/awesome/

mkdir -p ~/.config/awesome/ && cp /etc/xdg/awesome/rc.lua ~/.config/awesome/ && vim ~/.config/awesome/rc.lua

Цитата:
$XDG_CONFIG_DIRS не определен

% grep XDG_CONFIG_DIRS /etc/env.d/* 
/etc/env.d/90xdg-data-base:XDG_CONFIG_DIRS="/etc/xdg"
% equery b /etc/env.d/90xdg-data-base
x11-misc/xdg-utils-1.0.2-r3 (/etc/env.d/90xdg-data-base)

Значит, если она не определена, /etc/xdg берётся

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Файл

Файл /home/slava/.config/user-dirs.dirs

# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
# 
XDG_DESKTOP_DIR="$HOME/Desktop/"
XDG_PICTURES_DIR="$HOME/Рисунки/"
XDG_VIDEOS_DIR="$HOME/Video/"
XDG_MUSIC_DIR="$HOME/Music"
XDG_DOCUMENTS_DIR="$HOME/"
XDG_TEMPLATES_DIR="$HOME/.local/share/templates/"
XDG_DOWNLOAD_DIR="$HOME/"
XDG_PUBLICSHARE_DIR="$HOME/"

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".