справьтесь с настройками пользователя UNIX через несколько машин

Монтирование раздела с sync опция может быть решением.

5
27.11.2012, 01:47
2 ответа

Я могу сказать Вам, что я делаю. Это может или не может быть наилучшим вариантом для Вас, в зависимости от того, какие программы у Вас есть конфигурационные файлы для, сколько изменения, там между машинами, и сколько усилия Вы предпочитаете излагать портативные конфигурационные файлы в письменной форме по сравнению с дублированием обслуживания между извращением или файлами на сайт.

Все мои конфигурационные файлы являются объектом управления версиями. Я использую CVS, который совершенно достаточен для задачи, но если Вы запускаете теперь (в противоположность спине, когда Linus не верил в управление версиями), можно использовать другую систему управления версиями. Управление версиями всегда хорошо, независимо от того, есть ли у Вас несколько контроля. Для синхронизации модификации между сайтами я фиксирую и обновляю.

Я стремлюсь записать портативные файлы. Например, мой .zshrc как предполагается, совместим со всеми версиями с тех пор 2.5 (однако, это - что-то вроде фрагмента: Я недавно не протестировал его, и в прошлый раз, когда я загрузил его на машине с zsh 2.5, это было действительно медленно). Это означает, что у меня есть много вещей как if type someprogram >/dev/null 2>/dev/null и case $ZSH_VERSION (когда я не могу избежать его). То же идет для других программ, конфигурационный файл которых является интерпретируемым языком (удар, Emacs, Vim, Fvwm, Пила-рыба, …). Я не хотел поддерживать отдельные версии этих файлов, таким образом, каждое зависимое от версии определение находится под условным оператором. Если Вы хотите подавить стычку (за счет поддержки меньшего количества комбинаций), можно сделать что-то как

case $ZSH_VERSION in
  [5-9]*|4.[2-9].*) . ~/.zshrc-42;;
  4.[01].*) . ~/.zshrc-40;;
  3.1.[6789]) . ~/.zshrc-31;;
  *) . ~/.zshrc-2;;
esac

Но существуют другие системные зависимости (например, версия ls таким образом, Вы знаете, исказить ли его к gnuls --color -b или ls --color -b или colorls -G или ls -Fb или …). Разделение всего в отдельные файлы становится утомительным довольно быстро.

Я сохраняю каталог на сайт с настройками на сайт, которые загружаются основным файлом. Например, мой .zshrc содержит строки

if [ -r ~/Here/lib/shell/local.zshrc ]; then
  . ~/Here/lib/shell/local.zshrc
fi

Here символьная ссылка на каталог, содержащий сайт-специфичные конфигурационные файлы. Это не существует на сайтах, которые я не настроил. Локальное .zshrc обычно содержит псевдонимы, псевдонимы каталога и т.п.. Большинство сайтов имеет локальное .profile это определяет несколько переменных среды. Все сайт-специфичные конфигурации находятся под той же системой управления версиями (проверяющий их всех, только некоторые КБ больше).

Несколько файлов автоматически сгенерированы make-файлом. Например, у меня есть сценарий для генерации ~/.ssh/config из общего списка хостов (псевдонимы и опции для машин, достижимых отовсюду) плюс сайт-специфичный список хостов (для машин, достижимых только в сети).

2
27.01.2020, 20:42

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

Так, если все Ваши хосты находятся в той же сети, это могло бы работать хорошо на Вас.

Иначе Вы могли настроить главный сервер и периодически rsync Ваши homedir файлы (.bash_profile, .vimrc и т.д.) к целевым узлам.

0
27.01.2020, 20:42
  • 1
    они не находятся в той же сети, разъяснил это в моем вопросе. rsync действительно не помогает проблеме контакта с несоответствиями между версиями программного обеспечения. –  xenoterracide 27.11.2012, 01:16

Теги

Похожие вопросы