LINUX.ORG.RU

Как хранить общие конфигурации приложений для разных Linux?

 ,


1

1

Есть partition, доступный для разных версий OS. Конфигурации приложений для разных версий OS могут отличаться, еще может кэшироваться при первом запуске environment, скажем Xorg/Wayland. Что вообще правильно чтобы не было конфликтов когда приложение хранит свои настройки не в /home? Может альтернативные профили для разных систем? Я вообще словил глюки при использовани общего для разных версий OS xdg_user/.cache на общем разделе, но это от невнимательности.



Последнее исправление: EugeneS2 (всего исправлений: 1)

Лучший вариант — не делать так.


Пожалуй, разверну свой ответ, чтобы было понятно, почему в эту сторону не стоит даже думать:

  • Кэши: Помимо самих кэшированных файлов, многие приложения кладут рядом индексы, чтобы проще ориентироваться в бескрайней куче этого хлама. Так вот, они могут переписывать(!) индексы друг друга, и при автоочистке кэша просто не будут знать о существовании гигабайтов "заброшенных" (отсутствующих в индексе) файлов.
  • Конфиги: Приложения даже одной версии могут быть собраны по-разному, и могут по-разному реагировать на "неизвестные" опции в собственных конфигах. Одни выкинут предупреждение в лог и запустятся, другие откажутся запускаться. А некоторые могут даже перезаписать конфиг, удалив неугодную строчку.
  • Служебные файлы: Некоторые приложения помимо того, что могут редактировать собственные конфиги, могут ещё создавать много служебных конфигов (базы данных, например), которые из-за постоянной смены версий могут сильно побиться и приложение либо пересоздаст базу с нуля (что приведёт к сбросу служебных данных (что критично для того же syncthing, например), либо просто не сможет запуститься.

Про системные конфиги вообще забудь в таком сценарии.

mord0d ★★★★★
()
Последнее исправление: mord0d (всего исправлений: 1)
Ответ на: комментарий от mord0d

Конфиги: Приложения даже одной версии могут быть собраны по-разному, и могут по-разному реагировать на «неизвестные» опции в собственных конфигах.

Да, такая проблема существует, но 1) если риск осознанный, то преимущества единой конфигурации превышают риск небольших инцидентов, 2) разработчики прикладывают определённые усилия, чтобы избежать этих проблем, и 3) при двух версиях одного конфига риск человеческой ошибки многократно увеличивается.

Это нерешаемая проблема только в случае очень большого расхождения в версиях.

kaldeon ★★
()
Последнее исправление: kaldeon (всего исправлений: 2)
Ответ на: комментарий от kaldeon

Это нерешаемая проблема только в случае…

Это в первую очередь проблема. А её степень варьируется от софта, можно и поотстреливать чего не надо кому не надо.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Что вообще можно держать на общих разделах, кроме данных? Кроме VM, flatpak и прочего в том же духе? К примеру export PYTHONUSERBASE=/apps/python_apps тоже будет выстрелом в ногу?

EugeneS2
() автор топика
Ответ на: комментарий от EugeneS2

В общем-то, всё что угодно. От целых систем до отдельных конфигов. Общий раздел не значит, что общий каталог. Например, в разных каталогах могут быть хоме разных систем или пользователей. Только сам хорошо понимай, чем это грозит. А иначе это может быть выстрелом не в ногу, а в голову. Ну а в качестве брони - бэкап. При должной сноровке, он может быть конфигом или системой, которую не изменишь. Тут в соседней теме появилось новое слово - ‘immutable’.

andytux ★★★★★
()

Я у себя эту проблему решил. И вот как.

У меня Gentoo. Там можно поставить хук который будет патчить конфиги перед установкой пакета. Речь идёт о system-wide конфигах, но, поскольку я единственный пользователь на компьютере, то я могу вынести почти все настройки туда.

Работает это так: я устанавливаю пакет, он с собой несёт свой дефолтный конфиг, во время установки пакета конфиг патчится моими настройками и устанавливаетя. Бонусом идёт то, что при удалении пакета, у меня правильно чистятся конфиги. А знакомым с Gentoo скажу, что у меня нет проблем с ._cfg файлами (точнее этих файлов у меня просто нет).

То есть система - каталог с патчами конфигов, плюс хук на установку. Это подход практически не зависит от версии софта так как формат конфигов меняется очень редко. Хотя изначально создавать всё это было немного накладно.

Kroz ★★★★★
()

Я дуалбутился так иногда в две операционки, большая часть приложений переживает конфиги от чужой версии нормально, проблем не заметил. Экстримальный вариант это замутить что-то с git или home-manager.

Вообще может это XY проблема, зачем на одном компьютере несколько разных версий ОС для повседневного пользования?

Gary ★★★★★
()

Тут говорят отдельный раздел для home, предлагаю создать разных пользователей, чтобы данные не пересекались, но при этом один большой раздел без ограничений за закачку файлов. Если надо конфиги, просто перекинь из одной папки .config в другую. А скрещивать две системы в один раздел что за извращение? Ты на конфигах, кстати, особо не сэкономишь. BleachBit может 10 Гб освободить из кеша пакетов, из ненужных языков, а конфиги ну может если 5 Мб наберётся.

AZJIO
()
Последнее исправление: AZJIO (всего исправлений: 2)
Ответ на: комментарий от AZJIO

Много, не много. Смотрю конфиг vivaldi - 380мб, его кеш - почти гигабайт. У меня нет мессенджеров. На форумах частенько видел, что они отъедают сотни гигабайт.

andytux ★★★★★
()
Ответ на: комментарий от andytux

Гугл (в первой ссылке) пишет что на PaleMoon можно указать папку профиля, а для vivaldi чел попробовал силинк, но не помогло, другой предлагает –user-data-dir=«путь».

AZJIO
()
Ответ на: комментарий от andytux

Так это уже непреодолимая необходимость. Кэш можно задать размер, но если он маленький то будет качать с интернета создавая лишний поток данных. Куки можно плагином резать, но лень настраивать, у меня слишком много ресурсов, чтобы прописывать вручную. Если только посмотреть сортировку по размеру и блокировать те что жрут много.

AZJIO
()

Можно общие разделы, которые tmpfs, я бы еще сделал общий /opt для приложений без привязки к пакетному менеджеру. Данные тоже общие, не в хомяках. Все остальное отдельно.

dmitry237 ★★★★★
()
Ответ на: комментарий от EugeneS2

С питоном тоже может не взлететь: разные версии библиотек, а может даже и разные пути. Для venv, впрочем, не актуально, если смонтировано по тому же пути.

То что самодостаточное само в себе — работать будет, конечно.

mord0d ★★★★★
()

если хочетца покостылить то вот еще вариант использовать каскадное объединение aufs:

  1. общую конфигурацию подключать как нижний ридонли слой.
  2. сверху накладывать локальную фс для сохранения изменений.
  3. перед выключением компухтера каким-то образом синхроинизировать локальной копию с общей.

как минимум никогда не будет проблем с записью.
но появляется проблема синхронизации изменений.

в большинстве роутеров так собирается корневой раздел. там правда тема другая: соединить образ рута сильносжатый в squashfs c r/w локальными изменениями пользователя: можно менять конфиги и ставить свои програмки. помнится есть подобной сборки ажно цельный дистр.
так что тема рабочая.

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)

Конфигурации приложений для разных версий OS могут отличаться,

Значит нужна система управления конфигурациями (ansible, например), которая под каждую версию свой конфиг изготовит.

ugoday ★★★★★
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария