Certaines choses du préambule habituellement demandées ...
OS: Ubuntu 14.04 (AMD64)
Python2: /usr/bin/python -V -> Python 2.7.12
Python2default: which python -> /usr/local/bin/python
/usr/local/bin/python -V -> Python 2.7.12
dpkg: dpkg --version -> Debian `dpkg' package management program version 1.17.5 (AMD64).
apt: Sudo apt --version -> apt 1.0.1ubuntu2 for AMD64 compiled on Apr 12 2018 10:14:36
c: gcc --version -> gcc (Ubuntu 4.8.5-4ubuntu8~14.04.2) 4.8.5
llvm: clang --version -> clang version 3.9.1-4ubuntu3~14.04.3 (tags/RELEASE_391/rc2)
Jusqu'ici tout va bien. La théorie des causes possibles:
Je ne suis pas sûr de ce qui a causé un problème, et cela aurait pu être que je fasse quelque chose de mal à un moment donné. J'ai essayé beaucoup de choses (beaucoup de problèmes similaires) pour résoudre mon problème et récupérer le système de paquets.
En cours de route, j'ai appris qu'Ubuntu dépendait tellement de Python que c'était stupéfiant. Et je rêve de solutions possibles:
D'ACCORD. assez de théorie!
Étape 1: essayer de réparer si quelque chose est cassé dans les dépendances:
$ Sudo apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
python-distlib
The following NEW packages will be installed:
python-distlib
0 upgraded, 1 newly installed, 0 to remove and 13 not upgraded.
9 not fully installed or removed.
Need to get 0 B/2,120 kB of archives.
After this operation, 559 kB of additional disk space will be used.
Do you want to continue? [Y/n]
dpkg: error processing package dpkg (--configure):
package is in a very bad inconsistent state; you should
reinstall it before attempting configuration
Errors were encountered while processing:
dpkg
E: Sub-process /usr/bin/dpkg returned an error code (1)
Étape 2: Récupération suggérée de dpkg.
$ Sudo apt-get install dpkg
Reading package lists... Done
Building dependency tree
Reading state information... Done
dpkg is already the newest version.
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
python-pip : Depends: python-distlib but it is not going to be installed
Recommends: python-dev-all (>= 2.6) but it is not installable
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
Étape 3: Répétez l'étape 1 - et nous obtenons le même résultat
Étape 4: Essayez de réinstaller de force dpkg
$ Sudo apt-get install --reinstall dpkg
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
python-pip : Depends: python-distlib but it is not going to be installed
Recommends: python-dev-all (>= 2.6) but it is not installable
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
Etape 5: OK, OK, ce satané python-distlib doit d'abord être installé.
$ Sudo apt-get install --reinstall python-distlib
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
python-distlib
0 upgraded, 1 newly installed, 0 to remove and 13 not upgraded.
9 not fully installed or removed.
Need to get 0 B/2,120 kB of archives.
After this operation, 559 kB of additional disk space will be used.
dpkg: error processing package dpkg (--configure):
package is in a very bad inconsistent state; you should
reinstall it before attempting configuration
Errors were encountered while processing:
dpkg
E: Sub-process /usr/bin/dpkg returned an error code (1)
Étape 6: maintenant je suis très mal en point. On suggère de (ré) installer le système dpkg que j'ai essayé aux étapes 2, 3 et 4 (avec un résultat frustrant)
Que puis-je faire maintenant?
J'ai essayé de pirater/var/lib/dpkg/status, j'ai essayé de recréer la liste de référentiels/etc/apt, j'ai essayé de faire une autre installation de Python 12, 14 et 15 en compilant à partir de source officielle python (aucune n'a aidé alors je l'ai laissée à 12).
Je sais pertinemment qu'il y a plus de paquets cassés qui doivent être corrigés (non énumérés dans les exemples). À un moment, le système était tellement endommagé que j'ai perdu l'environnement graphique et que je devais travailler depuis les terminaux (heureusement pour nous, lin-unix ne dépend pas de graphismes tels que windows ou osx). Je devais réinstaller unité-bureau afin que je sois au moins revenu au mode graphique (cassé python était si influent que même la dépendance de l'interface graphique dans Ubuntu est facilement renversée ou au moins unité)
Je sais que le dernier recours serait d'installer la même version ou une version plus récente d'Ubuntu à partir d'un CD (14.04 ou Ubuntu 16). Je préférerais rester à 14 ans parce que je veux terminer certains tests et que cela fonctionne bien pour moi avec ce matériel particulier.
Enfin - la question:
Quoi d'autre je pourrais éventuellement essayer de restaurer le système de paquets à un état raisonnablement fonctionnel en termes de systèmes d'installation de paquets alternatifs ou en récupérant/téléchargeant des paquets et éventuellement en les compilant manuellement et/ou en les installant.
J'ai besoin de réparer:
Pour la postérité, nous serons en juillet 2018.
Toutes les allusions sont les bienvenues, je peux difficilement aggraver la situation - soyez donc audacieux avec des idées;)
Modifier 1:
J'ai découvert ppa jonathoff probablement lié à Mise à jour Python 2.7 vers la dernière version de 2.x
il se peut que je reçois 2.7.12 de ppa repo automatiquement. Je ne me rappelle pas quand j'ai ajouté ce ppa à ma liste de mises en pension, mais je me souviens d'avoir utilisé cette recette.
Actuellement, j'essaie de comprendre pourquoi je ne parviens pas à me procurer les fichiers de package python27
.
Edit 2:
D'accord. C'est actuellement ma théorie de travail:
J'ai ajouté https://launchpad.net/~jonathonf ppa à ma liste. Au fil du temps, le système python est passé de 2.6 à 2.7. Jusqu'au 2.7.12, tout allait bien. Une fois que python27 est devenu 2.7.14, les choses se sont cassées.
Je remarquerais que la version python a été déplacée, mais j’ai pensé que c’était une mise à niveau normale d’Ubuntu.
Maintenant, si vous explorez le projet de Jon, vous constaterez que le python2.7 actuel est en fait 2.7.14 (et très probablement d'après sa page orientée vers Ubuntu 16. Voir https://launchpad.net/~jonathonf/ + archive/ubuntu/python-2.7 ) cette version si python27 est celle qui ne fonctionne pas pour moi.
Je pense que j'ai essayé de résoudre le problème en installant moi-même la version 2.7.12 en la construisant à partir de sources, mais cette version aussi bonne qu'elle est, elle est conçue pour l'utilisateur/la programmation et ce n'est pas la même chose que la version du système Ubuntu. python (il y a ici des différences subtiles que j'ai lues ailleurs, mais j'espérais que cela fonctionnerait. Cela ne fonctionnait pas. C'était un mauvais choix, même si les temps désespérés exigent des mesures désespérées).
Dans le système d'archives ubuntu original python pour Ubuntu14, on s'attend toujours à ce qu'il soit toujours à 2.7.6, donc même si j'essaie de trouver python27 dans les archives des versions d'ubbuntu, il est fort probable que je ne le trouve pas. (S'il vous plait, si quelqu'un me prouve le contraire, dites-moi où je peux obtenir python27 dans différentes versions)
La question est maintenant où je peux trouver les archives précédentes de ce ppa et essayer de faire revivre python à la version de travail.
La dernière version qui a bien fonctionné avec apt pour moi était la version 2.7.12.
Le problème est maintenant où trouver cette archive particulière? Si ce n'est pas perdu dans le temps.
Vous pouvez essayer de réparer dpkg
manuellement (téléchargez-le et extrayez-le dans le système de fichiers):
wget http://mirrors.kernel.org/ubuntu/pool/main/d/dpkg/dpkg_1.17.5ubuntu5.8_AMD64.deb
ar x dpkg_1.17.5ubuntu5.8_AMD64.deb
Sudo tar -xvf data.tar.gz -C /
Puis réinstallez-le:
Sudo apt-get install dpkg --reinstall
Supprimez votre Python local avec
Sudo rm /usr/local/bin/python*
Supprimer le PPA lié au python:
Sudo ppa-purge ppa:jonathonf/python-2.7
installer normal python à partir du référentiel
Sudo apt-get install --reinstall libpython-stdlib python-minimal python2.7 \
python-apt python-distlib libpython2.7-minimal libpython2.7-stdlib
et réparer tout le système:
Sudo apt-get install -f
Sudo dpkg --configure -a
Lors de la phase finale, vérifiez la cohérence de votre système avec apt-get
et debsums
:
Sudo apt-get check
# debsums
Sudo apt-get install debsums
Sudo debsums_init
Sudo debsums --changed --silent
# afterwards reinstall listed packages with
# Sudo apt-get install --reinstall package-name
Je fournis une réponse ici non pas parce que la réponse de N0rberts était mauvaise. Au contraire, la réponse a été 1. inspirative et 2. très utile pour moi, donc j’accepterai, c’est comme une réponse à une question, car c’est essentiellement cela. Merci Nbert pour votre soutien et votre patience.
Ma réponse ici est de faire la lumière sur certains effets secondaires et les cas Edge.
Je pourrais le faire en question, mais j’estime que cette question restera en question et que la réponse est une chose différente. Puisqu'il y a beaucoup de chemin à parcourir et que je dois extraire quelques exemples de mes journaux, cette réponse sera complétée plusieurs fois jusqu'à ce qu'elle soit complète, jusqu'à ce que je comprenne ce qui est arrivé et surmonte les obstacles.
Que j'ai appris sur le chemin de la réparation ...
En un instant, j'ai réalisé que je ne pouvais installer ou mettre à jour quoi que ce soit sur mon Ubuntu14 (cela pourrait facilement être un plus récent)
J'ai formulé une théorie sur ce qui peut ne pas être correct parce que j'essayais de créer un nouveau logiciel et que les choses tournaient mal alors j'essayais d'installer divers correctifs pour cette construction. Les choses ont simplement commencé à casser mais pas à casser de façon critique.
leçon 1: L'influence de la cause du problème a été prise sous un angle différent et non de la théorie que j'avais. Je pensais que mes récentes installations de LLVM avaient influencé python alors que le problème était le référentiel PPA que j'ai installé pour résoudre autre chose. Le problème est que PPA en question, j’ai installé il ya un moment (1y +) et a oublié que c’est là. En silence, Ubuntu mettait à jour les nouveautés (même si cela n’est pas vraiment recommandé). Cette mauvaise décision sera plus élaborée plus tard.
- Morale de la leçon: ne théorisez pas ce que cela pourrait être - essayez d’enquêter et d’examiner les faits avec soin.
dpkg
et 2. système python
. À un moment donné, tout le système est tombé en panne au point de perdre mon environnement graphique. Certaines applications ont commencé à casser (cela se passait en l'espace de quelques mois) et enfin, au point le plus bas, je n'ai pu exécuter mon Ubuntu qu'à partir de la console. terminaux (Alt-F1 à Alt-F4) Étant sur Linux pendant longtemps, je résidais à l’origine sur la ligne de commande. Bien sûr, les choses sont bien plus simples avec les graphiques, principalement parce que vous pouvez utiliser un navigateur pour rechercher des solutions potentielles. Je suis programmeur et mon espèce est connue pour être un peu dogmatique (dogmatique = croire en l'automatisation des chiens :)), cela signifie que je vais m'attacher à une pensée qui ignore les faits potentiels.leçon 2: Je suis convaincu qu'il y a 2 façons de réparer quelque chose quand l'OS est en cause. 1. Réinstallez le tout. 2. essayez de réparer. J'ai essayé les deux dans le passé. Dernièrement, je réalise que l'option 2 a plus de valeur. En essayant de résoudre les problèmes, j'ai beaucoup appris sur les systèmes d'exploitation. J'étais dans une certaine mesure ignorante. Maintenant, si je venais de réinstaller le système d’exploitation, je finirais par arriver à une situation plus problématique qui pourrait éventuellement provoquer une installation propre à partir de zéro, ce qui signifie que tous les réglages et toutes sortes d’autres données seront perdus.
- Morale de la leçon: Apprenez, n’avancez pas facilement, soyez audacieux. En fin de compte, c'est enrichissant.
Leçon 3: Au cours de l'enquête, j'ai appris que Jonathon ne recommandait pas vraiment d'utiliser son AAE et si vous le faites, faites-le à vos risques et périls. En fait, mon ordinateur Linux n’est pas essentiel à la mission - c’est mon ordinateur de loisir (mais c’est précieux pour moi, car je l’utilise pour toutes sortes de choses: des opérations bancaires en ligne à l’évaluation en passant par l’amusement des logiciels ou des langages de programmation que j’utiliserais professionnellement.)
- Morale de la leçon: si vous ne pouvez pas tout comprendre vous-même, parlez aux gens. Il y a des indications précieuses sur ce qu'ils font et ce qu'ils vont vous dire. Mais essayez de lire attentivement, en particulier le but des AAE.
dpkg
.Le début de la réponse de NOrberts répond à cela. Téléchargez .deb
, extrayez les fichiers et faites manuellement ce que tous ces outils de paquet feront automatiquement pour vous.
Sudo apt-get install dpkg --reinstall
cercle vicieux
n'a pas fonctionné pour moi car apt
me semble dépendre de scripts exécutés dans les modules python
et python
ne souhaitait pas être installé via apt
(cercle vicieux). Je ne pouvais donc pas corriger cette étape tant que je n'avais pas corrigé python
en premier. L'affirmation ici que python
est utilisé est un sentiment. En fait, à la fin, je n’ai jamais essayé d’installer/réparer le programme apt
pour que le système fonctionne - il ya quelque chose à cela. Je ne peux pas le prouver mais il reste fort chien automatisé pour moi.
La deuxième partie de N0rbert suggère de supprimer la variante python
.
J'ai installé une alternative python
parce que j'avais besoin d'une version plus récente pour essayer de faire quelque chose (je ne me souviens pas exactement de ce qui était à l'époque).
En substance, différents pythons ont été installés et je ne sais pas très bien lequel python utilise quoi. Cela va en partie à l'expérience Ubuntu et en partie à Python expérience. Ubuntu exécute sa propre version pour les raisons qu’ils connaissent. Dans certains cas, cela n’aide en rien, car la documentation peut vous induire en erreur jusqu’à ce que vous découvriez les différences. Le problème était que je n'avais aucune idée de la façon d'installer correctement le système python. Il est livré pré-installé lors de l’installation du système d’exploitation et il est recommandé de rester inchangé (en dépit des faits, cette politique peut poser un autre risque). D'autre part, les procédures d'installation ont généralement tendance à ne pas parler à l'utilisateur. Même si je faisais quelque chose de mal en utilisant différentes méthodes de configuration ou d'installation, je ne le saurais pas. En bout de ligne, je n'ai pas trouvé de documentation pour réparer le système python n'importe où. En fait, il existe de nombreuses recettes qui vous conseilleraient de faire:
Sudo apt-get install python27
peut-être que cela résoudrait un problème dans des circonstances normales, ce qui signifie que vous avez python
considérablement travaillé et que apt
fonctionne pour vous.
la première partie d'un problème avec python était que mon python par défaut était un python alternatif. Quoi que je fasse, je n'ai en fait pas touché le système Python.
Par conséquent, un autre indice de N0rbert était essentiel: supprimez toute référence à un python alternatif. Depuis ce python que j'ai installé en compilant python source et en installant à partir de celui-ci, ce python ne faisait pas partie du système de paquetage normal. N0rbert a suggéré de le supprimer directement du disque, et c’est ce que j’ai fait parmi les premières choses (je pourrais facilement le récupérer si besoin est).
Quelques autres astuces suggèrent de désinstaller Python. Lorsque j'ai essayé, la liste des éléments à désinstaller était longue. Je n'étais pas prêt pour cela - il y avait beaucoup d'applications et d'autres choses et je pensais - qui réinstallerait tout cela et ce qu'il ferait. À propos de cela un peu plus tard.
Puisque la désinstallation du système python était hors de question, la seule possibilité était d'essayer de forcer son installation par le haut.
Je ne sais pas combien de choses différentes j'ai essayées pour le faire. Aucun d'entre eux n'a remplacé le python système. En un instant, je me suis retrouvé désespéré car python était dans le meilleur des cas 2.7.12 (à la place de python système). La distribution originale d'ubuntu 14 est fixée à 2.7.6. Ce qui me semblait trop vieux. Je m'attendrais à ce que la mise à jour normale d'ubuntu passe à quelque 2.7.9 ou 2.7.10, mais ce n'est pas le cas. Si vous ne regardez que les archives ubuntu, python affiché et contenant des paquetages est appelé python27; il s'agit en fait de python 2.7.6.
Cela m’amène à la question suivante: comment se fait-il que j’obtienne lorsque j’essaie d’installer pyton27 que j’obtiens python 2.7.14 mais que je ne parviens pas à installer la version de/usr/bin/python (pointe vers python2)? qui pointe vers python27 qui est binaire) j’obtiens régulièrement python 2.7.12.
Après quelques jours, je me suis endormi en pensant, etc. Je suis parvenu à la conclusion que je ne savais pas d'où venaient 2.7.12 et quelle tentative 2.7.14. Entre-temps, j’essayais d’installer 2.7.15 en tant qu’alternative - ce qui fonctionnait bien et j’imaginais - eh bien, je pourrais peut-être faire la chose avec .15 mieux que les versions précédentes. Et c'était une erreur.
Il est intéressant de noter que 2.7.12 dans /usr/bin
était assez résistant en restant à la même version, peu importe ce que j'ai fait.
Cela m'a conduit à des soupçons et une enquête a montré que j'avais le PPA de Jonathon et que dans son PPA, le plus récent python27 correspond en réalité à 2.7.14. Depuis que 2.7.12 travaillait toujours pour moi avec des effets secondaires minimes, j’ai envoyé un courrier électronique à Jonathon pour me dire s’il avait déjà python27 dans une incarnation antérieure, par exemple. 2.7.10 (quelque part mentionné dans l'installation) ou peut-être 2.7.12 ou même une version antérieure que je peux essayer d'installer. Jonathon a répondu assez rapidement et m'a dirigé vers ses archives (également disponibles en ligne), mais j'ai découvert que la première version de python27 est en réalité une version 2.7.12 et que c'est la raison pour laquelle cette version était accrochée. En fait, Jonathon mentionne qu'il construit actuellement pour Ubuntu 16 et qu'il cessera bientôt de le faire. À compter de l'automne de cette année, il construira pour Ubuntu 18. Python27 qui était dans ses archives n'était même pas construit pour ma version d'Ubuntu. SENSATIONNEL. Je pensais avoir pris une mauvaise décision un moment.
J'ai enlevé tous les PPA de la liste d'apt. J'ai même supprimé la liste par défaut d'ubuntu (quelle était la gravité de cette décision)
En un instant, je pensais avoir fini. Il n'y avait aucun moyen de revenir en arrière qui me conduirait à l'état précédent. Et pendant un moment, j'ai réfléchi à beaucoup de choses, y compris l'installation d'ubuntu16 pour super imposer avec une nouvelle configuration.
APT était toujours en panne, pythonen attente _ certaines parties ne voulaient pas être installées.
Puis j'ai décidé. Je vais essayer d'installer de façon bidouiller ou pas de façon originale python 2.7.6 comme indiqué par Ubuntu. C'était ça ou rien.
Mais même cela s'est avéré être une tâche difficile. Puisque APT était cassé, j'avais besoin d'un moyen d'installer et j'ai commencé à apprendre à propos de dpkg
. Apparemment, APT est une belle interface pour DPKG et, en fait, c’est dpkg
qui fait le travail difficile.
Ce serait plus facile si j'avais le CD Ubuntu où j'ai installé ce système d'exploitation, mais ce CD est, après plusieurs déménagements que j'ai faits au cours des deux dernières années, dieu ne sait où. Zut.
Heureusement, Internet est une vaste bibliothèque et l’aide est donc venue sous la forme d’un site d’archives. C'est celui-ci qui est devenu utile: https://pkgs.org/
Je suppose que tous les paquetages dont vous auriez besoin sont présents dans plusieurs distributions, dont Ubuntu.
Ceci posé comme question principale. APT ne fonctionnait pas aussi parce que des dépendances étaient peut-être rompues. C’est quelque chose que tout système Linux pourrait améliorer - une sorte de système d’audit qui vous indiquera quel fichier de quel paquet n’est pas ce qu’il est dans le paquet original.
Je ne sais pas quelles archives j'ai besoin d'installer et je ne sais pas comment les installer, mais même dans le pire des cas puisque ces fichiers .deb sont des archives, je les extrairais éventuellement et remplacerais les fichiers par des originaux.
En fait, il s’est avéré que ce n’est pas vraiment nécessaire. DPKG peut effectuer ce travail (à condition que l'état de fonctionnement de celui-ci soit rétabli considérablement et que la tâche N ° 1 soit assurée par N0rbert. Ce n'était pas l'idéal, mais DPKG semble être un programme binaire, donc cela fonctionnera bien si les données sont correctes.
J'ai découvert que dpkg
a l'option -i
à installer.
J'ai donc téléchargé .deb
et:
dpkg -i dpkg_1.17.5ubuntu5.8_AMD64.deb
effectivement s'est bien passé. apt
a cessé de se plaindre que dpkg
n'est pas bien configuré. C'était déjà bon vent.
Il est à noter que je ne suis pas exactement arrivé à ce point immédiatement, c’était plutôt des essais et des erreurs et la prise de conscience que apt-get ne va pas faire le travail de nettoyage pour moi pour l’installation. Je ne sais pas où Ubuntu conserve les méta-informations sur les paquets (je suppose que cela se trouve dans le fichier/var/lib/dpkg/status) car le piratage des statuts des paquets n'a pas toujours rendu l'effet approprié. Je persiste à croire qu’un outil d’audit doit être mis au point pour faciliter la comparaison entre ce qui se trouve réellement dans les fichiers et ce que les enregistrements d’installation indiquent.
Le système APT est modulaire, une chose peut ne pas fonctionner mais une autre aussi. J'ai appris que je peux faire:
apt-get download python
cela vous donnera une version de python, mais ce n'est peut-être pas ce que vous voulez. Dans Ubuntu 14, le cas ci-dessus vous ira vous chercher python 2.7.5. (si vous venez de sources définies par le système - ce qui est la valeur par défaut)
De plus, cette fonction a du sens puisque apt
télécharge des éléments avant l’installation. C'est juste que je n'ai jamais vu cela et que je vois toujours quelque chose comme wget site bla bla
. Je crois que apt-get download
est une option plus sûre. Utilise le.
apt-get download python27
vous obtiendrez des archives .deb sur votre disque local. Je n'avais pas besoin de tous.
L’enquête a montré que j’avais besoin du fichier /usr/bin/python27
mais pas de n'importe quel fichier /usr/bin/python27
car mon /usr/bin/python27
était de la version 2.7.12 et j’étais déterminé à en ramener le fichier original, 2.7.6. Maintenant, il y a environ 2000+ paquets dans Ubuntu qui sont python et j'ai besoin d'une archive qui contient ce fichier. Après avoir examiné les archives, je me suis rendu compte qu’un seul paquet contenant ce fichier était: python2.7-minimal_2.7.6-8_AMD64.deb
J'ai donc installé ceci avec dpkg:
Sudo dpkg -i libpython2.7-minimal_2.7.6-8_AMD64.deb
dpkg: warning: downgrading libpython2.7-minimal:AMD64 from 2.7.12-1~14.02 to 2.7.6-8
(Reading database ... 1548765 files and directories currently installed.)
Preparing to unpack libpython2.7-minimal_2.7.6-8_AMD64.deb ...
Unpacking libpython2.7-minimal:AMD64 (2.7.6-8) over (2.7.12-1~14.02) ...
Setting up libpython2.7-minimal:AMD64 (2.7.6-8) ...
L'étape suivante a été un peu un choc. J'ai pris l'habitude de faire Sudo apt-get -f install
presque après chaque théorie ou commande d'essai que j'ai faite dans l'espoir que cela corrigera le reste. En fait, une fois que j'ai placé 2.7.6 à la place d'origine (écrasement des versions ultérieures), l'option d'installation -f a affiché une longue liste d'applications et de bibliothèques:
0 upgraded, 3 newly installed, 556 to remove and 8 not upgraded.
10 not fully installed or removed.
Need to get 0 B/354 kB of archives.
After this operation, 1,748 MB disk space will be freed.
Do you want to continue? [Y/n] y
C'était un tournant. Je fais ceci ou je choisis une autre option (installer Ubuntu à partir de rien). Avant d’exécuter celui-ci, j’ai pris un instantané de l’ensemble de l’historique de mon terminal avec l’idée que, même si je supprime toutes ces bibliothèques et packages qui dépendent de la version ultérieure python, peut-être si j’ai besoin de quelque chose de ce type sera supprimé au moins j'aurais une liste de noms que j'avais besoin d'installer.
Alors j'ai appuyé sur Y.
La cuisson a pris un certain temps. Et un autre problème a commencé à émerger avec un message timide:
WARNING: The following packages cannot be authenticated!
libjack0 jackd1 jackd1-firewire
Install these packages without verification? [y/N] y
Essentiellement, je n'avais pas d'autre option que de l'installer sans vérification.
Maintenant, j’ai mentionné précédemment que c’était une mauvaise décision de supprimer tous les référentiels afin d’obtenir un logiciel (il était décidé de les changer un par un). J'ai sélectionné un site source miroir plus proche de moi que le site principal Ubuntu. Peut-être parce que les choses n'ont pas été correctement installées, des clés sécurisées se sont égarées. Je ne saurai jamais quelle en était la raison principale.
À ce stade, je ne réalisais pas à quel point cet avertissement était si important et si authentifié me suivait dans les commandes suivantes. Mais d’un autre côté, l’installation fonctionnait, donc je n’ai pas trouvé cela essentiel dans une situation désespérée. C'était déjà tout ou rien, alors tant que ça fonctionnait
Plus tard, je suis allée voir si je pouvais exécuter 'Software Updater' avec l'espoir que le programme de mise à jour résoudrait d'autres dépendances. Mais Software Updater était strict. Il a refusé d'installer des mises à jour ou des correctifs au moins tant que l'authentification n'est pas configurée correctement. J'ai découvert de merveilleuses commandes apt telles que Sudo apt-key update
et Sudo apt-key list
, même si elles ont été utiles immédiatement, mais à un moment donné, elles sont devenues utiles.
Je trouve cela utile entre autres:
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
Remplacez le dernier par la clé dont vous avez besoin. Il existe également une application "Mots de passe et clés" que je n'ai pas trouvée particulièrement conviviale ou utile (à l'exception de la découverte d'anciens mots de passe pour diverses connexions).
Finalement, ce problème est résolu en supprimant tous les fichiers .gpg /etc/apt/trusted.gpg.d/
. Être mordu avant de les avoir déplacés ailleurs pour des raisons de sécurité si j'en ai encore besoin.
Ce qui était utile ici était:
Sudo apt-get install launchpad-getkeys
Sudo launchpad-getkeys
Sudo apt-get update
launchpad-getkeys est un logiciel intéressant, simple mais efficace. Il lit d'abord toutes vos clés manquantes, puis essaie de les récupérer. Enregistre une tonne de travail manuel.
Maintenant, je pourrais réinstaller correctement dpkg et python2.7 en utilisant apt-get.
On peut penser qu'il y a la fin de cette histoire. Système récupéré. Les mises à jour fonctionnent. La mise à jour du logiciel fonctionne. Une liste de logiciels désinstallés avec quelques manipulations et ramenant des ppa est de nouveau opérationnelle.
Mais il était trop tôt pour être fier du travail accompli alors que l’allégement était considérable.
Pour ne pas raconter cette histoire sans fin, voici quelques indications que j’ai apprises en corrigeant plus tard des éléments à des fins particulières:
/usr/local/bin
, je devais donc suivre pip uninstall
, puis supprimer les commandes, puis le réinstaller correctement sur le système python, pas à l'aide de pip, mais à l'aide de apt-get install python-flask
... sur une note générale /usr/local/
en relation avec python continuait d'apparaître dans toutes sortes d'endroits. Je pensais avoir supprimé toutes les choses python de /usr/local
mais j'avais des problèmes avec les modules installés par pip python, donc chaque fois que je clique sur le problème, je fais d'abord pip uninstall
puis installez-le correctement.Bonjour à tous tldr; personnes :)