Как синхронизировать Ubuntu/ программное обеспечение / конфигурации между N компьютерами с бесплатным программным обеспечением и / или без облака?

Примечание: этот вопрос не о синхронизации данных в стиле Dropbox (файлы, папки), а о синхронизации конфигураций.

Я хотел бы иметь точно такую ​​же версию Ubuntu со всем программным обеспечением, установленным и настроенным как на моем настольном ПК, так и на моем портативном ПК (и, возможно, на моем небольшом нетбуке) без использования Ubuntu Sync и с минимальными усилиями по обслуживанию (настройка один раз, бегать долго).

Вариант использования следующий:

  1. Я работаю на своем ноутбуке и делаю некоторые изменения в конфигурации программного обеспечения, например:

    • настройте vim, чтобы иметь новый плагин
    • обновите поисковый трекер / индекс поиска файла Recoll
    • настроить Thunderbird для получения дополнительной учетной записи IMAP ("запомнить пароль")
    • добавить несколько новых закладок в Firefox/Chrome
    • изменить фоновое изображение рабочего стола
    • установить новое программное обеспечение с apt-get install
    • создать и установить новое программное обеспечение с checkinstall
    • и т.п.
  2. Я делаю некоторые операции синхронизации

  3. Я переключаюсь на настольный ПК и получаю все изменения от (1) работа на настольном ПК
  4. Я работаю на своем настольном ПК и делаю некоторые изменения в конфигурации программного обеспечения, например:

    • добавить новый каталог в список каталогов, которые будут резервироваться DejaDup
    • добавить новый словарь проверки правописания в Libreoffice Writer
    • настроить программное обеспечение Terminator на использование цветных шрифтов
    • установить новый шрифт в систему Ubuntu
    • настроить Ekiga для телефонных звонков
    • и т.п.
  5. Я делаю некоторые операции синхронизации

  6. Я переключаюсь на свой ноутбук и получаю все изменения от (1) а также (4) работает на ноутбуке.

Вопрос: Какое бесплатное программное обеспечение с открытым исходным кодом я могу использовать для синхронизации систем Ubuntu, установленных программ и конфигураций обеих машин? Возможно ли это сделать без каких-либо облачных сервисов?

Дополнительный вопрос: очевидно, что настольный ПК и ноутбук имеют разные аппаратные конфигурации. Как рассматриваемое "программное обеспечение для синхронизации" работает с видеодрайверами, драйверами WLAN и их конфигурациями?

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

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

Примечание: я также подумал об использовании загрузочного USB с установленной Ubuntu (переносной Linux), но я не уверен, что видео драйверы будут тогда работать.

2 ответа

Насколько я понимаю, ваши намерения таковы:

  1. Синхронизировать установленные приложения
  2. Синхронизируй свою работу
  3. Синхронизируйте ваши точечные файлы (конфигурация)

Что бы вы ни делали, вам понадобится какой-то облачный сервис. Это не должно быть Dropbox. Я очень рекомендую Seafile. Я запускаю его на Raspberry Pi дома для своих нужд синхронизации. За их документацией легко следить.

1. Синхронизация приложений

До 13.10 это была готовая функция. Сегодня я бы использовал Puppet или другие решения для управления конфигурациями (например, cfengine или ansible). Конфигурация puppet указывает, что вы хотите установить. Вы можете использовать Seafile для синхронизации и использовать задание cron для запуска puppet.

2. Синхронизируйте свою работу

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

3. Dotfiles

Конечно, вы можете синхронизировать их с Seafile. Еще лучшим вариантом было бы поставить все ваши точечные файлы под контроль версий git. Вы можете присоединиться к толпе и разместить свои точечные файлы на github или использовать свой собственный сервер в качестве посредника. Конечно, необходимы некоторые базовые знания git.

Вы можете переместить свой домашний каталог на флешку. Именно здесь большинство программ хранят свою конфигурацию, и скомпилированные программы могут быть установлены с помощью ./configure --prefix=/home/YOURNAME/bin (или любой другой каталог). Единственное, что не работает, это автоматическая синхронизация пакетов, установленных с помощью apt-get.

Для этого установите synaptic и перед установкой этих пакетов нажмите "сохранить метки как...", что позволит вам сохранить список всех пакетов, которые будут установлены. Когда вы получаете на своем ноутбуке, запустите synaptic, а затем используйте "read маркировки", чтобы получить список файлов, которые вам нужны. Затем нажмите на чек, чтобы установить те же файлы на другом компьютере.

