Есть ли способ синхронизировать мои установки (и удаления) между несколькими ПК?
Желательно с помощью dropbox - поскольку я уже использую это для синхронизации моих файлов.
Я подумал о псевдониме для команд apt-get install
и apt-get remove
, который сохраняет параметры в файл (один для установки, один для удаления) и другую команду, которая считывает все записи в файле и выполняет соответствующую команду. , Это реалистичный подход?
Вы можете использовать puppet для создания конфигурационных файлов, указывая, какие пакеты должны быть установлены, и вы можете использовать Dropbox вместо сервера мастера марионеток для синхронизации кукольной конфигурации между машинами, плюс задание cron для периодического запуска марионеток и реализации любых изменений конфигурации.
Я не знаю, есть ли лучший способ (вероятно, есть), но в зависимости от масштаба вы При необходимости вы можете использовать функцию поиска 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 . Теперь на каждой машине есть все пакеты, которые раньше были только на другой.
Это старый вопрос, но, поскольку никто его не сказал, вы могли бы что-то сделать с dpkg и cron. Настройте задание cron, которое делает что-то умное с помощью команд get-selections и set-selections dpkg.
dpkg --set-selections < ~/Dropbox/selections.dpkg
dpkg --get-selections > ~/Dropbox/selections.dpkg
Это не предлагаемое решение, вам нужно будет каким-то образом убедиться, что файл selections.dpkg обновляется всякий раз, когда вы вносите изменения на любом компьютере ...
В Ubuntu Software Center предусмотрена возможность синхронизации установленных пакетов между несколькими компьютерами. Для сохранения пакетов он использует учетную запись Ubuntu One. Просто выберите Файл > Синхронизация между компьютерами...
и войдите в систему с помощью учетной записи Ubuntu One.
В настоящее время он имеет ограниченную функциональность, например, поддерживает только пакеты по умолчанию (не ppa
s), и вы должны вручную выбрать, какие пакеты установить (это можно рассматривать как положительный момент). Для получения подробных инструкций обратитесь к этой статье .
Вы не сможете использовать дропбокс для синхронизации установки пакетов.
Synaptic имеет способ сохранить список загрузок пакетов, но я не уверен, что он обрабатывает случай "все, что когда-либо было установлено", а не просто "это пакеты, которые я хочу загрузить на этот раз"