Existe-t-il un moyen de synchroniser mes installations (et mes suppressions) entre plusieurs PC?
De préférence avec dropbox - puisque je l’utilise déjà pour garder mes fichiers synchronisés.
J'ai pensé à un alias pour les commandes apt-get install
et apt-get remove
qui 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 le commander. Est-ce une approche réaliste?
Vous pouvez utiliser puppet pour créer des fichiers de configuration spécifiant les paquetages à installer, et vous pouvez utiliser Dropbox plutôt qu'un serveur puppetmaster pour synchroniser la configuration de marionnettes entre machines, ainsi qu'un travail cron pour exécuter périodiquement marionnettes et les implémenter. tout changement de configuration.
Je ne sais pas s'il existe un meilleur moyen (il y en a probablement un), mais en fonction de l'échelle dont vous avez besoin, vous pouvez utiliser la fonction de recherche d'aptitude pour une partie des machines. Il vous permet de rechercher des packages correspondant à un modèle. Donc, aptitude search '~i'
vous donne tous les paquets installés
Nous devons cependant aller plus loin. Le gestionnaire de paquets aime savoir quels paquets ont été demandés directement par vous et lesquels viennent juste d'être importés à cause d'autres paquets. Sans cette information, des choses laides peuvent arriver. Nous pouvons donc développer ce modèle de recherche pour sélectionner les packages qui ne sont pas installés automatiquement: aptitude search '!~M ~i'
La fonction de recherche est décrite de manière assez détaillée dans Manuel de référence d'Aptitude .
Maintenant, vous avez votre liste de paquets à installer. Vous pouvez formater la sortie selon les besoins en passant l'indicateur -F à cette commande, comme -F '% p' pour obtenir une liste contenant uniquement les noms de packages.
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
Copiez ensuite le fichier aptshell.sh
nouvellement créé sur machine 2 et utilisez cette commande sur machine 2 pour l'exécuter ici:
Sudo sh aptshell.sh
Répétez ensuite l'opération avec l'original machine 2 comme nouvelle machine 1 et l'original machine 1 comme nouvelle machine 2 . Maintenant, chaque machine a tous les paquets qui n'étaient auparavant que sur l'autre.
C'est une vieille question, mais comme personne ne l'a dite, vous pouvez éventuellement faire quelque chose avec dpkg et cron. Configurez 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 fichier selections.dpkg est mis à jour chaque fois que vous apportez une modification sur un ordinateur ...
Ubuntu Software Center possède une fonctionnalité permettant de synchroniser les packages installés sur plusieurs ordinateurs. Il utilise votre compte Ubuntu One pour sauvegarder les paquets. Il suffit de sélectionner File > Sync Between Computers...
et de vous connecter avec votre compte Ubuntu One.
Actuellement, il a des fonctionnalités quelque peu limitées, par exemple, il ne supporte que les paquets par défaut (pas ppa
s), et vous devez sélectionner manuellement les paquets à installer (cela peut être considéré comme une fonctionnalité positive difficile). Pour des instructions détaillées, voir cet article .