Tocmai am adăugat un depozit PPA pentru versiunea de dezvoltare a GIMP, dar primesc această eroare:
$ apt-get update && apt-get upgrade
...
The following packages have been kept back:
gimp gimp-data libgegl-0.0-0 libgimp2.0
De ce și cum pot să o rezolv, astfel încât să pot folosi cea mai recentă versiune în locul celei pe care o am acum?
Conform unui articol de pe debian-administration.org,
Dacă dependențele s-au schimbat la unul dintre pachetele pe care le-ați instalat astfel încât trebuie instalat un nou pachet pentru a efectua actualizarea, atunci acesta va fi listat ca "kept-back".
Soluția precaută 1:
Conform [Răspunsul lui Pablo's, puteți rula sudo apt-get --with-new-pkgs upgrade
, iar acesta va instala pachetele păstrate înapoi.
Acest lucru are avantajul de a nu marca pachetele păstrate înapoi ca fiind "instalate manual," ceea ce ar putea forța mai multe intervenții din partea utilizatorului pe parcurs (a se vedea comentariile).
Dacă soluția lui Pablo's funcționează pentru dumneavoastră, vă rugăm să o votați. Dacă nu, vă rugăm să comentați ce nu a mers bine.
Soluția prudentă 2:
Soluția prudentă este să rulați sudo apt-get install <list of packages kept back>
. În cele mai multe cazuri, acest lucru va oferi pachetelor păstrate înapoi ceea ce au nevoie pentru a efectua cu succes actualizarea.
Soluția agresivă:
O soluție mai agresivă este să rulați sudo apt-get dist-upgrade
, care va forța instalarea acelor noi dependențe.
Dar dist-upgrade
poate fi destul de periculos. Spre deosebire de upgrade, acesta poate elimina pachete pentru a rezolva situații complexe de dependență. Spre deosebire de dumneavoastră, APT nu este întotdeauna suficient de inteligent pentru a ști dacă aceste adăugiri și eliminări ar putea provoca haos.
Așadar, dacă vă aflați într-un loc în care "soluția prudentă" nu'funcționează, dist-upgrade
poate funcționa... dar probabil că este mai bine să învățați mai multe despre APT și să rezolvați problemele de dependență "manual" instalând și eliminând pachete de la caz la caz.
Gândește-te la asta ca la repararea unei mașini... dacă ai timp și ești îndemânatic cu o cheie, vei avea o oarecare liniște dacă citești și faci singur reparația. Dacă te simți norocos, poți lăsa mașina la vărul tău distrugător
și să speri că se pricepe.
În mod normal, există două motive pentru care puteți vedea acest mesaj.
Dacă actualizarea programului (prin sudo apt-get upgrade
) ar determina adăugarea sau eliminarea unor pachete, atunci programul va fi reținut. În acest caz, puteți utiliza sudo apt-get dist-upgrade
, care va oferi apoi posibilitatea de a adăuga sau elimina programele suplimentare.
Acest lucru este destul de comun și, de obicei, nu reprezintă o problemă. Ocazional (în special în timpul unei versiuni alpha Ubuntu), un dist-upgrade
va oferi să elimine o mulțime de alte programe, caz în care probabil că veți dori să îl anulați.
În cazul în care programul depinde de pachete sau versiuni care nu sunt disponibile, atunci programul va fi reținut. Chiar nu puteți face nimic altceva decât să așteptați în această circumstanță, deoarece pachetul este practic dezinstalabil. Acest lucru se poate întâmpla atunci când pachetele sunt adăugate în depozit în afara ordinii, când un pachet este redenumit sau când un pachet încetează să mai furnizeze un pachet virtual.
Cel mai probabil, aceste pachete sunt reținute pentru că instalarea lor ar crea neconcordanțe de dependență. Acest lucru se poate întâmpla fie pentru că folosiți arhive în curs de dezvoltare activă, ppas, fie pentru că oglinda pe care o folosiți nu este complet actualizată.
În ultimul caz, trebuie doar să așteptați, când dependențele vor fi rezolvate, acestea vor fi instalate data viitoare.
Edit:
Mai există o altă posibilitate, pachetele ar putea fi reținute dacă se pune o reținere asupra lor sau dacă sunt fixate.