Comment utiliser dpkg pour réparer apt en cas de panne

Avez-vous déjà pénétré par effraction dans l'appartement ? Pour les professionnels chevronnés de Linux, il est assez courant (environ tous les six mois) de se casser accidentellement. Si vous connaissez quelques commandes dans dpkg, vous pouvez souvent résoudre le problème plus facilement ! Trouver comment.

Que sont-ils propice c'est dpkg ?

Si vous utilisez une distribution basée sur Debian comme Ubuntu ou Mint, votre ordinateur utilise propice pour gérer les forfaits. apt signifie Outil d'emballage avancé , qui vous permet d'installer, de désinstaller, de supprimer et de gérer les packages Debian.

est plus |__+_| (utilisé à partir de la ligne de commande), votre ordinateur possède probablement un gestionnaire de paquets de bureau de niveau supérieur/général, qui utilise simplement |_+_|, ou peut-être |_+_|, en arrière-plan.

Le gestionnaire de paquets pour Debian |__+_| c'est une alternative à la gestion des paquets sur les installations basées sur Debian. C'est un niveau beaucoup plus bas que |__+_|, vous donnant plus de liberté, mais présentant également un risque plus élevé de casser des choses.

C'est pourquoi (sauf si vous êtes un ingénieur DevOps expérimenté), je vous recommande d'utiliser |__+_| à tout moment, en l'incrémentant avec |__+_| dès que des problèmes surviennent.

Adopter cette approche étape par étape vous offre le meilleur des deux mondes : la stabilité et la facilité d'utilisation de |_+_| gestionnaire de paquets, avec la puissance et la granularité de |__+_| Gestionnaire de paquets Debian, une fois que vous en avez besoin.

Supposons, par exemple, que vous veniez d'installer un package qui, d'une manière ou d'une autre, a fini par casser le fichier. |__+_|. Ou peut-être qu'une installation de paquet a été abandonnée accidentellement.

Quelle qu'en soit la cause, |__+_| il est maintenant considéré comme cassé et a déjà essayé des choses comme |__+_| est |__+_| inutilement. Si oui, alors...

Bienvenue à dpkg

Lorsque vous |__+_| c'est cassé, ce n'est pas drôle. Oui c'est le cas Vraiment cassé, c'est encore moins amusant. Même si quelqu'un sait ce qu'il fait, il faut parfois un certain niveau de compétence et certainement de compétence pour réparer un système d'emballage défectueux.

Le terme «art» est totalement applicable lorsque vous avez une idée ou que vous ressentez au fur et à mesure que vous suivez diverses étapes de dépannage, en particulier si vous l'avez fait fréquemment, que quelque chose fonctionne ou non lors d'un redémarrage.

Le risque est toujours que le système de packaging soit tellement corrompu que si vous redémarrez, votre instance Linux peut ne plus être active, ce qui nécessite un dépannage supplémentaire et potentiellement encore plus complexe.

À ce stade, je voudrais dire 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 à réparer et plus vous serez sûr de savoir si vous êtes prêt à redémarrer ou non.

C'est de là que nous venons |__+_|. Le |__+_| Le programme nous permet un contrôle beaucoup plus granulaire sur tous les packages installés, et bien qu'il y ait un plus grand risque que quelque chose se passe mal, il y a aussi beaucoup plus de pouvoir pour changer un système exactement comme nous le voulons. Plongeons dedans.

Si vous êtes intéressé par Linux en général, vous pouvez également lire notre série en trois parties Bash Automation & Scripting.

Essentiel dpkg Utilisation

Nous pouvons voir les packages actuellement sur le système en exécutant simplement |__+_|. Étant donné que la sortie est susceptible d'être très détaillée (bien que généralement paginée), vous pouvez utiliser un |_+_| pour limiter les résultats.

|__+_|

Notre première exécution de dpkg

