Avez-vous déjà rompu apt? Pour les professionnels Linux chevronnés, c'est assez courant (environ tous les six mois) barboteuse apt. Si vous connaissez certaines commandes dans dpkg, Vous pouvez souvent résoudre le problème plus facilement! Trouver comment.
Quels sont ajuster et dpkg?
Si vous utilisez une distribution basée sur Debian comme Ubuntu ou Mint, votre ordinateur utilise ajuster gérer les colis. Apt significa Outil d'emballage avancé, qui vous permet d'installer, désinstaller, purger et gérer les paquets Debian.
en même temps apt
(utilisé sur la ligne de commande), votre ordinateur dispose probablement d'un gestionnaire de packages de bureau de niveau supérieur / général, qui utilise simplement apt
, ou peut-etre dpkg
, au fond.
Le gestionnaire de paquets Debian dpkg
est une alternative à la gestion des paquets sur les installations basées sur Debian. C'est un niveau beaucoup plus bas que apt
, ce qui vous donne plus de liberté, mais il présente également un plus grand risque de casser des choses.
C'est pourquoi (sauf si vous êtes un ingénieur DevOps expérimenté) je vous recommande d'utiliser apt
à tout moment, l'augmenter avec dpkg
dès que j'ai des problèmes.
Adopter cette approche étape par étape vous offre le meilleur des deux mondes.: la stabilité et la facilité d'utilisation du apt
directeur chargé d'emballage, avec la puissance et la granularité de dpkg
gestionnaire de paquets Debian, une fois que vous en avez besoin.
Disons, par exemple, vous avez un paquet que vous venez d'installer, qui a fini par briser le apt
. O, peut-être, l'installation d'un paquet a été accidentellement interrompue.
Quelle que soit la cause, apt
est maintenant considéré comme cassé, et vous avez déjà essayé des choses comme sudo apt update --fix-missing
et sudo apt install --fix-broken
en vain. Si c'est ainsi, ensuite …
Bienvenue à dpkg
Quand votre apt
c'est cassé, ce n'est pas drôle. Oui c'est Vraiment à l'intérieur, c'est encore moins marrant. Même si quelqu'un sait ce qu'il fait, parfois il faut un certain niveau d'art, Et certainement, capacité, réparer un système d'emballage cassé.
Le terme “art” est tout à fait applicable, puisque vous avez une idée ou un sentiment pendant que vous suivez diverses étapes de dépannage, surtout si tu l'as fait plusieurs fois, si quelque chose fonctionnera ou non lors d'un redémarrage.
Le risque est toujours que le système d'emballage soit tellement endommagé que, si tu redémarre, votre instance Linux peut ne pas réapparaître et un dépannage supplémentaire et potentiellement encore plus complexe est requis.
Je voudrais dire à ce stade que tout cela peut être facilement évité en exécutant quelques commandes simples, mais malheureusement, Ce n'est pas le cas. Le fait est que plus vous en savez, plus il sera facile de le réparer et plus vous serez sûr de savoir si vous êtes prêt à redémarrer le système ou non.
C'est là que nous arrivons dpkg
. Les dpkg
Le programme nous permet un contrôle beaucoup plus granulaire sur tous les packages installés, Et même quand il y a un plus grand risque que quelque chose tourne mal, il y a aussi beaucoup plus de pouvoir pour changer un système exactement comme nous le voulons.. plongeons.
Si vous êtes intéressé par Linux en général, vous pouvez également lire notre série en trois parties Bash Automation & Script.
Basique dpkg ouvrez l'application Watch sur votre iPhone et ouvrez l'écran
Nous pouvons voir les paquets aujourd’hui dans le système simplement en exécutant dpkg -l
. Comme le résultat est susceptible d’être très détaillé (même lorsqu’il est régulièrement paginé), vous pouvez utiliser un grep
pour limiter les résultats.
dpkg -l | tête -n5 && dpkg -l | grep 'gnome-calculator'
dpkg -l | grep 'gnome-calculateur'
La première commande est en fait une combinaison de deux commandes (séparé par &&
, ce qui signifie littéralement: n'exécutez la deuxième commande que si la première réussit).
Dans la première de ces deux commandes, on prend les cinq premières lignes (à l'aide d'un tuyau |
et head -n5
), et par la suite, dans la deuxième commande, nous cherchons à lister la sortie que nous recherchons. Pour ce cas, on cherche le texte gnome-calculator
.
La ligne / la commande secondaire ci-dessous montre une version que nous utiliserions régulièrement. Une fois que quelqu'un connaît la syntaxe du dpkg
Sortir, les cinq premières lignes sont généralement inutiles. Notez que la première colonne fait référence à (visuellement) Desired=
, avec la deuxième colonne se référant à Status=
, et la troisième colonne pour Err?=
. Si vous suivez visuellement les lignes, vous verrez comment ils se connectent rapidement.
Comme le nôtre gnome-calculator
installé avec succès sans erreur actuelle, il n'y a pas de code de troisième colonne ci-dessous Err?=
. De plus, notons ici que uppercase=bad
est écrit dans les brèves informations relatives à la troisième colonne. Comme indiqué précédemment, dans notre cas, c'est vide.
La première colonne indique l'état souhaité et la deuxième colonne indique l'état actuel. Les deux sont affichés comme i
(Install[ed]
et Inst[alled]
respectivement, et celui-là (ii
) est la séquence la plus courante qui (voudra) regarder. Cela signifie simplement que everything is fine, that the package is installed, and that there are no issues
.
Notez également que, dans les descriptions des colonnes entre parenthèses, la lettre majuscule indique le lien entre toute lettre possible vue et le terme pertinent. Par exemple, considérer comment f
ça se réfère à halF-conf
, pointant vers les majuscules F
dans le même.
Jetons maintenant un coup d'œil à une autre sortie pour comparer. Cette fois, nous laisserons les cinq premières lignes et vous pourrez vous habituer un peu plus à lire le résultat même sans les en-têtes.
dpkg -l | grep 'menthe bienvenue'
On voit ici le résultat intéressant de rc
, où ii
c'était pour lui avant gnome-calculator
. Si vous recherchez le r
en premier Desired=
description de la colonne que nous avons vue ci-dessus, pouvez-vous voir ce que cela signifie Remove[d]
, jeter c
dans la deuxième colonne représente Conf-files
.
Chien! Cette (mintwelcome
, un pack de bienvenue à Mint) c'est un paquet que nous avons désinstallé un jour, mais les fichiers de configuration du même restent. Purgeons-le!
dpkg --purge 'mintwelcome'
sudo dpkg --purge 'mintwelcome'
dpkg -l | grep 'menthe bienvenue'
Notez que vous pouvez également utiliser le -P
raccourci au lieu d'utiliser --purge
.
Dans la première commande, on peut essayer de purger mintwelcome
sans utilisation sudo
. Malgré cela, cela ne fonctionnera pas. Vous avez besoin de privilèges de superutilisateur / niveau racine à désinstaller (ou installer ou purger) paquets. Nous pouvons courir à nouveau en utilisant sudo
, et notre colis sera purgé.
A noter que le terme purge est utilisé par les deux apt
ainsi que par dpkg
pour indiquer que nous voulons absolument purger un paquet au lieu de simplement le désinstaller, que laisseront les fichiers de configuration.
S'assurer
J'espère que tu commences à apprécier le pouvoir, le contrôle et la granularité qui dpkg
peut vous fournir lors de la gestion des paquets dans votre distribution basée sur Debian, comme Ubuntu le, pour ce cas, menthe. ce serait facile, par exemple, rechercher des restes de fichiers de configuration de package précédemment désinstallés simplement en exécutant:
dpkg -l | grep '^ rc'
Avant de supprimer l'un de ces fichiers de configuration, vous voudrez doublement vous assurer qu'il n'y a pas de paquets installés avec un nom équivalent. Par exemple, pour ce cas, nous pouvons courir:
dpkg -l | grep 'javascript'
Remarquez comment nous supprimons la deuxième partie de 'javascript-common'
chercher 'javascript'
.
Est-il sûr de le supprimer ou non? Vous pouvez voir à quel point un grand pouvoir implique une grande responsabilité, comme toujours dans la vie. La décision de l'enlever ou non vous appartient. En général, il y a trois choses que vous devez toujours garder à l'esprit lorsque vous travaillez avec dpkg
:
Premièrement, voudra vérifier, double contrôle et triple contrôle pour être sûr. Par exemple, dans la première sortie ci-dessus, Nous aurions pu aller de l'avant et éliminer nonchalamment javascript-common
sans vérifier s'il y avait d'autres packages Javascript sur le système.
Était-ce le meilleur plan d'action? Peut-être, mais le niveau de garantie / la confiance a certainement baissé dès notre premier contrôle, car il y a certainement d'autres packages Javascript sur le système.
En même temps, notez qu'il n'y a vraiment rien de cassé ici. Vous pouvez laisser les fichiers de configuration pour ce package apparemment supprimé. Le vieil adage "Si ce n'est pas cassé, ne le répare pas » semblerait certainement s'appliquer à ce cas. Bon à garder à l'esprit lors de l'utilisation dpkg
.
en second lieu, il est essentiel de se rappeler que apt
est un gestionnaire de paquets qui maintient toutes les connexions (En d'autres termes, versions et dépendances) entre les colis à l'esprit lors de l'installation, désinstaller ou déboguer des packages.
Ce n'est pas le cas de dpkg
, qui est beaucoup plus basé sur les packages. Il y a plus de granularité, mais aussi plus de risque de casser des choses. Qu'un package soit basé sur un autre ou sur une bibliothèque, quelqu'un va certainement casser les choses en désinstallant simplement le paquet principal en utilisant dpkg
.
En troisième lieu, la plupart des packages Linux ont De nombreux dépendances. Pour cela, il n'est pas recommandé d'utiliser simplement dpkg
pour la gestion des colis standards, réitérant nos premiers conseils d'utilisation apt
par défaut et passer à dpkg
quand il soit nécessaire.
Retirer / désinstaller un paquet au lieu de le purger (En d'autres termes, laisser les fichiers de configuration), vous pouvez utiliser le --remove
(O -r
) option une dpkg
. Pour vérifier un paquet, utilisation --verify
(O -V
). Les --audit
(O -C
) par rapport à un package vérifie la cohérence et l'intégrité de la base de données pour le package (ou pour tous les packages si aucun package n'est spécifié).
Pour plus d'options, voir man dpkg
exécuter depuis votre terminal. De plus, il existe des commandes spécifiques et plus complexes qui peuvent être utilisées pour divers problèmes de système d'emballage.. Pour ça, En général, il est préférable d'utiliser votre moteur de recherche préféré pour le problème ou la situation spécifique observé au moment où il se produit.. Souvent, quelqu'un d'autre l'a déjà rencontré et a documenté les détails. Si vous découvrez quelque chose de nouveau, prenez quelques minutes pour publier vos conclusions dans un forum ou un fil de discussion pertinent.
Fin
Dans ce billet, nous avons commencé à explorer dpkg
et comment vous pouvez nous aider avec la gestion granulaire des packages, contrairement à apt
, qui gérera les packages et toutes leurs dépendances. Rappelles toi, dans ces situations complexes, débogage des problèmes de gestion des packages, un grand pouvoir implique une grande responsabilité.
Nous avons également vu comment adopter une approche plus prudente tout en réalisant que le débogage en profondeur de la gestion des packages équivaut à l'art, et mieux un peintre est, la peinture est plus réussie; Hum, le redémarrage sera.