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


11

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

Переважно з dropbox - оскільки я вже використовую це для синхронізації своїх файлів.

Я подумав псевдонім для apt-get installі apt-get removeкоманд, який зберігає параметри файлу (один для встановлення, один для видалення) та інший команди, який читає всі записи у файлі та виконує відповідну команду. Це реалістичний підхід?

Відповіді:


7

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


Це відмінна ідея для невеликої кількості машин. У більших умовах ви, безумовно, повинні мати лялькового майстра. Де я працюю, ми керуємо тисячами машин з ляльковими.
Ед Мане

9

Я не знаю, чи є кращий спосіб (мабуть, є), але залежно від потрібного масштабу, ви можете використати функцію пошуку можливостей для частини техніки. Це дозволяє шукати пакети, що відповідають шаблону. Отже, 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 . Тепер у кожної машини є всі пакунки, які раніше були лише на іншій.


Було б чудово включити версії ... Машина 1, можливо, стримувала версії, наприклад, і машина 2 повинна відображати це
Рондо

наприклад, здатність -F "% c% p% V" - пошук-відключення стовпців '! ~ M ~ i' | awk -F "" '{print "apt-get -y встановити" $ 2 "=" $ 3}'> aptshell.sh
Рондо

2

Це старе питання, але оскільки ніхто не сказав цього, ви, можливо, могли б щось зробити з dpkg та cron. Налаштуйте роботу cron, яка робить щось розумне за допомогою команд get-select та set-select dpkg.

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


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

Це не пропоноване рішення, вам доведеться розробити певний спосіб переконатися, що selections.dpkg оновлюється кожного разу, коли ви вносите зміни на будь-який комп'ютер ...


2

Програмний центр Ubuntu має функцію синхронізації встановлених пакетів між декількома комп'ютерами. Він використовує ваш обліковий запис Ubuntu One для збереження пакетів. Просто виберіть File > Sync Between Computers...і ввійдіть у свій обліковий запис Ubuntu One.

Синхронізація пакетів за допомогою програмного центру Ubuntu

В даний час він має якось обмежений функціонал, наприклад, він підтримує лише пакунки за замовчуванням (не ppa), і ви повинні вручну вибрати, які пакунки встановити (це може сприйматися як позитивна особливість). Детальні вказівки див. У цій статті .


-2

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

У Synaptic є спосіб зберегти список завантажень пакетів, але я не впевнений, що він обробляє випадок "все, що коли-небудь було встановлено", а не просто "це пакети, які я хочу завантажити цього разу"


-1 оскільки ваше припущення неправильне, питання описує процес впровадження того, що, використовуючи список встановлення / видалення, він просто запитує, чи є реалістична реалізація, відповідно до цього списку опису питання є лише середовищем, яке використовується для обміну списками синхронізації
Жоао Пінто
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.