Cap. 4. Actualizarea de la Debian 7 (wheezy)

Cuprins

4.1. Pregătirile pentru actualizare
4.1.1. Faceți copii de siguranță pentru orice date sau configurații
4.1.2. Informați utilizatorii din timp
4.1.3. Pregătire pentru oprirea serviciilor
4.1.4. Pregătiți recuperarea
4.1.5. Pregătiți un mediu sigur pentru actualizare
4.2. Verificarea stării sistemului
4.2.1. Verificați în managerul de pachete acțiunile de efectuat
4.2.2. Dezactivarea alegerilor selective APT
4.2.3. Verificarea stării pachetelor
4.2.4. Secțiunea proposed-updates
4.2.5. Sursele neoficiale și backportări
4.3. Pregătirea surselor pentru APT
4.3.1. Adăugarea de surse APT din Internet
4.3.2. Adăugarea de surse APT pentru un sit-oglindă local
4.3.3. Adăugarea de surse APT de pe un mediu optic
4.4. Actualizarea pachetelor
4.4.1. Înregistrarea sesiunii
4.4.2. Actualizarea listei de pachete
4.4.3. Verificați dacă aveți suficient spațiu pentru actualizare
4.4.4. Actualizare minimală de sistem
4.4.5. Actualizarea sistemului
4.5. Probleme posibile în timpul actualizării
4.5.1. Dist-upgrade eșuează cu eroarea „Could not perform immediate configuration”
4.5.2. Programe îndepărtate
4.5.3. Conflicte sau cicluri de pre-dependențe
4.5.4. Conflict de fișiere
4.5.5. Modificări de configurare
4.5.6. Schimbare a sesiunii la consolă
4.5.7. Atenție deosebită la anumite pachete
4.6. Actualizarea nucleului și a pachetelor conexe
4.6.1. Instalarea meta-pachetului de nucleu
4.6.2. Probleme de temporizare a inițializării („waiting for root device”)
4.7. Lucruri de făcut înainte de repornire
4.7.1. Purging removed packages
4.8. Pregătirile pentru următoarea versiune
4.9. Componente depășite
4.10. Pachete învechite
4.10.1. Pachetele marionetă

4.1. Pregătirile pentru actualizare

Vă sugerăm ca înainte de actualizare să citiți informațiile din Cap. 5, Probleme în jessie de care ar trebui să știți. Acel capitol tratează probleme potențiale care nu sunt legate direct de procesul de actualizare, dar care ar putea fi important de știut înainte să începeți.

4.1.1. Faceți copii de siguranță pentru orice date sau configurații

Înainte de a vă actualiza sistemul, este indicat să faceți o copie de siguranță completă, sau cel puțin a datelor sau a configurațiilor pe care nu vă permiteți să le pierdeți. Uneltele și procesele de actualizare sunt foarte fiabile, însă o problemă hardware apărută în mijlocul actualizării poate afecta sever un sistem.

Cele mai importate lucruri de copiat sunt conținutul lui /etc, al lui /var/lib/dpkg, al lui /var/lib/apt/extended_states și rezultatul comenzii dpkg --get-selections "*" (ghilimelele sunt importante). Dacă folosiți aptitude pentru administrarea pachetelor pe sistemul dumneavoastră, va trebui să salvați și /var/lib/aptitude/pkgstates.

Procesul de actualizare, în sine, nu modifică nimic în directorul /home. Totuși, unele aplicații (cum ar fi unele componente ale suitei Mozilla, mediile grafice GNOME și KDE) sunt cunoscute pentru faptul că suprascriu valorile existente ale configurațiilor utilizatorilor cu noi valori implicite în momentul în care o versiune nouă a aplicației este pornită pentru prima oară de către utilizator. Ca măsură de precauție, veți dori probabil să faceți o copie de siguranță a fișierelor și directoarelor ascunse (care încep cu punct, „dotfiles”) din directoarele utilizatorilor. Copia ar putea să vă ajute să recreați vechile configurații. Probabil veți dori să informați și utilizatorii în legătură cu această problemă.

Orice operație de instalare a pachetelor trebuie executată cu drepturi de superutilizator, deci fie vă autentificați ca root, fie utilizați su sau sudo pentru a obține drepturile de acces necesare.

Operația de actualizare trebuie să respecte câteva precondiții; va trebui să verificați dacă sunt respectate înainte de actualizare.

4.1.2. Informați utilizatorii din timp

Este o idee bună să vă informați din timp toți utilizatorii despre actualizările planificate, chiar dacă utilizatorii ce vă accesează sistemul prin conexiuni ssh n-ar trebui să sesizeze prea multe în timpul actualizării și ar trebui să-și poată continua lucrul.

Dacă doriți să vă luați măsuri suplimentare de precauție, faceți o copie de siguranță sau demontați partiția /home înainte de actualizare.

Va trebui sa faceți o înnoire de nucleu odată cu trecerea la jessie, deci o repornire va fi necesară. În mod normal aceasta se face atunci când actualizarea este încheiată.

4.1.3. Pregătire pentru oprirea serviciilor

Pot exista servicii oferite de sistem, care sunt asociate cu pachete care vor fi incluse in actualizare. În acest caz țineți cont că aceste servicii vor fi oprite în timp ce pachetele asociate sunt înlocuite și configurate. În această perioadă, serviciile respective nu vor fi disponibile.

Timpul precis de indisponibilitate a acestor servicii variază în funcție de numărul de pachete înnoite în sistem și include de asemenea timpul necesar administratorului de sistem să răspundă la întrebările de configurare ale diverselor pachete înnoite (dacă există). Țineți cont că în cazul în care procesul de înnoire se face nesupraveghat și sistemul solicită indicații pe parcursul actualizării, este foarte posibil ca serviciile să fie indisponibile[1] pentru o perioadă de timp semnificativă.

