J'ai tué par erreur un processus dpkg exécuté en arrière-plan et je voudrais réinstaller tous les paquets pour être sûr que tout va bien.
Tout d'abord, j'ai essayé d'obtenir une liste de tous les packages et de les réinstaller
dpkg --get-selections | grep -v deinstall | awk '{print $1}' > list.log
apt-get install --reinstall $(cat list.log)
Mais il y a des messages comme:
E: Couldn't configure pre-depend debconf:i386 for console-setup:i386, probably a dependency cycle.
J'ai essayé apt-get -f install
, sans succès.
En dernier recours, j'ai réinstallé tous les programmes qui ont échoué les sommes de contrôle:
dpkg -l | grep ^ii | awk '{ print $2 }' | xargs debsums -s -a
Que dois-je faire pour tout réinstaller?
Edit: Problème résolu. Le problème était autre chose (voir les commentaires). Je comprends que c'est quelque chose à éviter avec Debian.
debian
package-management
apt
alex_reader
la source
la source
Réponses:
Essayez ceci, en vous rappelant que je ne l'ai pas testé:
Sources:
man apt-get
la source
dpkg --get-selections
liste de commandes désinstalle également les packages.Au cas où, essayez de réinstaller chaque package :
Vous souhaiterez peut-être ajouter une réponse oui à toutes les questions.
la source
dpkg --get-selections > list.log
abord.list.log
est tiré de la question.Dans l' une des ressources citées par Lucas Malor, j'ai trouvé un script appelé populator qui semble être proche de la solution. Si vous définissez la variable de sélection de packages sur la liste de tous vos packages
PKGLIST=$(dpkg --get-selections | grep -v deinstall| cut -f1)
vous pouvez ensuite exécuter le script et réinstaller tous les packages, mais le système rencontrera probablement des problèmes. Il serait préférable de le tester d'abord sur une machine virtuelle.
Voici une variante du script à partir du lien ci-dessus:
Si une erreur apparaît que des packages spécifiques ne peuvent pas être réinstallés, exécutez cette commande pour réessayer:
la source
Essayez plutôt car il prendra votre sortie et en fera une ligne géante avec des espaces séparant les noms de fichiers.
dpkg --get-selections | grep -v deinstall | awk '{print $1}' > list.log awk '$1=$1' ORS=' ' list.log > newlist.log apt-get install --reinstall $(cat newlist.log)
La seule modification apportée à votre publication d'origine est l'ajout de la deuxième instruction awk, qui pourrait probablement être effectuée en ligne avec la première pour créer le fichier que vous souhaitez.
Cette modification forcera apt-get à retélécharger correctement les packages et toutes les dépendances manquantes qui n'ont pas été installées la première fois et à les réinstaller dans l'ordre.
Si nous le faisons en ligne, je pense que cela ressemblerait à ceci alors:
dpkg --get-selections | grep -v deinstall | awk '{print $1}' | awk '$1=$1' ORS=' ' > list.log
Et puis assurez-vous que le système possède les packages corrects (ou les plus récents), nettoyez le cache apt, mettez-le à jour et téléchargez à nouveau tous les fichiers (vous pouvez ignorer les deux premières étapes si vous ne voulez que ce que vous avez dans le cache réinstallé):
apt-get clean && apt-get update && apt-get install --reinstall $(cat list.log)
J'ai installé plus de 2 000 packages sur un système que j'ai mis à niveau et qui avait un blocage. L'utilisation de dpkg --configure -a a terminé l'installation (c'était dans la phase finale). J'ai ensuite exécuté cela pour que tout se réinstalle correctement.
Ou comme indiqué sur /superuser/298912/reinstall-debian- while - keeping - installed - packages- and- data :
sudo apt-get install --reinstall $(dpkg --get-selections | grep -w 'install$' | cut -f1)
Assurez-vous simplement de lancer un "init 2" avant toute réinstallation, car certains des composants de X ou de votre gestionnaire de fenêtres préféré peuvent ne pas aimer être réinstallés.
la source
$(cat file)
jetons non cotés sur n'importe quel espace blanc et donnent exactement le même résultat, que le fichier soit délimité par des retours à la ligne ou des espaces.--reinstall
pourrait aider mais a déjà été donné deux fois avant cela.Lorsque vous utilisez Aptitude, il existe un moyen simple et rapide de le faire:
sudo aptitude reinstall '~i'
qui réinstallera tous les packages actuellement installés.
la source
Lorsque vous utilisez RPM, dans le cas où vous causez une corruption dans la base de données du package, il existe une option pour reconstruire cette base de données, vous évitant ainsi d'avoir à effectuer essentiellement une réinstallation. Comme l'a souligné un utilisateur ici, cela se fait dans Debian par
dpkg --configure -a
.la source
dpkg --configure -a
est de configurer tous les packages décompressés et non configurés. Voir les pages de manuel dedpkg
etdpkg-reconfigure
et aussi debian.org/doc/manuals/debian-faq/ch-pkg_basics.fr.html