muhas 15.03.2010 15:02
Я рекомендую — Все пользовательский конфиги в одном каталоге
Не так давно на welinux в комментариях к одному из постов состоялась беседа о том что хорошо бы хранить все конфиги не в ~/ а в определенном каталоге. Мало того что кому-то это хорошо так ещё и стандарт такой имеется. Согласно этому стандарту все пользовательские настройки должны храниться в переменной $XDG_CONFIG_HOME, а если она не установлена то в каталоге ~/.config.Однако, по разным причинам, многими программами этот стандарт не поддерживается.
На помощь таким программам приходит LD_PRELOAD-able библиотека libetc с помощью которой любая попытка открыть dot-файл (файл с точкой в начале) перенаправляется в $XDG_CONFIG_HOME т.е. конфиги всех программ можно хранить в папке определенной стандартом. Библиотека достаточно старая, и я удивлен почему о ней знает не так много людей
Для использования достаточно экспортировать несколько переменных
1 |
export LD_PRELOAD=libetc.so.0 # загружаем библиотеку
|
После сих нехитрых манипуляций пути будут транслироваться из ~/.* в $XDG_CONFIG_HOME/* (~/.config/*)
Более подробно о использовании библиотеки можно прочитать в её README файле
Домашняя страничка libetc
Заметки аскетичного гика

+ 1 -
ваще не пойму, как народ догадался тупо в ~/ все хламить..
Не знаю, почему вам это не нравится, а по мне так вполне удобно. Скрытые файлы глаза не мозолят, зато если надо поредактировать - писать на пару символов меньше
некоторых вот линуксовое расположения софта беспокоит (привет, gobolinux!)
так что каждому свое ^_^
так что каждому свое ^_^
Ага, вместо решения реальных проблем все тянутся переписывать какие-никакие, а стандарты... Знаю, сам такой. Правда, не уверен, что в FHS упомянуто, где именно внутри хомяка все это барахло должно валяться =)
в FHS вообще многого не пишется. а xdg не только о расположении конфигов, а ещё о пользовательском share (загляни в ~/.local/), менюхах и прочем...
а все ~/.* файлы сами в ~/.config/* перемеятятся, или придется вручную перекидывать?
вот попробовал на ~/.Skype
перенес ее в ~/.config/
скайп при запуске предлагает завести новую учетную запись. че я не так сделал?
перенес ее в ~/.config/
скайп при запуске предлагает завести новую учетную запись. че я не так сделал?
~/.config/Skype
т.е переносить без точки.
хотя может сама либа так работает
т.е переносить без точки.
хотя может сама либа так работает
в README написано, что либа не работает со статически собранными программами
И кто там орал что XDG стандарты не нужны? Со мной же кажется кто-то спорил, или может были ещё споры? ?
ну пусть буду я ^_^
я всегда утверждал и буду утверждать что они могут быть кому-то действительно не нужны =) (правда в основном про XDG_CONFIG_HOME)
ведь если я хочу в ~/ хранить то XDG_CONFIG_HOME=$HOME но тогда это будут уже не дотфайлы, а обычные и сие есть непростительная глупость
я всегда утверждал и буду утверждать что они могут быть кому-то действительно не нужны =) (правда в основном про XDG_CONFIG_HOME)
ведь если я хочу в ~/ хранить то XDG_CONFIG_HOME=$HOME но тогда это будут уже не дотфайлы, а обычные и сие есть непростительная глупость
В чём же глупость? Мне лично, куда проще когда в ~/.config. Конце концов можно cd .config сделать, и будет заметно удобнее :)
В чём же глупость?
в том что у тебя в ~/.config не скрытые файлы а при XDG_CONFIG_HOME=$HOME в хомяке будут конфиги не скрытые - а это как-то некузяво
А при загрузке сразу на всю систему её можно повесить? Или хотя бы на своего юзера, а не только на запускаемое из терминала.
ну в логин шеле экспортируй и всё после логина пойдет как надо. а на всех тоже можно где-нить в rc.local прописать если
логично. я просто по привычке всё что до логина в rc.local пихаю =)
А можно глупый вопрос? Как заполучить эту библиотеку, куда её положить? Есть ли готовый пакетик для Убунты?
для убунты не знаю, длф archlinux yaourt -S libetc и дальше export LD_PRELOAD...
Сделал дебиан пакет для этой либы (по ссылке пост в моём блоге с выложенным пакетом). Это первый деб-пакет в моей жизни, так что больно не бейте в случае чего =)
Если есть желание, может положить себе на хостинг amd64 deb пакеты:
- libetc_0.4-1_amd64.deb
- libetc-dev_0.4-1_amd64.deb
dev пакет убрал. Ненужен он нафик. И не прописывал никаких пост инсталляционных скриптов. Вот :)
также как и все =)
ты попробуй, небойся, ничего страшного не произойдет. если опасаешся то просто в консоли експорт LD_PRELOAD сделай, а потом с консоли этой и запускай для проверки а с других всё по старому будет (если не потомки этой)
ты попробуй, небойся, ничего страшного не произойдет. если опасаешся то просто в консоли експорт LD_PRELOAD сделай, а потом с консоли этой и запускай для проверки а с других всё по старому будет (если не потомки этой)