12 votes

Synchronisation des installations apt-get entre plusieurs ordinateurs

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

De préférence avec Dropbox, puisque je l'utilise déjà pour synchroniser mes fichiers.

J'ai pensé à un alias pour le apt-get install y apt-get remove des commandes qui enregistrent les paramètres dans un fichier (une pour l'installation, une pour la suppression) et une autre commande qui lit toutes les entrées du fichier et exécute la commande correspondante. S'agit-il d'une approche réaliste ?

11voto

Argelbargel Points 1310

Je ne sais pas s'il existe un meilleur moyen (il y en a probablement un), mais selon l'échelle dont vous avez besoin, vous pourriez utiliser la fonction de recherche d'aptitude pour une partie de la machinerie. Elle vous permet de rechercher les paquets correspondant à un motif. Ainsi, aptitude search '~i' vous donne tous les paquets installés

Mais nous devons aller plus loin. Le gestionnaire de paquets aime savoir quels paquets ont été directement demandés par vous et quels paquets ont été simplement ajoutés à cause d'autres paquets. Sans cette information, de vilaines choses peuvent se produire. Nous pouvons donc étendre ce modèle de recherche pour sélectionner les paquets qui ne sont pas automatiquement installés : aptitude search '!~M ~i'

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

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


Par exemple vous pouvez l'exécuter sur machine 1 :

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

Ensuite, copiez le fichier nouvellement créé aptshell.sh à l'adresse suivante machine 2 et et utiliser cette commande sur machine 2 pour l'exécuter là :

sudo sh aptshell.sh

Ensuite, répétez le processus, avec l'original machine 2 comme le nouveau machine 1 et l'original machine 1 comme le nouveau machine 2 . Maintenant, chaque machine a tous les paquets qui étaient auparavant uniquement sur l'autre.

7voto

lazy1 Points 3691

Vous pourriez utiliser Marionnette pour créer des fichiers de configuration spécifiant les paquets à installer, et vous pouvez utiliser Dropbox plutôt qu'un serveur Puppetmaster pour synchroniser la configuration de Puppet entre les machines, ainsi qu'une tâche cron pour exécuter périodiquement Puppet et mettre en œuvre les changements de configuration.

2voto

John Points 245

C'est une vieille question, mais puisque personne ne l'a dit, vous pourriez peut-être faire quelque chose avec dpkg et cron. Mettez en place une tâche 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 selections.dpkg est mis à jour chaque fois que vous faites un changement sur l'un ou l'autre ordinateur...

2voto

Amir Ali Akbari Points 399

Le Centre logiciel Ubuntu dispose d'une fonctionnalité permettant de synchroniser les paquets installés sur plusieurs ordinateurs. Elle utilise votre compte Ubuntu One pour enregistrer les paquets. Il suffit de sélectionner File > Sync Between Computers... et connectez-vous avec votre compte Ubuntu One.

Syncing packages with Ubuntu Software Center

Actuellement, ses fonctionnalités sont quelque peu limitées, par exemple il ne prend en charge que les paquets par défaut (pas les ppa ), et vous devez sélectionner manuellement les paquets à installer (ce qui peut être considéré comme une caractéristique positive difficile). Pour des instructions détaillées, voir cet article .

-2voto

Swinders Points 1042

Vous ne pourrez pas utiliser Dropbox pour synchroniser les installations de paquets.

Synaptic permet de sauvegarder une liste de téléchargement de paquets, 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 paquets que je veux télécharger cette fois-ci".

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X