Это решение не будет иметь никаких проблем с драйверами, так как сама ОС не является общей, только конфигурация, пользовательские файлы и т. Д. Если вы не хотите перемещать все свои файлы на флэш-накопителе, вы можете сохранить их в другой папке. (например, /home/myfiles), с которым не нужно связывать пользователя.

Если это то, что вы хотите сделать, вы должны выполнить следующие действия:

  1. Скопируйте содержимое вашей домашней папки на флешку.
  2. Переустановите флешку в папку вашей домашней папки.
  3. Добавьте флешку в файл / etc / fstab, точка монтирования находится в вашей домашней папке.

Что это будет делать, когда ваш компьютер загружается с имеющейся флешки, Ubuntu запустится нормально, но воспринимает флешку как обычную домашнюю папку. Если компьютер жалуется на то, что флэш-диск не является загрузочным, вы можете изменить настройки BIOS, чтобы остановить загрузку с флэш-накопителя, переместив опцию флэш-накопителя вниз по списку ниже жестких дисков.

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

Вот подробный список шагов выше:

До начала:

Флешка на самом деле не готова к использованию, технически она может использоваться как есть, но это не очень хорошая идея. Большинство флешек используют fat32, который совместим с Linux, а также всем остальным, но не поддерживает большинство функций Linux, поэтому его следует изменить на ext2, можно использовать ext3/4, но журнал может повредить флешки, но это не так. Защитите файлы при отключении электроэнергии, поэтому, если вы хотите обсудить это в первую очередь, вы можете оставить комментарий.

Как примечание, Ext работает только на linux, но в любом случае это не приведет к совместному использованию настроек между компьютерами, отличными от Linux, поэтому, если вам нужно это для работы кроссплатформенно, то будут доступны только пользовательские файлы (и раздел не сможет Ext), но если это только для Linux и только для одной среды рабочего стола (на каждом компьютере, который вы используете), то это будет работать нормально. (трудно заставить разные рабочие столы обмениваться настройками даже на одном компьютере)

Откройте Дисковую Утилиту (она должна быть доступна через панель запуска), вам нужно будет ввести свой пароль. Затем выберите флешку, запишите устройство в верхнем правом углу (оно должно выглядеть как / dev / sdb или что-то подобное). Затем нажмите "Размонтировать том".

Затем нажмите "Форматировать громкость". Самое главное, что все на флешке будет стерто. В появившемся меню щелкните раскрывающийся список типов и выберите Ext2 или любую другую файловую систему, которую вы выберете (скажите, если вы выберете другую, так как тип mount и fstab должны знать). Нажмите кнопку форматирования и дождитесь ее завершения.

Шаг 1:

Это самый простой способ: вставьте флэш-диск в каждый компьютер и введите команду cp -r /home/USER /mount/FLASHDRIVE где пользователь и флэш-накопитель - это местоположения вашей домашней папки и флэш-накопителя. Это также будет работать со скрытыми файлами (которые, как я уже говорил, важны). Самое сложное в этом - перезапись файлов с одинаковыми именами, поэтому убедитесь, что последний используемый вами компьютер - это тот, с настройками которого вы хотите больше всего. Также для теста добавьте файл с именем It Works, это не должно содержать ничего.

Шаг 2: Вы, вероятно, должны пропустить этот шаг

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

Это нужно сделать только на одном компьютере, чтобы убедиться, что все работает. Бежать sudo umount /dev/sdXY где XY - устройство, которое вы получили ранее, за которым следует 1 (так, если это было /dev/sdb write /dev/sdb1). Затем выполните эти команды:

sudo shutdown now
mount -t ext2 /dev/sXY /home/USER
telinit 5

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

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

Шаг 3:

Это нужно делать при каждом запуске компьютера sudo gedit /etc/fstab, Затем переключитесь в появившийся текстовый редактор. (если вы используете KDE, вам следует заменить gedit на kate или любой другой текстовый редактор, который вы используете. Затем добавьте эту строку в конец файла, заменяя части в ALL-CAPS по мере необходимости.

/dev/sdXY /home/USER ext2 errors=remount-ro 0 1

Где XY - устройство, которое вы получили ранее, за которым следует 1 (поэтому, если это было / dev / sdb write / dev / sdb1)

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

Другие вопросы по тегам