Синхронизация установки apt-get между несколькими компьютерами

Есть ли способ синхронизировать мои установки (и удаления) между несколькими ПК?

Желательно с помощью dropbox - поскольку я уже использую это для синхронизации моих файлов.

Я подумал о псевдониме для команд apt-get install и apt-get remove, который сохраняет параметры в файл (один для установки, один для удаления) и другую команду, которая считывает все записи в файле и выполняет соответствующую команду. , Это реалистичный подход?

12
задан 11 October 2012 в 17:33

5 ответов

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

7
ответ дан 11 October 2012 в 17:33

Я не знаю, есть ли лучший способ (вероятно, есть), но в зависимости от масштаба вы При необходимости вы можете использовать функцию поиска aptitude для части оборудования. Он позволяет искать пакеты, соответствующие шаблону. Итак, aptitude search '~ i' дает вам все установленные пакеты

Однако нам нужно сделать еще один шаг. Менеджер пакетов хочет знать, какие пакеты были запрошены вами напрямую, а какие были только что загружены из-за других пакетов. Без этой информации могут случиться неприятные вещи. Таким образом, мы можем расширить этот шаблон поиска, чтобы выбрать пакеты, которые не устанавливаются автоматически: aptitude search '! ~ M ~ i'

Функция поиска подробно описана в справочном руководстве Aptitude ].

Теперь у вас есть список пакетов для установки. Вы можете форматировать вывод по мере необходимости, передав этой команде флаг -F, например -F '% p', чтобы получить список только с именами пакетов.


Например, , вы могли бы запустите это на компьютере 1 :

aptitude -F "%c %p" --disable-columns search '!~M ~i' | awk -F " " '{ print "apt-get -y install " $2 }' > aptshell.sh

Затем скопируйте вновь созданный файл aptshell.sh на компьютер 2 и используйте эту команду на компьютере 2 , чтобы запустить его там:

sudo sh aptshell.sh

Затем повторите процесс, используя исходный компьютер 2 как новый компьютер 1 , а исходный компьютер 1 ] как новый станок 2 . Теперь на каждой машине есть все пакеты, которые раньше были только на другой.

11
ответ дан 11 October 2012 в 17:33

Это старый вопрос, но, поскольку никто его не сказал, вы могли бы что-то сделать с dpkg и cron. Настройте задание cron, которое делает что-то умное с помощью команд get-selections и set-selections dpkg.

dpkg --set-selections < ~/Dropbox/selections.dpkg


dpkg --get-selections > ~/Dropbox/selections.dpkg

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

2
ответ дан 11 October 2012 в 17:33

В Ubuntu Software Center предусмотрена возможность синхронизации установленных пакетов между несколькими компьютерами. Для сохранения пакетов он использует учетную запись Ubuntu One. Просто выберите Файл > Синхронизация между компьютерами... и войдите в систему с помощью учетной записи Ubuntu One.

Syncing packages with Ubuntu Software Center

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

2
ответ дан 11 October 2012 в 17:33

Вы не сможете использовать дропбокс для синхронизации установки пакетов.

Synaptic имеет способ сохранить список загрузок пакетов, но я не уверен, что он обрабатывает случай "все, что когда-либо было установлено", а не просто "это пакеты, которые я хочу загрузить на этот раз"

-2
ответ дан 11 October 2012 в 17:33

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

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