Cap. 4. Actualizarea de la versiuni precedente

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ătiți recuperarea
4.1.4. 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. Demarcarea manuală a pachetelor
4.4. Pregătirea surselor pentru APT
4.4.1. Adăugarea de surse APT din Internet
4.4.2. Adăugarea de surse APT pentru un sit-oglindă local
4.4.3. Adăugarea de surse APT de pe CD sau DVD
4.5. Actualizarea pachetelor
4.5.1. Înregistrarea sesiunii
4.5.2. Actualizarea listei de pachete
4.5.3. Verificați dacă aveți suficient spațiu pentru actualizare
4.5.4. Actualizați mai întâi apt și/sau aptitude
4.5.5. Folosirea în apt a listei de pachete instalate automat din aptitude
4.5.6. Actualizare minimală de sistem
4.5.7. Actualizarea restului sistemului
4.5.8. Probleme posibile în timpul actualizării
4.6. Actualizarea nucleului și a pachetelor conexe
4.6.1. Instalarea meta-pachetului de nucleu
4.6.2. Reordonarea enumerării dispozitivelor
4.6.3. Probleme de sincronizare la inițializare
4.7. Lucruri de făcut înainte de repornire
4.7.1. Rulați din nou lilo
4.8. Inițializarea sistemului se blochează la mesajul Waiting for root file system
4.8.1. Cum se poate evita problema înainte de înnoire
4.8.2. Cum să se recupereze sistemul în caz de problemă după înnoire
4.9. Pregătirile pentru următoarea versiune
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 lenny 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/aptitude/pkgstates și rezultatul comenzii dpkg --get-selections "*" (ghilimelele sunt importante).

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.1.1. Asigurați-vă că în sistem este un nucleu potrivit

Versiunea lui glibc din lenny nu va funcționa cu nuclee mai vechi decât 2.6.8 pe orice arhitectură și unele arhitecturi au nevoie de versiuni și mai noi. Este recomandat să instalați și să testați un nucleu 2.6.18 sau 2.6.24 din etch sau unul personalizat cu versiunea minim 2.6.18 înainte de a începe procesul de înnoire.

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.

Probabil că va trebui sa faceți și o actualizare de nucleu odată cu trecerea la lenny, deci o repornire va fi necesară, în mod normal. Tipic, aceasta se va petrece după ce se finalizează actualizarea.

4.1.3. Pregătiți recuperarea

Datorită multiplelor schimbări din nucleu între etch și lenny, în ceea ce privește modulele, detectarea, numirea componentelor și ordonarea fișierelor dispozitiv, există un risc real să întâmpinați probleme la reinițializarea sistemului, după actualizare. Multe dintre potențialele probleme 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, anumite dispozitive să fie redenumite (după cum este descris la Secțiune 4.6.2, „Reordonarea enumerării dispozitivelor”) și va trebui 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, din diverse motive documentate în altă parte a acestui document, 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 lenny. 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 „Recuperarea unui sistem stricat (Recovering a Broken System)” din capitolul 8 al Ghidului de instalare și FAQ - Întrebări frecvente despre Programul de instalare.

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

Pachetul initramfs-tools include un interpretor de comenzi pentru depanare[2] î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.4. 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.

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. Aceast 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.

4.2. Verificarea stării sistemului

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

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

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 etch și nu la stable sau lenny, 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) 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 dselect, 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" | grep "^.h"

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 aptitude poate fi schimbată folosind:

# aptitude hold nume_pachet

Înlocuiți hold cu unhold pentru a demarca starea „păstrat”.

Dacă este ceva ce trebui rezolvat, cel mai bine vă asigurați că sources.list încă se referă la etch 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 lenny ș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 etch 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[3]. Secțiune 4.5.8, „Probleme posibile în timpul actualizării” are anumite informații despre cum să tratați conflictele de fișiere dacă apar.

4.2.5.1. Folosirea pachetelor de la backports.org

backports.org este o arhivă semi-oficială oferită de dezvoltatori Debian GNU/Linux, care dispune de pachete mai noi pentru distribuția stabilă, bazate pe recompilări alte pachetelor din arhiva „testing”.

Arhiva backports.org conține, în principiu, doar pachete din „testing” cu numere de versiune reduse, astfel păstrându-se calea de actualizare de la backport-urile etch la lenny. Totuși, există câteva backport-ări care sunt pregătite doar pe baza versiunii instabile (actualizări de securitate și următoarele excepții: Firefox, nucleul de sistem, OpenOffice.org, X.Org).