Dacă sistemul de actualizat furnizează servicii critice pentru utilizatori sau rețea[2] puteți reduce timpul de indisponibilitate dacă faceți o înnoire minimală, cum este descrisă în Secțiune 4.4.4, „Actualizare minimală de sistem”, urmată de o înnoire a nucleului și o repornire și apoi înnoiți pachetele asociate cu serviciile critice. Înnoiți aceste pachete înainte de înnoirea completă a sistemului, descrisă în Secțiune 4.4.5, „Actualizarea sistemului ”. În acest fel puteți să vă asigurați că aceste servicii critice rulează și sunt disponibile pe durata întregului proces de înnoire și timpul cât sunt indisponibile este redus.

4.1.4. Pregătiți recuperarea

Deși Debian face tot posibilul ca sistemul să poată fi pornit în orice moment există un risc real să întâmpinați probleme la reinițializarea sistemului, după actualizare. Problemele potențial cunoscute sunt documentate aici și în următorul capitol al Notelor de lansare.

Din acest motiv are sens să vă asigurați că veți putea să recuperați sistemul în eventualitatea că acesta nu va mai putea reporni sau, în cazul sistemelor la distanță, nu va putea să activeze conexiunile la rețea.

Dacă faceți actualizarea de la distanță printr-o conexiune ssh este recomandabil să luați măsurile necesare pentru a putea accesa serverul printr-un terminal serial. Există posibilitatea ca după actualizarea nucleului și repornirea sistemului, să fie nevoie să reparați configurația sistemului printr-o consolă locală. De asemenea, dacă sistemul este repornit accidental în mijlocul actualizării există șansa să fie nevoie să recuperați folosind o consolă locală.

Cel mai evident lucru care poate fi încercat este să reporniți cu vechiul nucleu. Totuși, nu este garantat că acest lucru va funcționa.

Dacă aceasta nu reușește, va trebui să porniți sistemul printr-o metodă alternativă, astfel încât să-l puteți accesa și repara. O opțiune este să folosiți o imagine specială pentru recuperare sau un Linux care rulează de pe CD. După pornirea în acest fel ar trebui să puteți monta sistemul de fișiere rădăcină și să faceți chroot în el pentru a investiga și repara problema.

O altă opțiune pe care o recomandăm este folosirea modului recuperare al Programului de instalare Debian jessie. Avantajul folosirii programului de instalare este că puteți alege dintre multiplele metode de instalare pe cea care se potrivește cel mai bine situației. Vă rugăm să consultați secțiunea Recovering a Broken System (n.tr. Recuperarea unui sistem stricat) din capitolul 8 al Ghidului de instalare și FAQ - Întrebări frecvente despre Programul de instalare.

4.1.4.1. Consola de depanare în timpul inițializării folosind initrd

Pachetul initramfs-tools include un interpretor de comenzi minimal[3] în imaginile initrd pe care le generează. Dacă, de exemplu, imaginea initrd nu poate să monteze sistemul de fișiere rădăcină, veți fi transferat la acest interpretor de comenzi, care dispune de comenzi de bază pentru a putea detecta și, în măsura posibilităților, de a rezolva problema.

Lucruri uzuale pe care ar trebui să le verificați: prezența fișierelor-dispozitiv corecte în /dev, care module sunt încărcate (cat /proc/modules), verificarea rezultatului comenzii dmesg pentru erori la încărcarea driverelor. Rezultatul comenzii dmesg va arăta și care fișiere-dispozitiv au fost alocate discurilor. Ar trebui să verificați rezultatul comenzii echo $ROOT pentru a vă asigura că sistemul de fișiere rădăcină este pe dispozitivul pe care vă așteptați să fie.

Dacă reușiți să corectați problema, puteți ieși din consola de depanare cu comanda exit și apoi se va continua procesul de inițializare de la punctul în care a eșuat. Desigur, va trebui să reparați problema reală și să regenerați imaginea initrd pentru ca următoarea inițializare a sistemului să nu eșueze la fel.

4.1.5. Pregătiți un mediu sigur pentru actualizare

Actualizarea distribuției ar trebui făcută fie local dintr-o consolă virtuală în mod text (sau printr-o conexiune la un terminal serial), fie de la distanță printr-o conexiune ssh.

[Important]Important

Dacă utilizați servicii VPN (ca tinc) este posibil să nu fie disponibile pe parcursul procesului de înnoire. Mai multe informații la Secțiune 4.1.3, „Pregătire pentru oprirea serviciilor”.

Pentru a avea încă o măsură de siguranță când actualizați de la distanță, vă sugerăm să rulați procesul de actualizare într-o consolă virtuală furnizată de programul screen, lucru care vă va permite să vă reconectați în siguranță și oferă siguranța că procesul de instalare nu va fi întrerupt, chiar dacă procesul care întreține conexiunea la distanță eșuează.

[Important]Important

Nu actualizați sistemul folosind o sesiune telnet, rlogin, rsh, sau dintr-o sesiune X administrată de xdm, gdm sau kdm, etc. pe sistemul pe care îl actualizați. Acest lucru este necesar deoarece oricare dintre aceste servicii poate fi oprit în timpul actualizării, ceea ce poate rezulta într-un sistem inaccesibil, actualizat doar parțial. Utilizarea aplicației GNOME update-manager pentru actualizarea la versiuni noi de sistem este descurajată, deoarece acest utilitar depinde de sesiunea de birou curentă.

TODO: surely gdm/kdm are sane?
(vorlon) haha, no, gdm is not; I had that thought, and tested a gdm
         restart on my live session ;)

4.2. Verificarea stării sistemului

Procedeul de actualizare descris în acest capitol a fost conceput pentru actualizări de la sisteme wheezy pure, fără pachete din surse terțe. Pentru o mai mare fiabilitate a procedeului de actualizare veți dori să ștergeți pachetele provenite din surse terțe înainte să începeți actualizarea.

Direct upgrades from Debian releases older than 7 (wheezy) are not supported. Please follow the instructions in the Release Notes for Debian 7 to upgrade to 7 first.

De asemenea, se pleacă de la premiza că ați actualizat până la ultima versiune minoră a lui wheezy. Dacă nu ați făcut acest lucru sau dacă aveți dubii, urmați instrucțiunile din Secțiune A.1, „Actualizarea sistemului wheezy”.

4.2.1. Verificați în managerul de pachete acțiunile de efectuat

