Synchronisation des installations apt-get entre plusieurs ordinateurs

11

Existe-t-il un moyen de synchroniser mes installations (et suppressions) entre plusieurs PC?

De préférence avec dropbox - car je l'utilise déjà pour garder mes fichiers synchronisés.

J'ai pensé à un alias pour les commandes apt-get installet apt-get removequi stocke les paramètres dans un fichier (un pour l'installation, un pour la suppression) et une autre commande qui lit toutes les entrées du fichier et exécute la commande respective. Est-ce une approche réaliste?

Chris
la source

Réponses:

7

Vous pouvez utiliser marionnette pour créer des fichiers de configuration spécifiant les packages à installer, et vous pouvez utiliser Dropbox plutôt qu'un serveur puppetmaster pour synchroniser la configuration de marionnette entre les machines, plus un travail cron pour exécuter périodiquement la marionnette et implémenter toutes les modifications de configuration.

Mike Scott
la source
C'est une excellente idée pour un petit nombre de machines. Dans un environnement plus vaste, vous devriez certainement avoir un marionnettiste. Là où je travaille, nous gérons des milliers de machines avec des marionnettes.
Ed Manet
9

Je ne sais pas s'il y a une meilleure façon (il y en a probablement), mais selon l'échelle dont vous avez besoin, vous pouvez utiliser la fonction de recherche d'aptitude pour une partie de la machine. Il vous permet de rechercher des packages correspondant à un modèle. Donc, aptitude search '~i'vous donne tous les packages installés

Nous devons cependant aller plus loin. Le gestionnaire de packages aime savoir quels packages ont été directement demandés par vous et lesquels viennent d'être récupérés à cause d'autres packages. Sans cette information, des choses laides peuvent arriver. Ainsi, nous pouvons développer ce modèle de recherche pour sélectionner des packages qui ne sont pas installés automatiquement:aptitude search '!~M ~i'

La fonction de recherche est traitée en détail dans le manuel de référence d'Aptitude .

Maintenant, vous avez votre liste de packages à installer. Vous pouvez formater la sortie si nécessaire en passant l'indicateur -F à cette commande, comme -F '% p' ​​pour obtenir une liste avec uniquement les noms de package.


Par exemple , vous pouvez exécuter ceci sur la machine 1 :

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

Copiez ensuite le aptshell.shfichier nouvellement créé sur la machine 2 et utilisez cette commande sur la machine 2 pour l'exécuter là-bas:

sudo sh aptshell.sh

Répétez ensuite le processus, avec la machine d' origine 2 comme nouvelle machine 1 et la machine d' origine 1 comme nouvelle machine 2 . Désormais, chaque machine possède tous les packages qui étaient auparavant uniquement sur l'autre.

Dylan McCall
la source
Ce serait formidable d'inclure des versions ... la machine 1 peut avoir retenu des versions, par exemple et la machine 2 devrait refléter cela
Rondo
par exemple, aptitude -F "% c% p% V" - recherche dans les colonnes désactivables '! ~ M ~ i' | awk -F "" '{print "apt-get -y install" $ 2 "=" $ 3}'> aptshell.sh
Rondo
2

C'est une vieille question, mais puisque personne ne l'a dit, vous pouvez éventuellement faire quelque chose avec dpkg et cron. Configurez un travail cron qui fait quelque chose d'intelligent avec les commandes get-selections et set-selections de dpkg.

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


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

Ce n'est pas une solution proposée, vous devrez trouver un moyen de vous assurer que le fichier selections.dpkg est mis à jour chaque fois que vous effectuez une modification sur l'un ou l'autre ordinateur ...

John
la source
2

Ubuntu Software Center a une fonction pour synchroniser les packages installés entre plusieurs ordinateurs. Il utilise votre compte Ubuntu One pour enregistrer les packages. Sélectionnez File > Sync Between Computers...et connectez-vous simplement avec votre compte Ubuntu One.

Synchronisation des packages avec Ubuntu Software Center

Actuellement, ses fonctionnalités sont en quelque sorte limitées, par exemple, il ne prend en charge que les packages par défaut (et non les ppas), et vous devez sélectionner manuellement les packages à installer (cela peut être considéré comme une fonctionnalité positive difficile). Pour des instructions détaillées, consultez cet article .

Amir Ali Akbari
la source
-2

Vous ne pourrez pas utiliser dropbox pour synchroniser les installations de packages.

Synaptic a un moyen d'enregistrer une liste de téléchargement de packages, mais je ne suis pas sûr qu'il gère le cas de "tout ce qui a déjà été installé" plutôt que simplement "ce sont les packages que je veux télécharger cette fois"

Broam
la source
-1 parce que votre hypothèse est incorrecte, la question décrit un processus pour implémenter que, en utilisant une liste d'installation / suppression, il demande simplement s'il y a une implémentation réaliste, par la liste déroulante de description de la question est juste le support utilisé pour échanger les listes de synchronisation
João Pinto