If you do not use one of these exceptions, you can safely upgrade to lenny. If you use one of these exceptions, set the Pin-Priority (see apt_preferences(5)) temporarily to 1001 for all packages from lenny, and you should be able to do a safe dist-upgrade too.

4.3. Demarcarea manuală a pachetelor

Pentru a-l împiedica pe aptitude să șteargă unele pachete care sunt instalate ca dependențe, va trebui să le marcați manual ca pachete auto. Aici sunt incluse OpenOffice și Vim pentru instalări de birou:

# aptitude unmarkauto openoffice.org vim

Adăugați imagini de nucleu 2.6 dacă le-ați instalat folosind un meta pachet de nucleu:

# aptitude unmarkauto $(dpkg-query -W 'linux-image-2.6.*' | cut -f1)
[Notă]Notă

Puteți vedea care pachete sunt marcate ca auto în aptitude cu comanda:

# aptitude search '~i~M'

4.4. 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).

[Indicație]Indicație

Este posibil să fie nevoie de adăugat excepții de verificare GPG pentru DVD-uri și CD-uri. Adăugați următorul rând în fișierul /etc/apt/apt.conf, dacă nu este deja scris în /etc/apt/apt.conf.d/00trustcdrom:

APT::Authentication::TrustCDROM "true";

Aceasta, din păcate, nu funcționează cu imagini de DVD/CD.

O versiune poate fi referită deseori atât prin numele de cod (de ex: etch, lenny) 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.4.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 http://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/lenny/main/binary-powerpc/...
http://mirrors.kernel.org/debian/dists/lenny/contrib/binary-powerpc/...

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 lenny 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.4.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/lenny/main/binary-powerpc/...
/var/ftp/debian/dists/lenny/contrib/binary-powerpc/...

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 lenny 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.4.3. Adăugarea de surse APT de pe CD sau DVD

Dacă doriți să folosiți doar CD-uri, 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/hdc reprezintă CD-ROM-ul dumneavoastră, /etc/fstab ar trebui să conțină o linie de genul:

/dev/hdc /cdrom auto defaults,noauto,ro 0 0

A se reține că nu trebuie să existe nici un spațiu între cuvintele defaults,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.5. Actualizarea pachetelor

Metoda recomandată pentru actualizarea de la versiuni Debian GNU/Linux precedente este folosirea utilitarului pentru administrarea pachetelor aptitude. Acest program ia decizii mai sigure la instalarea pachetelor decât folosirea directă al lui apt-get.

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 „lenny” sau la „stable”. Nu ar trebui să fie nici o sursă care se referă la etch.

[Notă]Notă

Liniile de surse pentru CD-ROM deseori se vor referi la „unstable”. Deși asta ar putea fi derutant, ele nu trebuie schimbate.

4.5.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>~/actualizare-lenny.time -a ~/actualizare-lenny.script

sau similar. 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. Puteți schimba la VT2 (folosind Alt-F2) și, după ce vă autentificați, utilizați less -R ~root/actualizare-lenny.script pentru a vedea fișierul.

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

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

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

4.5.2. Actualizarea listei de pachete

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

# aptitude update

Rularea acestei comenzi pentru prima dată când se actualizează sursele noi va afișa niște avertismente legate de sursele disponibile. Aceste mesaje nu indică nici o problemă gravă și nu vor mai apărea dacă rulați comanda din nou.

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

Înainte de a începe actualizarea completă, așa cum este descrisă la Secțiune 4.5.7, „Actualizarea restului 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 ar putea fi foarte dificilă.

Atât aptitude cât și apt vă vor afișa informații detaliate despre spațiul necesar instalării. Înainte să începeți actualizarea, puteți vedea o estimare folosind comanda:

