Руководящие пользовательские конфигурационные файлы через несколько компьютеров

Я экспортировал бы предпочтение прежде, чем изменить цвет, и затем после.

Тот путь, Вы были бы в состоянии изолировать определенные правила предпочтительного файла затмения в один меньший файл и:

  • проверка, если некоторые цвета, не восстановленные, действительно представлены правилом
  • импорт меньшего предпочтения, имеет любой эффект на ранее неизменные настройки.

Такая стратегия может быть далее усовершенствована в несколько маленьких файлов настроек (один для Java, один для JSP, HTML, CSS...), чтобы к лучшему анализу потенциальных побочных эффектов при переимпорте тех настроек.

36
задан Peter 15 September 2009 в 06:46
поделиться

9 ответов

На данный момент я использую клонированный репозиторий git. Чтобы упростить задачу, единственный файл, который должен различаться на разных машинах, - это .bashrc . Хорошо, если может быть только одна версия этого файла, которая по-разному реагирует на разных машинах. Таким образом, в моем .bashrc :

if [ $(hostname) == 'host1' ]; then
     # things to do differently on host1.
elif [ $(hostname) == 'host2' ]; then
     # things to do differently on host2.
fi

здесь явно есть некоторые ограничения (например, для .vimrc или других конфигурационных файлов, требующих настройки, потребуется другой метод), но он работает довольно хорошо.

14
ответ дан 27 November 2019 в 06:08
поделиться

Если вы используете git, вы можете определить репозиторий "origin" как главный; а затем сделайте клон на каждом компьютере, на котором вы работаете. вы можете использовать ветку для каждого компьютера, чтобы иметь свой набор файлов конфигурации.

3
ответ дан 27 November 2019 в 06:08
поделиться

git с ветками для пользовательских компьютеров, с автоматической синхронизацией при входе в систему, мне кажется хорошим решением.

Я использовал etckeeper для управления версиями конфигураций, но на самом деле я никогда не расширялся до пользовательских конфигураций.

1
ответ дан 27 November 2019 в 06:08
поделиться

Я храню папку по адресу ~ / config / , который является репозиторием bzr. Я подталкиваю / тяну репозиторий между моими компьютерами, чтобы синхронизировать его. У меня есть установочный сценарий, который я использую для создания символических ссылок на мой домашний каталог:

#! /bin/sh
# link all files to the home directory, asking about overwrites
cd `dirname $0`
SCRIPT_DIR=`pwd`
SCRIPT_NAME=`basename $0`
FILES=`bzr ls --versioned --non-recursive`

cd $HOME
for FILE in $FILES; do
    ln --symbolic --interactive $SCRIPT_DIR/$FILE
done
rm $TARGET_DIR/$SCRIPT_NAME

Если вы хотите использовать git вместо bzr, вы можете вместо этого использовать:

FILES=`git ls-tree --name-only HEAD`

(мне пришлось попросить SO , чтобы выясни это)

РЕДАКТИРОВАТЬ: Я больше этим не занимаюсь,

17
ответ дан 27 November 2019 в 06:08
поделиться

С CfEngine вы можете управлять файлами конфигурации на разных машинах, а также делать многое другое! Кривая обучения, возможно, немного высока, но оно того стоит, если вам нужно регулярно управлять / обновлять / поддерживать пул компьютеров, на которых работает Linux.

3
ответ дан 27 November 2019 в 06:08
поделиться

Легко. Для этого используйте DropBox: http://www.nixtutor.com/linux/sync-config-files-across-multiple-computers-with-dropbox/

2
ответ дан 27 November 2019 в 06:08
поделиться

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

См. http://github.com/bstpierre/dotfiles

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

Перед использованием любого подобного инструмента убедитесь, что у вас есть хорошие резервные копии!

1
ответ дан 27 November 2019 в 06:08
поделиться

Я использую резерв в аналогичной ситуации. Slack позволяет определять роли / подроли, поэтому вы можете управлять файлами с небольшими вариациями через клонированный файл или патч. Затем в моем развертывании каталог slack управляется git.