În anumite cazuri, dacă ați folosit apt-get să instalați pachete în loc să folosiți aptitude, aptitude poate considera un pachet ca fiind nefolosit și să-l înregistreze pentru ștergere. În general, ar trebui să vă asigurați că sistemul este adus la zi și curat, înainte de a continua procesul de actualizare.

Din această cauză ar trebui să verificați dacă sunt acțiuni în așteptare în managerul de pachete aptitude. Dacă un pachet este programat pentru ștergere sau actualizare în managerul de pachete ar putea avea un impact negativ asupra procedeului de actualizare. Țineți cont că acest lucru nu poate fi corectat decât dacă sources.list se referă încă la wheezy și nu la stable sau jessie, vedeți Secțiune A.2, „Verificarea listei de surse”.

Pentru a face această verificare porniți aptitude în modul visual și apăsați g (de la Go). Dacă vă arată vreo acțiune ar trebui să revizuiți și să anulați sau să efectuați acțiunile sugerate. Dacă nu este sugerată nici o acțiune va fi afișat mesajul No packages are scheduled to be installed, removed, or upgraded (sau Nici un pachet nu este programat sa fie instalat, șters sau înnoit).

4.2.2. Dezactivarea alegerilor selective APT

Dacă ați configurat APT să instaleze anumite pachete dintr-o distribuție diferită de cea stabilă (ex. din testare), ar putea fi nevoie să schimbați configurația alegerilor selective APT (prezentă în /etc/apt/preferences și /etc/apt/preferences.d/) pentru a permite actualizarea pachetelor la versiunile din noua versiune stabilă. Mai multe informații despre alegeri selective APT pot fi găsite în apt_preferences(5).

4.2.3. Verificarea stării pachetelor

Indiferent de metoda utilizată pentru actualizare, este recomandat să verificați, mai întâi, starea tuturor pachetelor, asigurându-vă că toate pachetele sunt într-o stare actualizabilă. Următoarea comandă vă va afișa eventualele pachete care au starea de jumătate-instalat sau eșec-configurare, precum și cele cu o stare eronată.

# dpkg --audit

Ați putea, de asemenea, să inspectați starea tuturor pachetelor de pe sistemul dumneavoastră utilizând aptitude sau folosind comenzi precum

# dpkg -l | pager

sau

# dpkg --get-selections "*" > ~/pachete-curente.txt

Este preferabil să ștergeți marcajul „păstrat” al oricărui pachet în această stare, înaintea actualizării. Dacă un pachet esențial care trebuie actualizat este „păstrat”, actualizarea va eșua.

A se reține că aptitude folosește o metodă diferită de a marca pachetele care sunt păstrate față de apt-get și dselect. Puteți identifica pachetele păstrate pentru aptitude cu

# aptitude search "~ahold" 

Dacă vreți să verificați ce pachete aveți păstrate pentru apt-get, ar trebui să folosiți

# dpkg --get-selections | grep 'hold$'

Dacă ați modificat și recompilat un pachet local și nu l-ați redenumit sau nu i-ați atașat o epocă în versiune, trebuie să îl plasați pe „păstrat” pentru a preveni actualizarea sa.

Starea „păstrat” pentru apt-get poate fi schimbată folosind:

# echo nume_pachet hold | dpkg --set-selections

Înlocuiți hold cu install pentru a demarca starea hold.

Dacă este ceva ce trebui rezolvat, cel mai bine vă asigurați că sources.list încă se referă la wheezy după cum este explicat în Secțiune A.2, „Verificarea listei de surse”.

4.2.4. Secțiunea proposed-updates

Dacă aveți secțiunea proposed-updates enumerată în fișierul /etc/apt/sources.list, ar fi bine să o ștergeți înainte de a încerca să actualizați sistemul. Aceasta este o măsură de precauție pentru a reduce probabilitatea de apariție a unor conflicte.

4.2.5. Sursele neoficiale și backportări

Dacă aveți pachete non-Debian pe sistemul dumneavoastră, ar trebui să știți că acestea ar putea fi eliminate în cursul actualizării datorită dependențelor conflictuale. Dacă aceste pachete au fost instalate prin adăugarea unei arhive suplimentare în /etc/apt/sources.list, ar trebui să verificați dacă această arhivă oferă pachete compilate pentru jessie și să schimbați linia cu sursa corespunzătoare la același moment cu schimbarea surselor pentru pachetele Debian.

Unii utilizatori ar putea avea instalate pe sistemele lor wheezy versiuni neoficiale mai noi a unor pachete care sunt în Debian. Aceste pachete pot cauza probleme în timpul unei actualizări deoarece pot rezulta în conflicte de fișiere[4]. Secțiune 4.5, „Probleme posibile în timpul actualizării” are informații despre cum să rezolvați conflictele de fișiere, dacă apar.

4.3. Pregătirea surselor pentru APT

Înainte de a începe actualizarea trebuie să ajustați fișierul de configurare apt pentru listele de pachete, /etc/apt/sources.list.

apt va lua în considerare toate pachetele care pot fi găsite prin intermediul unei linii deb și va instala pachetul cu cea mai mare versiune, stabilind prioritatea în funcție de poziția liniilor (astfel, în cazul mai multor locații ar trebui să listați în primul rând un harddisk local, după care CD-uri și după aceea situri-oglindă HTTP/FTP).

O versiune poate fi referită deseori atât prin numele de cod (de ex: wheezy, jessie) cât și prin numele de stare (ex: oldstable, stable, testing, unstable). Referirea la o versiune folosind numele de cod are avantajul că nu veți avea surpriza unei noi versiuni, motiv pentru care am folosit această abordare aici. Evident, aceasta înseamnă că va trebui să urmăriți anunțurile de lansare. Dacă utilizați numele de stare, veți observa multe actualizări pentru pachete, disponibile imediat ce o versiune a fost lansată.

4.3.1. Adăugarea de surse APT din Internet

Configurația implicită este pregătită pentru instalarea de pe serverele Debian din Internet, însă poate veți dori să modificați /etc/apt/sources.list pentru a utiliza servere alternative, preferabil dintr-un loc apropiat de dumneavoastră, din punct de vedere a rețelei în care vă aflați.