La première commande est en fait une combinaison de deux commandes (séparées 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, nous saisissons les cinq premières lignes (en utilisant un tube |_+_| est |_+_|), puis dans la deuxième commande, nous essayons de lister la sortie que nous recherchons. Dans ce cas, nous recherchons le texte. |__+_|.

La sous-ligne /command ci-dessous montre une version que nous utiliserions normalement. Une fois que quelqu'un est familiarisé avec la syntaxe de |__+_| sortie, les cinq premières lignes ne sont souvent pas nécessaires. Notez que la première colonne fait référence (visuellement) à |_+_|, la deuxième colonne à |_+_| et la troisième colonne à |_+_|. Si vous suivez visuellement les lignes, vous verrez à quelle vitesse elles se connectent.

Comme notre |_+_| installé avec succès sans erreur actuelle, il n'y a pas de code dans la troisième colonne sous |_+_|. On remarque aussi qu'ici |__+_| est écrit dans les informations succinctes relatives à la troisième colonne. Comme dit précédemment, dans notre cas, il est vide.

La première colonne indique l'état souhaité et la deuxième colonne indique l'état actuel. Les deux s'affichent sous la forme |_+_| (|_+_| est |_+_| respectivement, et ceci (|_+_|) est la séquence la plus courante que vous voudrez voir. Cela signifie essentiellement ceci |_+_|.

Notez également que, dans les descriptions de colonnes entre parenthèses, la lettre majuscule indique le lien entre toute lettre affichée et le terme concerné. Par exemple, considérez comment |__+_| fait référence à |_+_|, en notant les lettres majuscules |_+_| dans le même.

Examinons maintenant une autre sortie à des fins de comparaison. Cette fois, nous sautons les cinq premières lignes et vous pouvez vous habituer un peu plus à lire la sortie même sans les en-têtes.

|__+_|

dpkg-l | sortie grep

Ici, nous voyons le résultat intéressant de |__+_|, où est |_+_| utilisé pour le |_+_|. Si vous cherchez le |_+_| dans le premier |_+_| description de la colonne que nous avons vu ci-dessus, vous pouvez voir que cela signifie |_+_|, et que |_+_| dans la deuxième colonne représente |__+_|.

AHA ! Ce (|_+_|, un package de bienvenue dans Mint) est un package que nous désinstallons à un moment donné, mais les fichiers de configuration restent. Débarrassons-nous de lui !

|__+_|

Suppression des fichiers de configuration

Notez que vous pouvez également utiliser le fichier |__+_| raccourci au lieu d'utiliser |__+_|.

Dans la première commande, nous pouvons essayer de supprimer |__+_| inutilisé |_+_|. Cependant, cela ne fonctionnera pas. Les privilèges superutilisateur / root sont requis pour désinstaller (ou installer ou supprimer) des packages. Nous pouvons exécuter à nouveau en utilisant |__+_| et notre colis sera supprimé.

A noter que le terme purge est utilisé à la fois par |_+_| ainsi que |_+_| pour indiquer que vous souhaitez supprimer complètement un paquet au lieu de simplement le désinstaller, ce qui laissera derrière lui tous les fichiers de configuration.

S'assurer

J'espère que vous pourrez commencer à apprécier la puissance, le contrôle et la granularité de ce |__+_| peut vous donner lorsque vous gérez des packages dans votre distribution basée sur Debian, comme Ubuntu, ou dans ce cas, Mint. Il serait facile, par exemple, de rechercher les fichiers de configuration restants des packages précédemment désinstallés en exécutant simplement :

|__+_|

dpkg répertorie la sortie des fichiers de configuration communs en javascript

Avant de supprimer de tels fichiers de configuration, nous vous recommandons de vous assurer qu'aucun package n'est installé avec un nom similaire. Par exemple, dans ce cas, nous pouvons exécuter :

|__+_|

dpkg-l | production

Remarquez comment nous supprimons la deuxième partie de |__+_| trouver |__+_|.

Est-il sûr de l'enlever ou non? Vous pouvez voir à quel point un grand pouvoir vient d'une grande responsabilité, comme toujours dans la vie. La décision de le retirer ou non vous appartient. Généralement, il y a trois choses à garder à l'esprit lorsque vous travaillez |__+_| :

Première , nous vous recommandons de vérifier, vérifier et vérifier à nouveau pour être sûr. Par exemple, dans la première sortie ci-dessus, nous sommes peut-être allés de l'avant et avons nonchalamment supprimé |__+_| sans vérifier s'il y avait d'autres packages Javascript sur le système.

Était-ce la meilleure ligne de conduite ? Peut-être, mais le niveau de sécurité/confiance a définitivement chuté dès notre première vérification, car il existe certainement d'autres packages Javascript sur le système.

Notez également qu'il n'y a vraiment rien de cassé ici. Vous pouvez laisser les fichiers de configuration de ce paquet apparemment supprimés. Le vieil adage 'Si ce n'est pas cassé, ne le répare pas' semble certainement s'appliquer ici. Bon à garder à l'esprit lors de l'utilisation de |__+_|.

à la deuxième place , il est important de se souvenir de ceci |__+_| est un gestionnaire de packages qui maintient toutes les connexions (c'est-à-dire les versions et les dépendances) entre les packages à l'esprit lors de l'installation, de la désinstallation ou de la suppression de packages.

Ce n'est pas le cas |__+_|, qui est beaucoup plus basé sur les packages. Il y a plus de granularité, mais aussi plus de risque de casser des choses. Si un paquet est basé sur un autre ou sur une bibliothèque, quelqu'un va sûrement casser les choses en désinstallant simplement le paquet parent en utilisant |_+_|.

En troisième place , la plupart des packages Linux ont beaucoup dépendances. Par conséquent, il n'est pas recommandé d'utiliser simplement |__+_| pour la gestion standard des colis, réitérant notre conseil initial d'utiliser |__+_| par défaut et allez à |__+_| si nécessaire.

Pour supprimer/désinstaller un paquet au lieu de le supprimer (c'est-à-dire en laissant les fichiers de configuration), vous pouvez utiliser le |__+_| (ou |__+_|) option pour |__+_|. Pour vérifier un paquet, utilisez |__+_| (ou |__+_|). Le |__+_| (ou |__+_|) sur un package effectue des contrôles d'intégrité et d'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 |__+_| exécuter à partir de votre terminal. Il existe également des commandes spécifiques et plus complexes qui peuvent être utilisées pour divers problèmes de système de conditionnement. Pour ceux-ci, il est généralement préférable d'utiliser votre moteur de recherche préféré pour le problème ou la situation spécifique détecté 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 découvertes dans un forum ou un fil de discussion pertinent.

Fin

Dans cet article, nous commençons à explorer |__+_| et comment il peut nous aider avec la gestion granulaire des packages, au lieu de |_+_|, qui gérera les packages et toutes leurs dépendances. N'oubliez pas que dans ces situations complexes de débogage de gestion de packages, une grande puissance implique une grande responsabilité.

Nous avons également discuté de la manière d'adopter une approche plus prudente lorsque nous avons réalisé que le débogage en profondeur de la gestion des packages s'apparente à de l'art, et que meilleur est un peintre, plus le dessin est réussi ; ahem, le redémarrage sera.

Qu'est-ce que tu penses?