2
ответ дан 27 November 2019 в 06:08
поделиться

Я думаю, что то, что вы хотите, может быть похоже на то, что я делал ...

Создайте домашний каталог с именем .host_configs / . Это версия под контролем. Или в моем случае он находится в специальной папке на центральном компьютере, я скопирую его на любой новой машине. Внутри него создайте папку для каждого хоста, для которого вам нужны разные конфигурации. Папка для каждого хоста должна быть названа по короткому имени хоста для этого компьютера. Итак, в вашем репозитории git у вас есть:

.host_configs/
           homecomp1/
           girlfriendcomp1/
           workcomp1/
           workcomp2/

В папку для каждого хоста поместите файлы конфигурации .vimrc, .irbrc и т. Д. Для этого конкретного поля. And also, in each host folder make a file called .[SHORT_HOST]_rc. For instance, if your machine is name "sane" have a file named .sane_rc ... This file will contain the lines that would normally be in .bashrc that are unique to that host. For instance, if it's a mac and it needs alias ls='ls -GF' instead of alias ls='ls --color=auto' which works for most nix machines for ls with colors, put that line in the .[SHORT_HOST]_rc for that machine, along with whatever special functions, declarations, etc, that would normally go into the .bashrc or .profile etc. (or .zshrc, .tschrc, as the case may be). So the version controlled ~/.host_configs/ folder looks like:

.host_configs/
           homecomp1/
                    .homecomp1_rc        #special shell configs for this hostname
                    .vimrc               #you know the rest
                    .irbrc
                    .Xresources
           girlfriendcomp1/
                    .girlfriendcomp1_rc
                    .vimrc
                    .bubblebathrc
           workcomp1/
                    .workcomp1_rc
                    .bashrc
                    .vimrc
           workcomp2/
                    .workcomp2_rc
                    .bashrc
                    .vimrc

I use all the same barebones $HOME/.bashrc (or ~/.tshrc etc) on all of my machines. I just take the basic one that comes with the distro in question and move all of the host-specific configuration into the .host-configs/[SHORT_HOST]/.[SHORT_HOST]_rc file.

Put this at the bottom (of $HOME/.bashrc):

export SHORT_HOST="sane"
for file in `find ~/.host_configs/$SHORT_HOST -name ".*"`
do
ln -s $file `basename $file`
done
source ~/`.$SHORT_HOST`_rc

(Finds all of the dot-files for the host and makes a symlink in home to the~/.host_configs/foo_host folder). Ваши точечные файлы находятся в обычном месте, но они символически связаны с системой контроля версий. Вышеупомянутое также приводит все строки из вашего файла [$ SHORT_HOST] _rc в .bashrc

. Вы можете выполнить фиксацию обратно в git из папки ~ / .host_configs / , когда вы есть изменения.

Вот как это выглядит в оболочке, и это, вероятно, все, что вам нужно, но если вам нужны другие функции, я бы написал что-то, что использует те же принципы (получение внешнего файла .rc в .bashrc и символическая ссылка на все файлы конфигурации в структурированную папку управления версиями) в нечто более универсальное / менее уродливое, чем оболочка. Таким образом, вместо указанного выше в вашем .bashrc может быть:

export SHORT_HOST="sane"
ruby ~/import_conf.rb $SHORT_HOST

... и напишите свой import_conf.rb для более сложного управления конфигурацией, например, размещения определенного файла конфигурации в каком-либо каталоге помимо home, или обработка папки конфигурации, такой как .ssh /, .subversion / и т. д. Это то, что я делаю, это довольно элегантно для меня, но могут быть лучшие решения. Dropbox с некоторыми креативными символическими ссылками также является отличной идеей, хотя вы полагаетесь на стороннюю организацию и вам нужно работать в графической среде. Также обратите внимание, что есть несоответствия между тем, что вы можете делать с символическими ссылками + dropbox в Linux и ярлыками + dropbox в Windows, если вы реализуете что-то, что хочет играть с Windows.

1
ответ дан 27 November 2019 в 06:08
поделиться
Другие вопросы по тегам:

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