Puncte:2

Actualizare întreruptă și mizerie de pachete: cum elimin manual pachetele vechi?

drapel in

Dupa o face-eliberare-upgrade pentru a trece de la 16.04 la 18.04, ceva a eșuat și mașina a fost lăsată într-o stare „între”, cu o mulțime de probleme de dependențe rupte. Arborele meu de pachete este o mizerie, sunt disperat... ;-)

Am încercat o mulțime de lucruri (inclusiv dpkg --configure -a, eliminând aleatoriu pachetele cu dpkg --force depends -P <nume-pkg>, plus alte lucruri), dar sunt cam blocat în prezent.

Deci, când încerc:

$ sudo apt --fix-broken install
Citirea listelor de pachete... Gata
Construirea arborelui de dependență       
Citirea informațiilor despre stare... Gata
Corectarea dependențelor... Gata
Următoarele pachete au fost instalate automat și nu mai sunt necesare:
   (aici 20 de rânduri)
Următoarele pachete suplimentare vor fi instalate:
... (aici 5 rânduri)
 Pachete sugerate:
 ... Mai mult
Pachete recomandate:
 ... Mai mult
Următoarele pachete vor fi ȘTERSE:
 ... Mai mult
Următoarele pachete NOI vor fi instalate:
 ... mai mult (10 linii)
28 au fost actualizate, 6 nou instalate, 1 de eliminat și 327 nu au fost actualizate.
228 nu este complet instalat sau demontat.
Trebuie să obțineți 0 B/13,3 MB de arhive.
După această operațiune, se vor utiliza 2â¯771 kB spațiu suplimentar pe disc.
Doriți să continuați? [Da/nu] 

Până aici, nu mă tem de nimic. Dar acum, intrând Y:

Extragerea șabloanelor din pachete: 100%
(Se citesc baza de date... 977800 de fișiere și directoare instalate în prezent.)
Se elimină ubuntu-advantage-tools (27.0.2~18.04.1)...
Traceback (cel mai recent apel ultimul):
  Fișierul „<șir>”, linia 2, în <modul>
  Fișierul „/usr/lib/python3/dist-packages/uaclient/apt.py”, linia 9, în <modul>
    din uaclient import gpg
  Fișierul „/usr/lib/python3/dist-packages/uaclient/gpg.py”, linia 3, în <modul>
    import shutil
ModuleNotFoundError: Niciun modul numit „shutil”
dpkg: eroare de procesare a pachetului ubuntu-advantage-tools (--remove):
 instalat pachetul ubuntu-advantage-tools subprocesul de script pre-eliminare a returnat eroare starea de ieșire 1
Au fost întâlnite erori în timpul procesării:
 ubuntu-advantage-tools
E: Sub-procesul /usr/bin/dpkg a returnat un cod de eroare (1)

Deci asta sună ca o eroare Python, din câte am înțeles, nu poate găsi shutil. Așa că am descărcat manual ceea ce credeam că este chestia: https://packages.ubuntu.com/bionic/python-backports-shutil-get-terminal-size și instalat manual cu:

dpkg -i sudo dpkg -i python-backports-shutil-get-terminal-size_1.0.0-5_all.deb

Dar făcând apt --fix-broken install din nou ajunge în același punct.

Am cunoștințe limitate cu Python, așa că nu pot fi sigur că aceasta este problema reală, dar orice ajutor este binevenit. În rest, următorul pas va fi probabil reinstalarea de la zero, dar chiar aș prefera să evit asta.

În prezent, pot instala manual pachete (descărcare de pe https://packages.ubuntu.com/ atunci dpkg -i) dar cam atât, totul eșuează.

De exemplu, dacă încerc să instalez libpython3.6-stdlib:

$ sudo apt-get install libpython3.6-stdlib

Eu iau:

libpython3.6-stdlib : Depinde: libpython3.6-minimal (= 3.6.9-1~18.04ubuntu1.4) dar 3.6.13-1+xenial2 urmează să fie instalat

ceea ce înseamnă că eu încă au pachete din 16.04 (Xenial).

Cum pot manual elimina toate pachetele 16.04?

Informații suplimentare (mașina pornește acum doar cu o consolă):

  • $ python --version => Python 3.6.13
  • $ lsb_release -a nu este disponibilă
  • $ uname -a îmi spune că este un nucleu 4.15 (care pare în concordanță cu 18.04)
N0rbert avatar
drapel zw
Comenzi precum `sudo apt-get dist-upgrade; sudo aptitude safe-upgrade` ar trebui să ajute.
drapel in
@N0rbert Mulțumesc, am încercat dist-upgrade, dar nu am reușit din cauza dependențelor rupte. Nu știam despre al doilea, mulțumesc.
Puncte:3
drapel in

FWIW: Punctul cheie a fost de fapt aici:

dpkg: eroare de procesare a pachetului ubuntu-advantage-tools (--remove):
 instalat pachetul ubuntu-advantage-tools subprocesul de script pre-eliminare a returnat eroare starea de ieșire 1

Întregul proces a eșuat din cauza eșecului scriptului „pre-eliminare” pentru pachet ubuntu-advantage-tools (habar nu ce este chestia aia!).

Asa am facut:

$ sudo mv /var/lib/dpkg/info/ubuntu-advantage-tools.prerm /var/lib/dpkg/info/ubuntu-advantage-tools.prerm_OLD

și am reușit să finalizez sudo apt --fix-broken install comanda.

Reporniți, apoi o altă problemă (tastatură nerecunoscută) care a fost rezolvată folosind alta intrebare, după pornirea în modul de recuperare:

$ sudo apt-get install xserver-xorg-input-all

În sfârșit, am reușit să pornească grafic, dar... încă unele probleme cu managerul de pachete care face referire la xenial (16.04). O sa mai postez o intrebare.

drapel in
In sfarsit am rezolvat totul. Cu ajutorul lui `dpkg -l | grep python*`, am eliminat toate pachetele vechi python identificate ca 16.04 (sau chiar unele 14.04!), folosind `dpkg --remove `.
Puncte:1
drapel es

Acesta sună ca un sistem foarte bolnav; poate doriți să-l scoateți din mizerie, adică să reinstalați. Dacă nu ai un separat /Acasă sistem de fișiere deja, copiați directorul de acasă și tot ceea ce ați pus de lucru și începeți de la capăt pentru a obține un sistem curat din nou.

Aș copia și eu /etc îndepărtat doar în cazul în care merită salvat un fișier de configurare non-trivial (dar aș renunța la copierea lui în noul sistem dacă nu este absolut necesar).

Gândiți-vă la asta astfel: acel sistem v-a servit bine timp de mulți ani (un timp imediat după 2016, deoarece este un 16.04); lasa-l sa se odihneasca in pace. ;-) Acum este timpul pentru ceva nou și curat.

Odată mi-am făcut o listă de verificare cu ceea ce fac unui Ubuntu proaspăt instalat pentru a-l obține într-o formă pe care o consider cel mai bine utilizabilă; poate te poți inspira din el: https://github.com/shundhammer/huha-linux-tips/blob/master/doc/ubuntu-tips.md (unele părți pot fi ușor depășite; nu contează)

drapel in
Într-adevăr, sistem foarte bolnav! De fapt, acea mașină funcționa chiar cu 14.04 înainte de asta, așa că da, destul de veche. Dar nu o să-mi dau drumul, încă încerc lucruri ;-) Și mulțumesc pentru lista de verificare, idei frumoase acolo.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.