Serverele Debian alternative HTTP sau FTP pot fi găsite la https://www.debian.org/distrib/ftplist (secțiunea Lista completă a siturilor-oglindă Debian). Locațiile alternative HTTP sunt în general mai rapide decât cele FTP.

De exemplu, să presupunem că cea mai apropiată locație alternativă Debian este http://mirrors.kernel.org/. Când inspectați această locație cu un navigator de web sau un client de FTP, veți observa că directoarele principale sunt organizate astfel:

http://mirrors.kernel.org/debian/dists/jessie/main/binary-armhf/...
http://mirrors.kernel.org/debian/dists/jessie/contrib/binary-armhf/...

Pentru a utiliza această locație cu apt, trebuie să adăugați această linie la fișierul dumneavoastră sources.list:

deb http://mirrors.kernel.org/debian jessie main contrib

A se observa faptul că dists este adăugat implicit, iar argumentele de după numele versiunii sunt utilizate pentru a expanda calea în directoare multiple.

După ce adăugați noile surse, dezactivați liniile deb care existau înainte în sources.list, prin plasarea unui diez (#) la începutul lor.

4.3.2. Adăugarea de surse APT pentru un sit-oglindă local

În loc să folosiți situri-oglindă HTTP sau FTP, ați putea dori să modificați /etc/apt/sources.list pentru a folosi o sursă pe un disc local (poate montat cu NFS).

De exemplu, locația dumneavoastră cu pachete poate fi în /var/ftp/debian/, având directoarele principale astfel:

/var/ftp/debian/dists/jessie/main/binary-armhf/...
/var/ftp/debian/dists/jessie/contrib/binary-armhf/...

Pentru a utiliza această locație cu apt, trebuie să adăugați această linie la fișierul dumneavoastră sources.list:

deb file:/var/ftp/debian jessie main contrib

A se observa faptul că dists este adăugat implicit, iar argumentele de după numele versiunii sunt utilizate pentru a expanda calea în directoare multiple.

După ce adăugați noile surse, dezactivați liniile deb care existau înainte în sources.list, prin plasarea unui diez (#) la începutul lor.

4.3.3. Adăugarea de surse APT de pe un mediu optic

Dacă doriți să folosiți doar CD-uri (sau DVD-uri sau discuri Blu-ray), dezactivați liniile deb care existau înainte în sources.list, prin plasarea unui diez (#) la începutul lor.

Asigurați-vă că există o linie în /etc/fstab ce permite montarea CD-ului la locația /cdrom (punctul de montare /cdrom este necesar pentru apt-cdrom). De exemplu, dacă/dev/scd0 reprezintă unitatea CD-ROM, /etc/fstab ar trebui să conțină o linie de genul:

/dev/scd0 /cdrom auto noauto,ro 0 0

A se reține că nu trebuie să existe nici un spațiu între cuvintele noauto,ro din cel de-al patrulea câmp.

Pentru a verifica funcționarea, introduceți un CD și încercați să rulați

# mount /cdrom    # aceasta va monta CD-ul în punctul de montare
# ls -alF /cdrom  # aceasta va afișa directorul rădăcină din CD
# umount /cdrom   # aceasta va demonta CD-ul

Apoi, rulați

# apt-cdrom add

pentru fiecare CD-ROM Debian cu binare pe care îl aveți, pentru a adăuga date despre fiecare CD în baza de date APT.

4.4. Actualizarea pachetelor

Metoda recomandată pentru actualizarea de la versiuni Debian precedente este folosirea utilitarului pentru administrarea pachetelor apt-get. În lansările anterioare utilitarului aptitude era recomandat pentru acest scop, dar versiuni recente ale apt-get oferă același nivel de funcționalitate și se pare că produce în mai multe cazuri rezultatul dorit la actualizări.

Nu uitați să montați toate partițiile necesare (în special partiția rădăcină și partiția /usr) în mod citire-scriere, cu o comandă ca:

# mount -o remount,rw /punct_de_montare

În continuare ar trebui să verificați că sursele APT (din /etc/apt/sources.list) se referă la jessie sau la stable. Nu ar trebui să fie nici o sursă care se referă la wheezy.

[Notă]Notă

Liniile de surse pentru CD-ROM pot uneori conține unstable. Deși asta ar putea fi derutant, ele nu trebuie schimbate.

4.4.1. Înregistrarea sesiunii

Este recomandat să utilizați programul /usr/bin/script pentru a înregistra sesiunea de actualizare. În cazul în care intervine vreo problemă veți avea un istoric a ceea ce s-a întâmplat, iar dacă este nevoie, veți putea oferi informații exacte când raportați problema. Pentru a porni înregistrarea, tastați:

# script -t 2>~/upgrade-jessieetapă.time -a ~/upgrade-jessieetapă.script

sau similar. Dacă trebuie să porniți înregistrarea din nou (ex. dacă trebuie să reporniți sistemul) folosiți valori diferite pentru etapă pentru a indica ce etapă a actualizării este înregistrată. Nu puneți fișierul script într-un director temporar cum ar fi /tmp sau /var/tmp (fișiere în aceste directoare ar putea fi șterse în timpul actualizării sau la o repornire).

Fișierul script vă va permite, de asemenea, să consultați informația care a defilat în afara ecranului. Dacă sunteți la consola sistemul puteți schimba la VT2 (folosind Alt-F2) și, după ce vă autentificați, utilizați less -R ~root/actualizare-jessie.script pentru a vedea fișierul.

După terminarea actualizării, puteți opri comanda script tastând exit la prompt.

TODO: (jfs) Ar putea să menționeze scriptul pe care l-am oferit în #400725 care este util dacă 
nu ați renunțat la fișierul de cronometrare

Dacă ați folosit opțiunea -t a lui script puteți folosi programul scriptreplay pentru a reda întreaga sesiune:

# scriptreplay ~/actualizare-jessie.time ~/actualizare-jessie.script

4.4.2. Actualizarea listei de pachete

Mai întâi trebuie preluată lista pachetelor disponibile în noua versiune. Aceasta se face cu:

# apt-get update

4.4.3. Verificați dacă aveți suficient spațiu pentru actualizare

Înainte de a începe actualizarea completă, așa cum este descrisă în Secțiune 4.4.5, „Actualizarea sistemului ”, trebuie să vă asigurați că aveți suficient spațiu pe disc. În primul rând, orice pachet necesar pentru instalare, care este descărcat prin rețea este stocat în /var/cache/apt/archives (și subdirectorul partial/ în timpul descărcării), deci trebuie să aveți suficient spațiu pe sistemul de fișiere pe care se află /var/ pentru a descărca pachetele ce vor fi instalate pe sistemul dumneavoastră. După descărcare veți avea nevoie de mai mult spațiu pe alte partiții de sistem pentru a instala atât pachetele actualizate (care e posibil să conțină binare mai mari sau mai multe date) cât și pachetele noi care vor fi aduse pentru actualizare. Dacă sistemul dumneavoastră nu are suficient spațiu este posibil să rămâneți cu o actualizare incompletă. În această situație, recuperarea este foarte dificilă.

apt-get vă poate arăta informații detaliate despre spațiul necesar pentru instalare. Înainte să începeți actualizarea, puteți vedea această estimare folosind comanda:

# apt-get -o APT::Get::Trivial-Only=true dist-upgrade
[ ... ]
XXX actualizate, XXX noi instalate, XXX de îndepărtat și XXX neactualizate.
Trebuie descărcate xx.xMB de arhive. 
După această operațiune, AAAMB spațiu suplimentar va fi folosit.
[Notă]Notă

Rulând această comandă la începutul procedeului de actualizare ar putea genera o eroare, din motive descrise în următoarele secțiuni. În acest caz va trebui să așteptați până ați făcut o actualizare minimală conform Secțiune 4.4.4, „Actualizare minimală de sistem” înainte de a rula această comandă pentru a estima spațiul pe disc.

Dacă nu aveți spațiu suficient pentru actualizare, apt-get vă va avertiza cu un mesaj asemănător cu:

E: Nu aveți spațiu suficient în /var/cache/apt/archives/.

În această situație eliberați spațiu înainte de actualizare. Aveți mai multe opțiuni:

  • Ștergeți pachetele care au fost descărcate anterior pentru a fi instalate (în /var/cache/apt/archive). Curățarea depozitului temporar de pachete, cu comanda apt-get clean va șterge toate fișierele descărcate anterior.

  • Îndepărtați pachete uitate. Dacă ați utilizat aptitude sau apt-get pentru a instala manual pachete în wheezy, acesta va reține faptul că au fost instalate manual și va putea marca drept inutile pachetele care au fost instalate doar ca dependențe și nu mai sunt necesare deoarece pachetele care aveau nevoie de ele au fost șterse. În consecință nu va marca pentru ștergere pachetele pe care le-ați instalat manual. Pentru a îndepărta pachetele instalate automat și care nu mai sunt folosite, executați:

    # apt-get autoremove
    

    Puteți folosi și deborphan, debfoster sau cruft pentru a găsi pachete inutile. Nu dezinstalați pachetele prezentate de aceste unelte fără o examinare atentă, mai ales dacă folosiți opțiunile agresive, neimplicite, care sunt susceptibile de a da rezultate eronate cu privire la starea pachetelor. Este indicat să analizați pachetele sugerate pentru dezinstalare (ex: conținutul, dimensiunea și descrierea) înainte de a le dezinstala.

  • Îndepărtați pachete care ocupă prea mult loc și nu sunt necesare imediate (le puteți instala din nou după actualizare). Dacă aveți instalat pachetul popularity-contest, puteți folosi popcon-largest-unused pentru a afișa pachetele nefolosite care ocupă cel mai mult spațiu. Puteți găsi pachetele care ocupă cel mai mult spațiu cu dpigs (disponibil în pachetul debian-goodies) sau cu wajig (rulând wajig size). Puteți folosi și aptitude. Porniți aptitude în modul vizual, alegeți VizualizăriListă nouă simplă de pachete (ViewsNew Flat Package List în varianta engleză), apăsați tasta l și introduceți ~i, apăsați S și introduceți ~installsize iar ca rezultat veți obține o listă cu care veți putea lucra.

  • Din sistem se pot șterge fișierele de traducere și localizare, în caz că nu mai sunt necesare. Se poate instala localepurge și configura astfel încât doar câteva din localizări să fie păstrate în sistem. Aceasta va reduce din spațiul ocupat în /usr/share/locale.

  • Mutați temporar pe un alt sistem sau ștergeți permanent fișierele jurnal de sistem din /var/log/.

  • Folosiți un /var/cache/apt/archives temporar: puteți folosi un director pentru depozitul temporar de pe alt sistem de fișiere (dispozitiv de stocare USB, harddisk de împrumut, un alt sistem de fișiere în utilizare, ...)

    [Notă]Notă

    Nu folosiți o partiție NFS deoarece conexiunea la rețea ar putea fi întreruptă în timpul actualizării.

    De exemplu, dacă aveți un dispozitiv USB montat la /media/usbkey:

    1. ștergeți pachetele care au fost descărcate anterior spre instalare:

      # apt-get clean

    2. copiați directorul /var/cache/apt/archives pe dispozitivul USB:

      # cp -ax /var/cache/apt/archives /media/usbkey/

    3. montați directorul pentru depozit temporar peste cel curent:

      # mount --bind /media/usbkey/archives /var/cache/apt/archives

    4. după actualizare restaurați directorul /var/cache/apt/archives original:

      # umount /media/usbkey/archives

    5. ștergeți /media/usbkey/archives rămas.

    puteți crea directorul pentru depozit temporar pe orice sistem de fișiere montat pe sistemul dumneavoastră.

  • Executați o actualizare minimală a sistemului (citiți Secțiune 4.4.4, „Actualizare minimală de sistem”) sau actualizări parțiale a sistemului urmată de o actualizare completă. Acest lucru va face posibil să actualizați sistemul parțial și vă va permite curățirea depozitului temporar de pachete înainte de actualizarea completă.

Țineți cont că pentru a putea șterge pachete în siguranță se recomandă să treceți sources.list înapoi la wheezy după cum este descris în Secțiune A.2, „Verificarea listei de surse”.

4.4.4. Actualizare minimală de sistem

În unele cazuri, dacă faceți direct o actualizare completă (așa cum e descrisă mai jos), puteți șterge un număr mare de pachete pe care ați dori să le păstrați. Așadar vă recomandăm o actualizare în doi pași, mai întâi o actualizare minimală pentru a depăși conflictele, apoi o actualizare completă așa cum este descrisă în Secțiune 4.4.5, „Actualizarea sistemului ”.

Pentru a face acest lucru mai întâi rulați:

# apt-get upgrade

Aceasta are ca efect actualizarea acelor pachete care pot fi actualizate fără ca alte pachete să fie șterse sau instalate.

Actualizarea minimală a sistemului poate fi folositoare și atunci când sistemul nu dispune de spațiu suficient și nu se poate face o actualizare completă datorită constrângerilor de spațiu.

Dacă pachetul apt-listchanges este instalat acesta va afișa informații importante despre pachetele actualizate (în configurația implicită). După ce ați citit apăsați q pentru a ieși din cititor și a continua actualizarea.

4.4.5. Actualizarea sistemului

Odată executați pașii anteriori, sunteți gata să continuați cu partea principală a actualizării. Executați:

# apt-get dist-upgrade
[Notă]Notă

Procesul de actualizare pentru unele versiuni precedente recomanda utilizarea aptitude pentru actualizare. Această unealtă nu este recomandată pentru actualizări de la wheezy la jessie.

Aceasta va efectua o actualizare completă a sistemului, instalând cele mai noi versiuni disponibile ale tuturor pachetelor și va rezolva toate posibilele schimbări de dependențe dintre pachetele din diferitele versiuni. Dacă este necesar, va instala câteva pachete noi (de obicei, versiuni de biblioteci mai noi sau pachete redenumite) și va elimina orice pachete învechite care sunt în conflict.

Când actualizați de pe un set de CD-uri (sau DVD-uri), vi se va cere să introduceți anumite CD-uri la diverse momente în timpul actualizării. S-ar putea să trebuiască să introduceți de mai multe ori același CD, datorită pachetelor interdependente dispersate pe mai multe CD-uri.

Pachetele deja instalate care nu pot fi înnoite la versiuni mai noi fără a schimba statutul instalării altui pachet vor fi lăsate la versiunea curentă (marcate ca held back). Acest lucru poate fi rezolvat prin utilizarea comenzii aptitude și alegerea acestor pachete pentru instalare sau prin rularea comenzii apt-get -f install pachet.

4.5. Probleme posibile în timpul actualizării

Secțiunile următoare descriu probleme cunoscute care pot apărea pe timpul procesului de actualizare la jessie.

4.5.1. Dist-upgrade eșuează cu eroarea „Could not perform immediate configuration”

În anumite cazuri pasul apt-get dist-upgrade poate să eșueze după descărcarea pachetelor cu:

E: Could not perform immediate configuration on 'package'.  Please see man 5 apt.conf under APT::Immediate-Configure for details.

Dacă se întâmplă acest lucru, rularea comenzii apt-get dist-upgrade -o APT::Immediate-Configure=0 ar putea permite continuarea actualizării.

O altă posibilă ocolire a problemei ar fi să adăugați temporar surse pentru wheezy și jessie în sources.list și să rulați apt-get update.

4.5.2. Programe îndepărtate

The upgrade process to jessie might ask for the removal of packages on the system. The precise list of packages will vary depending on the set of packages that you have installed. These release notes give general advice on these removals, but if in doubt, it is recommended that you examine the package removals proposed by each method before proceeding. For more information about packages obsoleted in jessie, see Secțiune 4.10, „Pachete învechite”.

4.5.3. Conflicte sau cicluri de pre-dependențe

Uneori este necesar să activați opțiunea APT::Force-LoopBreak în APT pentru a putea elimina temporar un pachet esențial, datorită unei bucle Conflict/Pre-Dependență. apt-get vă va avertiza în legătură cu aceasta și va abandona actualizarea. Puteți ocoli această situație precizând opțiunea -o APT::Force-LoopBreak=1 în linia de comandă a lui apt-get.

Este posibil ca structura dependențelor dintr-un sistem să fie coruptă într-o asemenea măsură încât să necesite intervenție manuală. În mod obișnuit aceasta înseamnă utilizarea apt-get sau

# dpkg --remove nume_pachet

pentru a elimina pachetele problemă, sau

# apt-get -f install
# dpkg --configure --pending

În cazuri extreme s-ar putea să fie nevoie să forțați o reinstalare cu o comandă cum ar fi

# dpkg --install /cale/către/nume_pachet.deb

4.5.4. Conflict de fișiere

Dacă actualizați de la un sistem wheezy pur nu ar trebui să apară conflicte de fișiere, însă acestea pot interveni dacă aveți pachete neoficiale de tip backport. Un conflict de fișiere poate rezulta într-o eroare de genul:

Unpacking <pachet-oarecare> (from <fișier-pachet-oarecare>) ...
dpkg: error processing <pachet-oarecare> (--install):
 trying to overwrite `<ceva-fișier>',
 which is also in package <alt-pachet>
dpkg-deb: subprocess paste killed by signal (Broken pipe)
 Errors were encountered while processing:
 <pachet-oarecare>

Puteți încerca să rezolvați un conflict de fișiere prin eliminarea forțată a pachetelor menționate în ultima linie a mesajului de eroare:

# dpkg -r --force-depends nume_pachet

După ce ați rezolvat problema, ar trebui să puteți continua actualizarea prin repetarea comenzilor apt-get descrise mai sus.

4.5.5. Modificări de configurare

În timpul actualizării este posibil să apară întrebări referitor la configurarea sau re-configurarea mai multor pachete. Dacă sunteți întrebat dacă un fișier din directorul /etc/init.d, sau fișierul /etc/manpath.config ar trebui înlocuit cu versiunea responsabilului de pachet, în general este necesar să răspundeți cu da (yes în engleză) pentru a asigura integritatea sistemului. Puteți oricând reveni la versiunile vechi, deoarece acestea vor fi salvate cu extensia .dpkg-old.

Dacă nu știți sigur ce să faceți, scrieți numele pachetului sau fișierului și amânați rezolvarea problemelor pentru mai târziu. Puteți căuta în fișierul script informația afișată în timpul actualizării.

4.5.6. Schimbare a sesiunii la consolă

Dacă faceți actualizare folosind consola de sistem locală, veți observa că la un moment dat în timpul actualizării consola va fi mutată într-o altă vizualizare și procesul de actualizare nu va mai fi vizibil. Acest lucru se poate întâmpla spre exemplu pe sisteme de birou când este repornit managerul de display.

Pentru a recupera consola cu procesul de actualizare în derulare va trebui să folosiți Ctrl+Alt+F1 (dacă sunteți în mediul grafic) sau Alt+F1 (dacă sunteți în modul text) pentru a vă întoarce la terminalul virtual 1. Înlocuiți F1 cu tasta funcțională cu același număr ca terminalul virtual pe care se derulează procesul de actualizare. Puteți de asemenea să folosiți Alt+săgeată-stânga sau Alt+săgeată-dreapta pentru a schimba între diferitele terminale în mod text.

4.5.7. Atenție deosebită la anumite pachete

În cele mai multe cazuri actualizarea pachetelor de la wheezy la jessie ar trebui să se desfășoare fără probleme. Există un număr mic de cazuri când este necesar să interveniți, fie înainte, fie în procesul de actualizare. Acestea sunt detaliate mai jos în funcție de pachet.

4.5.7.1. Sudo

TODO: Is this relevant for Jessie (or was it is a thing for Wheezy)?

Dacă ați modificat /etc/sudoers atunci ar trebui să țineți cont de schimbările făcute la modul în care este gestionată configurația sudo. Fișierul /etc/sudoers implicit include acum următoarele directive:

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
#includedir /etc/sudoers.d

Aceste linii nu sunt adăugate automat în /etc/sudoers în timpul actualizării. (Veți putea să rulați în continuare comenzi sudo specificând calea completă.) Ar trebui să luați în considerare migrarea modificărilor locale în noul director /etc/sudoers.d și să folosiți fișierul /etc/sudoers implicit. De exemplu:

# mv /etc/sudoers /etc/sudoers.d/mychanges
# mv /etc/sudoers.dpkg-new /etc/sudoers

Ar putea fi necesară editarea fișierului /etc/sudoers.d/mychanges pentru a îndepărta directive Defaults și #includedir nedorite. Ar fi bine să folosiți comanda visudo pentru aceasta:

# visudo -f /etc/sudoers.d/mychanges

4.6. Actualizarea nucleului și a pachetelor conexe

Această secțiune explică actualizarea nucleului și identifică potențialele probleme legate de aceasta. Puteți instala unul din pachetele linux-image-* oferite de Debian sau să compilați un nucleul personalizat din surse.

O mare parte din informația expusă în această secțiune se bazează pe presupunerea că veți folosi un nucleu modular din Debian împreună cu initramfs-tools și udev. Dacă ați ales să folosiți un nucleu ce nu necesită initrd sau este folosit un alt generator initrd, atunci o parte din aceste informații ar putea să nu fie de interes.

4.6.1. Instalarea meta-pachetului de nucleu

Atunci când actualizați (folosind dist-upgrade) de la wheezy la jessie, este indicat să instalați un meta-pachet linux-image-*, dacă nu ați făcut deja acest lucru. Acest pachet poate fi instalat automat prin procesul de actualizare a distribuției. Puteți verifica acest lucru rulând comanda:

# dpkg -l "linux-image*" | grep ^ii

Dacă această comandă nu afișează nimic, atunci va trebui să instalați manual un pachet linux-image nou. Pentru a vedea o listă cu meta-pachetele linux-image disponibile, rulați comanda:

# apt-cache search linux-image- | grep -v transition

Dacă nu sunteți siguri ce pachet ar trebui să alegeți, rulați comanda uname -r și căutați un pachet cu un nume asemănător. De exemplu, dacă va fi afișat „2.6.32-5-amd64” este recomandat să instalați linux-image-amd64. Puteți folosi și apt-cache pentru a vedea descrierea lungă a fiecărui pachet pentru a face o alegere potrivită. De exemplu:

# apt-cache show linux-image-amd64

Utilizați apoi comanda apt-get install pentru instalare. Odată ce ați instalat noul nucleu va trebui să reporniți sistemul cu prima ocazie pentru a beneficia de acesta.

Pentru cei mai îndrăzneți există un mod mai ușor să compilați propriul nucleu folosind Debian. Instalați sursele nucleului oferite de pachetul linux-source. Puteți folosi ținta deb-pkg disponibilă în fișierul „makefile” ce vine cu sursele pentru a construi fișierele binare. Mai multe informații pot fi găsite în manualul Debian Linux Kernel Handbook, care este disponibil și sub forma pachetului debian-kernel-handbook.

Dacă este posibil, ar fi spre avantajul dumneavoastră să înnoiți pachetul cu nucleul separat de procedura de dist-upgrade pentru a reduce șansele de a avea temporar probleme la inițializarea sistemului. A se reține că aceasta ar trebui să se facă doar după înnoirea minimală descrisă în Secțiune 4.4.4, „Actualizare minimală de sistem”.

4.6.2. Probleme de temporizare a inițializării („waiting for root device”)

Dacă un initrd creat cu initramfs-tools este folosit pentru a inițializa sistemul, în unele cazuri crearea fișierelor-dispozitiv de către udev poate avea loc prea târziu pentru ca scripturile de inițializare să le poată utiliza.

Simptomele obișnuite sunt eșuarea inițializării deoarece sistemul de fișiere rădăcină nu poate fi montat și sunteți transferat la un interpretor de comenzi pentru depanare:

Gave up waiting for root device.  Common problems:
 - Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
   - Check root= (did the system wait for the right device?)
 - Missing modules (cat /proc/modules; ls /dev)
ALERT!  /dev/ceva does not exist.  Dropping to a shell!
(initramfs) 

Dar dacă verificați mai târziu veți găsi toate fișierele dispozitiv în /dev. Aceasta s-a observat în cazurile în care sistemul de fișiere rădăcină se află pe un disc USB sau RAID, mai ales dacă este folosit LILO.

O soluție alternativă pentru această problemă este folosirea parametrului de inițializare rootdelay=9. Valoarea pentru limita de timp (în secunde) poate necesita ajustări.

4.7. Lucruri de făcut înainte de repornire

După ce apt-get dist-upgrade a terminat, înseamnă că actualizarea formală s-a terminat, dar există alte lucruri care trebuie făcute înainte să reporniți sistemul.

4.7.1. Purging removed packages

It is generally advisable to purge removed packages. This is especially true, if these have been removed in an earlier release upgrade (e.g. from the upgrade to wheezy) or from third-party vendors. In particular, old init.d scripts have been known to cause issues.

[Atenție]Atenție

Purging a package will generally also purge its log files, so you might want to back them up first.

The following command displays a list of all removed packages that may have configuration files left on the system (if any):

    # dpkg -l | awk '/^rc/ { print $2 }'
  

The packages can be removed by using apt-get purge. Assuming you want to purge all of them in one go, you can use the following command:

    # apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')
  

If you use aptitude, you can also use the following alternative to the commands above:

    $ aptitude search '~c'
    $ aptitude purge '~c'
  

4.8. Pregătirile pentru următoarea versiune

După actualizare sunt mai multe lucruri pe care le puteți face pentru a pregăti următoarea lansare.

4.9. Componente depășite

Odată cu următoarea lansare Debian 9 (numită stretch) unele caracteristici vor fi învechite. Utilizatorii vor trebui să migreze către alternative pentru a preveni apariția problemelor la actualizare la 9.

Acestea includ următoarele caracteristici:

4.10. Pachete învechite

Introducing lot of new packages, jessie also retires and omits quite some old packages that were in wheezy. It provides no upgrade path for these obsolete packages. While nothing prevents you from continuing to use an obsolete package where desired, the Debian project will usually discontinue security support for it a year after jessie's release[5], and will not normally provide other support in the meantime. Replacing them with available alternatives, if any, is recommended.

Există multe motive pentru care pachetele pot fi eliminate din distribuție: nu mai sunt întreținute de către autorii originari, nu mai există un dezvoltator Debian interesat de întreținerea pachetelor, funcționalitatea oferită a fost înlocuită de alt software (sau o nouă versiune), sau nu mai sunt considerate a fi potrivite pentru jessie datorită problemelor avute. În cazul din urmă, pachetele ar putea fi încă prezente în distribuția instabil.

Detectarea pachetelor învechite într-un sistem actualizat este ușoară, deoarece vor fi marcate ca atare în interfețele de administrare a pachetelor. Dacă folosiți aptitude, veți observa o listă a acestor pachete în secțiunea Pachete învechite și pachete create local.

Sistemul Debian de raportare a problemelor (Debian Bug Tracking System) oferă deseori informații suplimentare despre motivele pentru care un pachet a fost eliminat. Ar trebui să analizați atât arhiva problemelor pentru pachetul în sine, cât și pentru pseudo-pachetul ftp.debian.org.

Lista pachetelor depășite include:

  • postgresql-9.1, successor is postgresql-9.4. Once the operating system upgrade is finished, you should plan to also upgrade your PostgreSQL 9.1 database clusters to the new PostgreSQL version 9.4 using the pg_upgradecluster tool.

  • python3.2, successor is python3.4. (Version 2.7 is supported in both wheezy and jessie.)

  • ruby1.8 and ruby1.9.1; successor is ruby2.1. Please install the package ruby to automatically track the current ruby version.

  • mplayer; alternatives are mplayer2, and mpv (new in jessie). Whilst the former is mostly compatible with mplayer in terms of command-line arguments and configuration (and adds a few new features too), the latter adds a lot of new features and improvements, and it is actively maintained upstream.

  • openoffice.org; please use libreoffice.

  • squid, successor is squid3.

4.10.1. Pachetele marionetă

Anumite pachete din wheezy au fost împărțite în mai multe pachete în jessie, deseori pentru a îmbunătăți mentenabilitatea sistemului. Pentru a ușura actualizarea în aceste cazuri, jessie oferă pachete marionetă: pachete goale care au același nume ca versiunea din wheezy cu dependențe ce cauzează instalarea pachetelor noi. Aceste pachete marionetă sunt considerate învechite și după actualizare pot fi dezinstalate fără probleme.

Cele mai multe (însă nu toate) descrieri ale pachetelor marionetă indică scopul lor. Descrierile pachetelor marionetă nu sunt uniforme, totuși puteți folosi deborphan cu opțiunile --guess-* (de ex. --guess-dummy) pentru a le detecta în sistemul dumneavoastră. Notați faptul că anumite pachete marionetă nu sunt destinate dezinstalării după actualizare, ci sunt utilizate pentru a urmări în timp versiunea curentă a unui program.



[1] Dacă prioritatea debconf este stabilită la un nivel foarte ridicat puteți preveni întrebările de configurare, dar serviciile care depind de opțiuni de configurare implicite ce nu se potrivesc sistemului dumneavoastră nu vor porni.

[2] Spre exemplu: serviciile DNS sau DHCP, îndeosebi când nu există redundanță sau soluție de rezervă. În cazul DHCP utilizatorii pot fi deconectați de la rețea dacă timpul de deținere a adresei este mai mic decât timpul necesar procesului de înnoire.

[3] Această facilitate poate fi dezactivată prin adăugarea parametrului panic=0 la parametrii de inițializare.

[4] Sistemul de management al pachetelor din Debian nu permite, în mod normal, unui pachet să șteargă sau să înlocuiască un fișier deținut de alt pachet, decât dacă a fost definit ca înlocuitor pentru acel pachet.

[5] Sau atât timp cât nu este o altă lansare în acel interval de timp. În mod obișnuit sunt doar două versiuni stabile suportate în același timp.