# aptitude -y -s -f --with-recommends dist-upgrade
[ ... ]
XXX upgraded, XXX newly installed, XXX to remove and XXX not upgraded.
Need to get xx.xMB/yyyMB of archives. After unpacking AAAMB will be used.
Would download/install/remove packages.
[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.5.6, „Actualizare minimală de sistem” și ați actualizat nucleul înainte de a rula această comandă pentru a estima spațiul pe disc.

Dacă nu aveți spațiu suficient, asigurați-vă că eliberați destul pentru actualizare. Puteți să:

  • Ș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 sau cu comanda aptitude clean, va șterge toate fișierele descărcate anterior.

  • Ștergeți pachete uitate. Dacă aveți instalat popularity-contest puteți folosi popcon-largest-unused pentru a afișa lista pachetelor din sistem neutilizate, care ocupă cel mai mult spațiu. Puteți folosi și deborphan sau debfoster pentru a căuta pachete depășite (consultați Secțiune 4.10, „Pachete învechite”). Ca alternativă puteți porni aptitude în „modul vizual” și veți găsi pachetele învechite în „Pachete învechite și pachete create local” (sau „Obsolete and Locally Created Packages” dacă folosiți interfața în limba engleză).

  • Ștergeți pachetele care ocupă prea mult loc și nu sunt necesare imediat (oricum le puteți reinstala după actualizare). Puteți afișa pachetele care ocupă cel mai mult loc pe disc cu dpigs (disponibil în pachetul debian-goodies) sau cu wajig (rulând wajig size).

    You can list packages that take up most of the disk space with aptitude. Start aptitude into „visual mode”, select ViewsNew Flat Package List (this menu entry is available only after etch version), press l and enter ~i, press S and enter ~installsize, then it will give you nice list to work with. Doing this after upgrading aptitude should give you access to this new feature.

  • 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 de 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ă.

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

4.5.4. Actualizați mai întâi apt și/sau aptitude

Several bug reports have shown that the versions of the aptitude and apt packages in etch are often unable to handle the upgrade to lenny. In lenny, apt is better at dealing with complex chains of packages requiring immediate configuration and aptitude is smarter at searching for solutions to satisfy the dependencies. These two features are heavily involved during the dist-upgrade to lenny, so it is necessary to upgrade these two packages before upgrading anything else.

The following command will upgrade both aptitude and apt:

# aptitude install aptitude apt dpkg

This step will also automatically upgrade libc6 and locales. At this point, some running services will be restarted, including xdm, gdm and kdm. As a consequence, local X11 sessions might be disconnected.

[Notă]Upgrading with apt

Please note that using apt-get is not recommended for the upgrade from etch to lenny. If you do not have aptitude installed you are recommended to install it first.

If you want to perform the upgrade with apt or if the upgrade with aptitude failed and you want to try the upgrade with apt' dependency chain resolution algorithm, you should run:

# apt-get install apt

Note that you will have to adapt other aptitude commands to use apt-get instead.

4.5.5. Folosirea în apt a listei de pachete instalate automat din aptitude

aptitude menține o listă cu pachete care au fost instalate automat (de exemplu, ca dependențe ale altui pachet). În lenny și apt dispune de această facilitate.

Prima oară când va rula versiunea lenny de aptitude, acesta va citi lista sa de pachete instalate automat și o va converti spre a fi folosită cu versiunea lenny de apt. Dacă aveți aptitude instalat, ar trebui să rulați cel puțin o comandă aptitude pentru a face conversia. O metodă ar fi căutarea unui pachet inexistent:

# aptitude search "?false"

4.5.6. Actualizare minimală de sistem

Datorită unor conflicte necesare între pachetele din etch și lenny, rularea directă a comenzii aptitude dist-upgrade în multe cazuri va șterge pachete pe care doriți să le păstrați. De aceea, vă recomandăm un proces de actualizare în două etape, în prima, o actualizare minimală pentru a trece peste aceste conflicte după care să faceți un dist-upgrade complet.

Mai întâi, rulați:

# aptitude safe-upgrade

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

Următorul pas va varia în funcție de setul de pachete pe care le aveți instalate. Aceste note de lansare oferă sfaturi generice despre ce metodă ar trebui folosită, însă dacă aveți îndoieli, se recomandă examinarea listei cu pachete propuse pentru a fi șterse, înainte de a continua.

Este de așteptat ca o parte din pachetele comune ca base-config, hotplug, xlibs, netkit-inetd, python2.3, xfree86-common și xserver-common să fie dezinstalate. A se vedea Secțiune 4.10, „Pachete învechite” pentru mai multă informație despre pachetele depășite în lenny.

4.5.7. Actualizarea restului sistemului

Acum sunteți gata să continuați cu partea principală a actualizarii. Executați:

# aptitude dist-upgrade

Aceasta va efectua o actualizare completă a sistemului, și anume, va instala 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 depășite 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 ai altui pachet vor fi lăsate la versiunea curentă (marcate ca „held back”). Aceasta poate fi rezolvat prin utilizarea comenzii aptitude și alegerea acestor pachete pentru instalare sau prin rularea comenzii aptitude -f install pachet.

4.5.8. Probleme posibile în timpul actualizării

Dacă o operație ce utilizează aptitude, apt-get sau dpkg eșuează cu eroarea

E: Dynamic MMap ran out of room

înseamnă că spațiul de stocare temporară implicit este insuficient. Puteți rezolva această problemă fie prin eliminarea sau comentarea liniilor de care nu aveți nevoie din /etc/apt/sources.list, fie prin mărirea dimensiunii spațiului de stocare temporară. Dimensiunea acestuia poate fi mărită prin opțiunea de configurare APT::Cache-Limit în /etc/apt/apt.conf. Următoarea comandă va configura o valoare suficientă pentru actualizare:

# echo 'APT::Cache-Limit "12500000";' >> /etc/apt/apt.conf

Aceasta presupune că nu aveți configurată în prealabil o valoare pentru această variabilă.

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ță. aptitude 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 aptitude.

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 aptitude sau

# dpkg --remove nume_pachet

pentru a elimina pachetele problemă, sau

# aptitude -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

Dacă actualizați de la un sistem etch „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 <package-foo> (from <package-foo-file>) ...
dpkg: error processing <package-foo> (--install):
 trying to overwrite `<some-file-name>',
 which is also in package <package-bar>
dpkg-deb: subprocess paste killed by signal (Broken pipe)
 Errors were encountered while processing:
 <package-foo>

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 aptitude descrise mai sus.

Î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 directoarele /etc/init.d sau /etc/terminfo, 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.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ă veți alege să folosiți un nucleu ce nu necesită initrd sau un alt generator initrd este folosit, atunci o parte din informație ar putea să nu vă fie de interes.

4.6.1. Instalarea meta-pachetului de nucleu

Atunci când actualizați (folosind dist-upgrade) de la etch la lenny, este indicat să instalați meta-pachetul linux-image-2.6-*. 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-2.6 disponibile, rulați comanda:

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

Dacă nu sunteți siguri ce pachet ar trebui să alegei, 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.18-6-686' este recomadat să instalați linux-image-2.6-686. (A se reține că varianta k7 nu mai există; dacă folosiți un nucleu k7 ar trebui să instalați varianta 686.) De asemenea, se poate rula comanda apt-cache ca să vedeți descrierea lungă a fiecărui pachet pentru a face o alegere potrivită. De exemplu:

# apt-cache show linux-image-2.6-686

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

Cei curioși pot compila destul de ușor propriul nucleu pe Debian GNU/Linux. Pentru aceasta instalați unealta kernel-package și studiați documentația din /usr/share/doc/kernel-package.

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.5.6, „Actualizare minimală de sistem”.

4.6.2. Reordonarea enumerării dispozitivelor

lenny prezintă un mecanism mai robust pentru detectarea hardware-ului decât versiunea precedentă. Totuși, acesta poate duce la modificarea modului în care sunt detectate dispozitivele din sistemul dumneavoastră, lucru ce afectează ordinea în care sunt atribuite numele dispozitivelor. De exemplu, dacă aveți două plăci de rețea care au drivere diferite, dispozitivele eth0 și eth1 se pot interschimba. De reținut faptul că folosind noul mecanism, înseamnă că dacă, spre exemplu, schimbați o placă ethernet într-un sistem lenny funcțional, noua placă va primi un nume de interfață nou.

Pentru dispozitive de rețea se poate evita reordonarea prin utilizarea de reguli udev și mai exact prin definițiile din /etc/udev/rules.d/70-persistent-net.rules[4]. O alternativă este utilizarea comenzii ifrename pentru asocierea dispozitivelor fizice în timpul inițializării sistemului unor nume precizate. A se vedea ifrename(8) și iftab(5) pentru mai multă informație. Aceste două metode (udev și ifrename) nu ar trebui să fie folosite în același timp.

Pentru dispozitivele de stocare se poate evita reordonarea prin utilizarea initramfs-tools și configurarea lui ca să încarce modulele cu drivere pentru dispozitive în aceeași ordine ca în configurația curentă. Aceasta se poate realiza prin identificarea ordinei în care s-au încărcat modulele de stocare în sistem și analizarea rezultatului rulării comenzii lsmod. lsmod afișează modulele în ordinea inversă în care au fost încărcate, adică primul modul din listă este ultimul încărcat. De notat că aceasta este valabil doar pentru dispozitivele pe care nucleul le enumerează într-o manieră stabilă (ca pe dispozitivele PCI).

Totuși, dacă descărcați și apoi reîncărcați modulele după inițializarea sistemului, ordinea acestora va fi afectată. De asemenea, nucleul instalat poate să conțină unele drivere compilate static, iar numele acestora nu vor apărea în datele furnizate de lsmod. Puteți descoperi numele acestor module și ordinea de încărcare din fișierul /var/log/kern.log sau rulând programul dmesg.

Adăugați numele acestor module în fișierul /etc/initramfs-tools/modules în ordinea în care doriți să fie încărcate la inițializarea sistemului. Este posibil ca numele unor module să se fi schimbat între versiunea etch și versiunea lenny. Spre exemplu driverul sym53c8xx_2 a devenit sym53c8xx.

Apoi va trebui să regenerați imaginea/imaginile initramfs cu comanda update-initramfs -u -k all.

Odată ce rulați un nucleu și udev din lenny puteți reconfigura sistemul dumneavoastră să acceseze discurile printr-un alias independent de ordinea încărcării driverelor. Aceste aliasuri pot fi găsite în ierarhia din directorul /dev/disk/

4.6.3. Probleme de sincronizare la inițializare

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.

Comportamentul distinctiv este că inițializarea eșuează din cauza că sistemul de fișirere rădăcină nu poate fi montat și un interpretor de comenzi pentru depanare este lansat. Dar dacă verificați mai târziu veți găsi toate fișierele dispozitiv se află î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 ajustare.

4.7. Lucruri de făcut înainte de repornire

După ce aptitude 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. Rulați din nou lilo

Dacă folosiți lilo ca încărcător de sistem (este încărcătorul de sistem implicit pentru o parte din instalările de etch) este indicat să rulați comanda lilo după înnoire:

# /sbin/lilo

A se reține că acest lucru este necesar chiar dacă nu ați actualizat nucleul sistemului, deoarece a doua etapă a lui lilo se va schimba datorită actualizării pachetului.

De asemenea, revizuiți conținutul fișierului /etc/kernel-img.conf și asigurați-vă că aveți opțiunea do_bootloader = Yes în el. Astfel, încărcătorul de sistem va fi rulat întotdeauna după o actualizare de nucleu.

Dacă întâmpinați probleme în timpul rulării comenzii lilo, verificați dacă nu există discrepanțe între legăturile simbolice din / către vmlinuz și initrd, și conținutul lui /etc/lilo.conf.

Dacă ați uitat să rulați din nou comanda lilo înainte de repornire sau sistemul a fost repornit din întâmplare înainte ca să o rulați manual comanda, este posibil ca sistemul să nu pornească. În locul promptului lilo veți vedea doar LI la pornirea sistemului[5]. A se vedea Secțiune 4.1.3, „Pregătiți recuperarea” pentru soluții de recuperare din această situație.

4.8. Inițializarea sistemului se blochează la mesajul Waiting for root file system

Procedura de recuperare când /dev/hda devine /dev/sda

O parte din utilizatori au raportat că o înnoire poate cauza ca nucleul să nu găsească partiția rădăcină de sistem după repornirea sistemului.

Într-o asemenea situație sistemul se blochează la mesajul următor:

Waiting for root file system ...

și după câteva secunde un simplu prompt de busybox este afișat.

Această problemă poate apărea la înnoirea nucleului odată cu utilizarea a noii generații de drivere IDE. Convenția driverelor vechi pentru numirea discurilor IDE a fost hda, hdb, hdc și hdd. Driverele noi vor numi aceleași discuri cu sda, sdb, sdc și, respectiv, sdd. Problema apare dacă în procesul înnoirii nu se generează un nou fișier /boot/grub/menu.lst care să țină cont de noile convenții. La pornire Grub va oferi nucleului o partiție de sistem rădăcină care nu poate fi găsită de nucleu.

Dacă v-ați lovit de această problemă, accesați Secțiune 4.8.2, „Cum să se recupereze sistemul în caz de problemă după înnoire”. Pentru a evita această problemă înainte de înnoire citiți în continuare.

4.8.1. Cum se poate evita problema înainte de înnoire

Problema se poate evita complet prin intermediul unui identificator pentru sistemul de fișiere rădăcină ce nu se modifică de la o pornire la alta. Sunt două posibilități pentru a o face - etichetarea sistemului de fișiere sau folosirea identificatorului unic universal al sistemului de fișiere (UUID). Aceste metode sunt suportate în Debian începând cu versiunea „etch”.

Ambele metode au avantaje și dezavantaje. Etichetarea este mai lizibilă dar poate fi o sursă de probleme dacă un alt sistem de fișiere are aceeași etichetă. Metoda cu UUID nu este la fel de lizibilă dar este mult mai puțin probabilă coliziunea identificatorilor UUID.

În exemplele de mai jos vom presupune că sistemul de fișiere rădăcină este pe /dev/hda6. De asemenea, vom presupune că udev funcționează corect pe sistemul dumneavoastră.

Pentru implementarea soluției cu etichetă:

  1. Dați o valoare etichetei sistemului de fișiere (numele trebuie să conțină < 16 caractere) prin rularea comenzii: e2label /dev/hda6 rootfilesys

  2. Editați /boot/grub/menu.lst și modificați rândul:

    # kopt=root=/dev/hda6 ro

    în

    # kopt=root=LABEL=rootfilesys ro

    [Notă]Notă

    A nu se ștege # de la începutul rândului, este necesar să rămână acolo.

  3. Actualizați rândurile cu kernel în menu.lst rulând comanda update-grub.

  4. Editați /etc/fstab și modificați rândul ce se referă la montarea partiției /, de exemplu:

    /dev/hda6     /     ext3  defaults,errors=remount-ro 0 1

    în

    LABEL=rootfilesys     /     ext3  defaults,errors=remount-ro 0 1

    Modificarea semnificativă aici este în prima coloană, nu este nevoie să se modifice restul coloanelor din acel rând.

Pentru implementarea soluției cu UUID:

  1. Find out the universally unique identifier of your filesystem by issuing: ls -l /dev/disk/by-uuid | grep hda6. You can also use vol_id --uuid /dev/hda6 (in etch) or blkid /dev/hda6 (if already upgraded to lenny).

    Ar trebui să vedeți un rând cu text similar cu acesta:

    lrwxrwxrwx 1 root root 24 2008-09-25 08:16 d0dfcc8a-417a-41e3-ad2e-9736317f2d8a -> ../../hda6

    UUID este numele pentru legătura simbolică ce indică spre /dev/hda6, adică: d0dfcc8a-417a-41e3-ad2e-9736317f2d8a.

    [Notă]Notă

    UUID-ul sistemului dumneavoastră de fișiere va fi unul diferit de acesta.

  2. Editați /boot/grub/menu.lst și modificați rândul:

    # kopt=root=/dev/hda6 ro

    în

    # kopt=root=UUID=d0dfcc8a-417a-41e3-ad2e-9736317f2d8 ro

    [Notă]Notă

    A nu se ștege # de la începutul rândului, este necesar să rămână acolo.

  3. Actualizați rândurile cu kernel în menu.lst rulând comanda update-grub.

  4. Editați /etc/fstab și modificați rândul ce se referă la montarea partiției /, de exemplu:

    /dev/hda6     /     ext3  defaults,errors=remount-ro 0 1

    în

    UUID=d0dfcc8a-417a-41e3-ad2e-9736317f2d8  /  ext3  defaults,errors=remount-ro 0 1

    Modificarea semnificativă aici este în prima coloană, nu este nevoie să se modifice restul coloanelor din acel rând.

4.8.2. Cum să se recupereze sistemul în caz de problemă după înnoire

4.8.2.1. Soluția 1

Această metodă este potrivită dacă Grub vă afișează meniul pentru alegerea opțiunilor de pornire. Dacă meniul nu apare, încercați să apăsați tasta Esc înainte ca nucleul să pornească ca să puteți vedea meniul. Dacă nu puteți accesa meniul, încercați Secțiune 4.8.2.2, „Soluția 2” sau Secțiune 4.8.2.3, „Soluția 3”.

  1. În meniul din Grub alegeți opțiunea cu care doriți să porniți sistemul. Apăsați tasta e pentru a edita opțiunile alegerii curente. Va fi afișat un mesaj similar cu acesta:

    root (hd0,0)
    kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro
    initrd /initrd.img-2.6.26-1-686

  2. Selectați linia

    kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro

    apăsați tasta e și înlocuiți hdX cu sdX (unde X este litera a, b, c sau d dependent de sistemul dumneavoastră). În exemplul dat rândul devine:

    kernel /vmlinuz-2.6.26-1-686 root=/dev/sda6 ro

    Apoi apăsați Enter pentru a salva modificările. Dacă alte rânduri conțin hdX, modificați acele rânduri deasemenea. Nu modificați rândurile similare cu root (hd0,0). Odată ce ați terminat toate modificările, apăsați tasta b. Sistemul dumneavoastră ar trebui să porneasă ca de obicei.

  3. Acum, când sistemul este pornit, este necesar să rezolvați complet această problemă. Accesați Secțiune 4.8.1, „Cum se poate evita problema înainte de înnoire” și aplicați una din cele două proceduri propuse.

4.8.2.2. Soluția 2

Porniți sistemul de pe un mediu de instalare Debian GNU/Linux (CD/DVD) și la cerere, tastați rescue pentru a porni în modul de recuperare. Alegeți limba, locația, aranjamentul tastaturii; lăsați să se configureze rețeaua (indiferent dacă reușește sau nu). În scurt timp va trebui să fiți întrebați pentru alegerea partiției pe care o doriți să folosiți ca sistem de fișierer rădăcină. Alegerile propuse vor arăta similar cu:

/dev/ide/host0/bus0/target0/lun0/part1
/dev/ide/host0/bus0/target0/lun0/part2
/dev/ide/host0/bus0/target0/lun0/part5
/dev/ide/host0/bus0/target0/lun0/part6

Dacă știți care partiție conține sistemul de fișiere rădăcină, atunci faceți alegerea corespunzătoare. În caz că nu știți, alegeți prima partiție. Dacă apare un mesaj despre un sistem de fișiere rădăcină nevalid, atunci încercați cu următoare partiție, șamd. Încercând pe rând partițiile, n-ar trebui să le deterioreze și, dacă aveți doar un singur sistem de operare pe discurile dumneavoastră, ar trebui să găsiți ușor partiția cu sistemul de fișiere rădăcină. În caz că aveți mai multe sisteme de operare instalate pe discuri, este recomandat să știți exact care este partiția potrivită.

Odată ce partiția a fost aleasă, o serie de opțiuni vor fi puse la dispoziție. Alegeți opțiunea de a executa un shell pe partiția aleasă. Dacă apare vreun mesaj de eroare, încercați cu o altă partiție.

Acum ar trebui să aveți acces la shell cu numele de utilizator root pe sistemul de fișiere rădăcină montat în /. Aveți nevoie de acces la conținutul directoarelor /boot, /sbin și /usr, care acum ar trebui să se găsească în /target/boot, /target/sbin și /target/usr. Dacă aceste directoare trebuie să fie montate de pe alte partiții, montați-le (consultați /etc/fstab dacă nu știți care sunt partițiile corespunzătoare).

Accesați Secțiune 4.8.1, „Cum se poate evita problema înainte de înnoire” și aplicați una din cele două proceduri propuse pentru a rezolva complet problema. Apoi tastați exit pentru a părăsi interpretorul de comenzi pentru recuperare și alegeți reboot pentru repornirea obișnuită a sistemului (a nu se uita înlăturarea mediilor pentru pornirea sistemului).

4.8.2.3. Soluția 3

  1. Porniți sistemul cu distribuția de LiveCD preferată, ca, de exemplu, Debian Live, Knoppix sau Ubuntu Live.

  2. Montați partiția ce conține directorul /boot. Dacă nu știți care este partiția, vedeți rezultatul rulării comenzii dmesg pentru a afla dacă discul dumneavoastră este văzut drept hda, hdb, hdc, hdd sau sda, sdb, sdc, sdd. După ce ați aflat care este discul potrivit, de exemplu sdb, rulați următoarea comandă pentru a vedea tabela de partiții a discului și pentru a găsi partiția corectă: fdisk -l /dev/sdb

  3. Dacă ați montat partiția corectă în /mnt și acea partiție conține directorul /boot și conținutul său, atunci editați fișierul /mnt/boot/grub/menu.lst.

    Găsiți secțiunea similară cu:

    ## ## End Default Options ##
    
    title           Debian GNU/Linux, kernel 2.6.26-1-686
    root            (hd0,0)
    kernel          /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro
    initrd          /initrd.img-2.6.26-1-686
    
    title           Debian GNU/Linux, kernel 2.6.26-1-686 (single-user mode)
    root            (hd0,0)
    kernel          /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro single
    initrd          /initrd.img-2.6.26-1-686
    
    ### END DEBIAN AUTOMAGIC KERNELS LIST

    și înlocuiți fiecare hda, hdb, hdc, hdd cu sda, sdb, sdc, respectiv sdd, după caz. Nu modificați rândurile similare cu:

    root            (hd0,0)

  4. Reporniți sistemul, scoateți LiveCD-ul și sistemul dumneavoastră ar trebui să pornească corect.

  5. După ce sistemul e pornit, aplicați una din cele două proceduri propuse la Secțiune 4.8.1, „Cum se poate evita problema înainte de înnoire” pentru a rezolva complet problema.

4.9. 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.

  • Dacă noul meta-pachet pentru imaginea de nucleu a fost instalat ca dependență la cel vechi, acesta va fi marcat ca instalat automat, ceea ce ar trebui corectat:

    # aptitude unmarkauto $(dpkg-query -W 'linux-image-2.6-*' | cut -f1)
    
  • Îndepărtați pachetele depășite nefolosite după cum este descris la Secțiune 4.10, „Pachete învechite”. Ar trebui să verificați ce fișiere de configurare folosesc acestea și să luați în considerare eliminarea pachetelor pentru a îndepărta fișierele de configurare.

4.10. Pachete învechite

Deși aduce câteva sute de pachete noi, lenny mai înlocuiește și omite mai mult de două mii de pachete vechi care au fost în etch. Nu se oferă nici o modalitate de înnoire a pachetelor depășite. În timp ce nimic nu vă oprește să continuați să folosiți pachetele depășite, proiectul Debian va opri suportul de securitate pentru ele la un an după lansarea lui lenny[6], și, în mod normal, nici nu va oferi altfel de suport între timp. Este recomandată înlocuirea lor cu alternative, dacă sunt disponibile.

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 lenny datorită problemelor avute. În cazul din urmă, pachetele ar putea fi încă prezente în distribuția „unstable”.

Detectarea pachetelor „depășite” î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”. dselect oferă o secțiune similară, însă afișarea poate diferi.

Dacă ați utilizat aptitude pentru a instala manual pachete în etch, acesta va reține faptul că au fost instalate manual și va putea marca drept învechite pachetele care au fost instalate doar ca dependențe și nu mai sunt necesare deoarece pachetele care aveau nevoie de ele au fost șterse. De asemenea, aptitude, spre deosebire de deborphan, nu va marca cu starea învechit pachetele pe care le-ați instalat manual, spre deosebire de cele instalate automat ca dependențe.

Există unelte adiționale pe care le puteți folosi pentru a detecta pachetele depășite, cum ar fi deborphan, debfoster sau cruft. deborphan este indicat, deși implicit va raporta doar bibliotecile depășite, adică pachetele din secțiunile „libs” sau „oldlibs” care nu sunt utilizate de alte pachete. Nu dezinstalați pachetele prezentate de aceste unelte fără a vă gândi bine, mai ales dacă folosiți opțiunile agresive, neimplicite, ce 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.

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.

The list of obsolete packages includes:

  • apache (1.x), succesorul fiind apache2

  • bind (8), successor is bind9

  • php4, successor is php5

  • postgresql-7.4, successor is postgresql-8.1

  • exim (3), successor is exim4

4.10.1. Pachetele marionetă

Anumite pachete din etch au fost împărțite în mai multe pachete în lenny, deseori pentru a îmbunătăți mentenabilitatea sistemului. Pentru a ușura actualizarea în aceste cazuri, lenny oferă pachete „marionetă”: pachete goale care au același nume ca versiunea din etch cu dependențe ce cauzează instalarea pachetelor noi. Aceste pachete „marionetă” sunt considerate depășite ș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țiunea --guess 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.



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

[3] 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.

[4] Acele reguli sunt generate automat de scriptul /etc/udev/rules.d/75-persistent-net-generator.rules pentru a oferi persistența numelor interfețelor de rețea. Ștergerea acestei legături simbolice va dezactiva persistența numirii dispozitivelor NIC de udev.

[5] Pentru mai multe informații despre codurile de eroare lilo a se vedea The Linux Bootdisk HOWTO.

[6] 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.