[ înapoi ] [ Sumar ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ A ] [ înainte ]
Vă sugerăm să citiți și informațiile de la Probleme de care ar trebui să știți în etch, Capitolul 5 înainte de a începe actualizarea. Acest capitol tratează problemele ce pot să apară, care nu sunt direct legate de procesul de actualizare, dar care ar putea fi, totuși, important să fie știute înainte de a începe.
Î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 suficient de fiabile, însă o problemă hardware apărută în mijlocul actualizării poate afecta sever un sistem.
Lucrurile principale pe care veți dori să le copiați sunt conținutul lui
/etc, /var/lib/dpkg,
/var/lib/aptitude/pkgstates și rezultatul rulării 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.
Este o idee bună să vă informați din timp toți utilizatorii despre
actualizarile 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ă 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țiile utilizatorilor
(/home) înainte de actualizare.
Probabil că va trebui sa faceți și o actualizare de nucleu odată cu trecerea la etch, deci o repornire va fi necesară, în mod normal. Tipic, aceasta se va petrece după ce se finalizează actualizarea.
Datorită multiplelor schimbări din nucleu între sarge și etch, în ceea ce privește modulele, detectarea, numirea componentelor și ordonarea fișierelor dispozitiv, există un risc real ca să întâmpinați probleme la reinițializarea sistemului, dupa actualizare. Multe dintre potențialele probleme cunoscute sunt documentate în acesta ș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 indicat să să vă luați precauțiile necesare să va
asigurați că veți putea să accesați serverul printr-o conexiune la
distanță printr-un terminal serial. Există șansa ca, după actualizarea
nucleului și reinițializare, unele dispozitive să fie redenumite (după cum
e descris în Reordonarea enumerării
dispozitivelor, Secţiunea 4.6.4) și va trebui să reparați configurația
sistemului printr-o consolă locală. De asemenea, dacă sistemul este
reinițializat în mod accidental în mijlocul actualizării, există șansa ca
recuperarea de la o consolă locală să fie necesară.
Cel mai evident lucru care poate fi încercat este să reporniți cu vechiul nucleu. Totuși, din variate 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 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 să folosiți modul
recuperare al programului de instalare Debian din etch. Avantajul
acestei metode este ca puteți alege dintre multiplele metode de instalare pe
cea care se potrivește cel mai bine situației în care vă aflați. Pentru
mai multe informații, vă rugăm să consultați secțiunea "Recuperarea
unui sistem defect" în capitolul 8 al Ghidului de
instalare și Întrebările frecvente
legate de programul de instalare Debian.
initramfs-tools include o consolă de depanare[6] în imaginile initrd
generate. Dacă, de exemplu, initrd nu poate monta sistemul de fișiere
radăcină, veți fi transferat în această consolă de depanare care are
comenzile de bază pentru a vă ajuta sa găsiți problema și poate chiar să
o corectați.
Lucrurile de bază care trebuie verificate sunt: prezența
fișierelor-dispozitiv în /dev; ce module sunt încărcate
(cat /proc/modules); dacă există mesaje de eroare în
informațiile furnizate de comanda dmesg. Informațiile de la
dmesg vor arăta și ce fișiere-dispozitiv au fost asociate
fiecărui disc; ar trebui să verificați și ce apare la comanda echo
$ROOT pentru a vă asigura că sistemul de fișiere rădăcină se află
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 de sistem să nu eșueze și ea.
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ă premite
să vă reconectați în siguranță și oferă siguranța că procesul de
instalare nu va fi întrerupt, chiar dacă eșueză procesul care întreține
conexiunea la distanță.
Important! Nu trebuie să faceți actualizarea prin
telnet, rlogin, rsh, sau dintr-o sesiune
X gestionată de xdm, gdm, kdm sau de
alte servicii similare de pe mașina pe care o aduceți la zi. Aceasta
deoarece fiecare dintre aceste servicii pot fi oprite în timpul actualizării,
lucru care poate face ca sistemul să devină inaccesibl și
actualizat doar pe jumătate.
În cazul în care folosiți un nucleu mai vechi de 2.4.1, trebuie să treceți
(cel puțin) la un nucleu din seria 2.4 înainte să actualizați pachetul
glibc. Aceasta ar trebui să se petreacă înainte de a începe
actualizarea. Se recomandă să faceți trecerea direct la un nucleu din seria
2.6 disponibil în sarge, în loc să treceți la un nucleu 2.4.
Procesul de actualizare descris în acest capitol a fost conceput pentru
actualizări de la sisteme sarge „pure”, fără pachete din terțe surse.
În special, se știe că sunt probleme cu pachete din terțe surse care
instalează programe în /usr/X11R6/bin/, lucru care cauzează
probleme la actualizare datorită tranziției X.org (Tranziția de la XFree86 la X.Org,
Secţiunea 5.3). Pentru a mări șansele de succes ale procesului de
actualizare, probabil că veți dori să ștergeți astfel de pachete din
sistem înainte să începeți actualizarea.
Se pleacă de la presupunerea că ați actualizat până la ultima versiune minoră a lui sarge. Dacă nu ați făcut acest lucru sau în caz de dubii, urmați instrucțiunile de la Actualizarea sistemului sarge, Secţiunea A.1.
Î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 este "curat", înainte de a continua
procesul de actualizare.
Din acest motiv ar trebui să verificați dacă sunt sau nu acțiuni în
așteptare în managerul de pachete aptitude. Dacă vreun pachet
este înregistrat să fie șters sau actualizat în managerul de pachete, acest
lucru ar putea avea un impact negativ asupra procedurii de actualizare. A se
reține că acest aspect se poate corecta doar dacă fișierul
sources.list încă mai indică spre sarge; și nu
indică spre stable sau etch; a se vedea Verificarea listei de surse,
Secţiunea A.2.
Pentru a realiza acest lucru, rulați interfața lui aptitude și
apăsați 'g' (de la eng. "Go" - a porni). Dacă afișează vreo
acțiune, acestea ar trebui verificate și, fie corectați, fie implementați
acțiunile sugerate. Dacă nu există nici o acțiune, atunci va apărea
mesajul următor: "Nici un pachet nu este programat să fie instalat,
șters sau înnoit".
Dacă ați configurat APT să instaleze anumite pachete dintr-o distribuție
diferită de cea stabilă (de ex. din "testare"), probabil că va
trebui să vă schimbați configurația alegerilor selective APT (aflată în
/etc/apt/preferences) pentru a permite actualizarea pachetelor la
noua versiune stabilă. Mai multe informații despre alegerile selective APT
pot fi găsite în apt_preferences(5).
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 "*" > ~/pac-curente.txt
Este preferabil să ștergeți fanionul "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, are 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 package_name
Înlocuiți hold cu unhold pentru a demarca starea "păstrat".
Dacă există lucruri care trebuiesc reparate, este recomandabil să vă
asigurați că sources.list se referă încă la sarge, după cum
este explicat în Verificarea listei de surse,
Secţiunea A.2.
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
etch și să schimbați linia cu sursa corespunzătoare la același moment cu
schimabrea surselor pentru pachetele Debian.
Unii utilizatori ar putea avea instalate pe sistemele lor sarge pachete neoficiale mai "noi", "backportate", care există în Debian. Asemenea pachete, cel mai probabil, vor cauza probleme în timpul actualizării, deoarece ar putea rezulta conflicte de fișiere[7]. Secțiunea Probleme posibile în timpul actualizării, Secţiunea 4.5.8 conține câteva informații despre tratarea conflictelor de fișiere, în cazul în care acestea apar.
Pentru a-l împiedica pe aptitude să șteargă unele pachete care
sunt "trase" prin dependențe, va trebui să le demarcaț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 'kernel-image-2.6.*' | cut -f1)
Notă: Puteți vedea care pachete sunt marcate ca auto în aptitude cu comanda:
# aptitude search 'i~M <nume pachet>'
Înainte de a începe actualizarea, trebuie să pregătiți fișierul de
configurare al lui apt pentru lista de pachete,
/etc/apt/sources.list.
apt va considera toate pachetele care pot fi găsite prin liniile
"deb" și va instala pachetul cu numărul de versiune
cel mai mare, oferind prioritate primelor linii menționate (astfel, în cazul
unor locații alternative multiple, ar trebui să menționați mai întâi un
disc local, apoi CD-urile, după care serverele alternative HTTP/FTP).
O versiune poate fi referită deseori atât prin numele de cod (de ex: sarge, etch) 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ă.
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ă serverelor 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/debian/. 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/etch/main/binary-alpha/...
http://mirrors.kernel.org/debian/dists/etch/contrib/binary-alpha/...
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 etch 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.
În locul folosiri locațiilor alternative HTTP sau FTP, poate veți dori să
modificați /etc/apt/sources.list pentru a utiliza o locație de
pe discul local (posibil montată prin NFS).
De exemplu, locația dumneavoastră cu pachete poate fi în
/var/ftp/debian/, având directoarele principale astfel:
/var/ftp/debian/dists/etch/main/binary-alpha/...
/var/ftp/debian/dists/etch/contrib/binary-alpha/...
Pentru a folosi apt în această configurație, adăugați
următoarea linie în fișierul sources.list:
deb file:/var/ftp/debian etch 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.
Dacă doriți să folosiți doar CD-uri, comentați liniile
"deb" existente în /etc/apt/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 dvs, /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 spații între cuvintele defaults,noauto,ro din cel de-al patrulea câmp.
Pentru a verifica funcționalitatea, 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 binar pe care îl aveți, pentru a adăuga date despre fiecare CD în baza de date APT.
Unealta recomandată pentru actualizearea între versiunile Debian GNU/Linux
este managerul de pachete aptitude. Aceast program ia decizii mai
sigure la instalarea pachetelor decât 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
Apoi, ar trebui să verificați încă o dată dacă înregistrările din
sursele APT (din /etc/apt/sources.list) se referă fie la
"etch" sau la "stable". Nu ar
trebui să existe nici o intrare care să indice către sarge. Notă: liniile
sursă pentru un CD-ROM se vor referi deseori la
"unstable"; chiar dacă poate fi confuz, nu ar
trebui să le modificați.
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>~/act-etch.time -a 2>~/act-etch.script
sau ceva similar. Nu plasați fișierul script într-un director temporar, cum
ar fi /tmp sau /var/tmp (fișierele din aceste
directoare pot fi șterse în timpul actualizării sau la orice repornire de
sistem).
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/act-etch.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 ~/act-etch.time 2>~/act-etch.script
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.
Trebuie să verificați că aveți spațiu suficient pe disc înainte de
actualizarea întregului sistem, după cum este descris în Actualizarea sistemului, Secţiunea 4.5.6. Mai
întâi, orice pachet preluat prin rețea este stocat în
/var/cache/apt/archives (și în subdirectorul
partial/, în timpul descărcării), deci trebuie să vă
asigurați că aveți suficient spațiu pe partiția unde se află
/var/, locul unde sunt descărcate temporar pachetele ce vor fi
instalate în sistemul dumneavoastră. După ce pachetele se vor fi
descărcat, probabil veți avea nevoie de spațiu suplimentar pe celelalte
partiții pentru a instala pachetele actualizate (care pot conține binare mai
mari sau mai multe date) și pentru noile pachete ce vor fi descărcate pentru
a face actualizarea. Dacă spațiul în sistem este insuficient, puteți
ajunge în situația de a avea un sistem incomplet actualizat, situație din
care recuperarea va fi 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.
[8]
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 pachetele vechi pe care nu le mai folosiți. Dacă aveți instalat
popularity-contest, puteți folosi
popcon-largest-unused pentru a vedea care sunt cele mai mari
pachete pe care nu le folosiți. Puteți să folosiți și
deborphan sau debfoster pentru a vedea pachetele
depășite (a se vedea Pachete depășite, Secţiunea
4.10). Mai există și posibilitatea să porniți aptitude
în modul "vizual" și să căuați pacjhetele învechite la
categoria "Pachete învechite și pachete create local".
Ștergeți pachetele care ocupă prea mult spațiu, și care nu sunt necesare
imediat (puteți să le reinstalați după actualizare). Puteți afișa
pachetele care ocupă cel mai mult spațiu folosind dpigs
(disponibil în pachetul debian-goodies) sau cu wajig
(executând wajig size).
Mutați temporar pe un alt sistem, sau ștergeți permanent, fișierele jurnal
de sistem din /var/log/.
A se reține că pentru a șterge în siguranță pachete, este recomandabil
să vă asigurați că sources.list se referă încă la sarge,
după cum este explicat în Verificarea listei de surse,
Secţiunea A.2.
Datorită unor conflicte necesare între pachetele din sarge și etch, 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 upgrade
Aceasta are ca efect actualizarea acelor pachete care pot fi actualizate fără ca alte pachete să fie șterse sau instalate.
Urmați actualizarea minimală cu:
# aptitude install initrd-tools
Acest pas va actualiza automat libc6 și locales, și
va "trage" în sistem bibiliotecile pentru suportul SELinux
(libselinux1). La acest moment unele servicii care sunt active
vor fi repornite, inclusiv xdm, gdm and
kdm. Drept consecință, sesiunile X11 locale for fi deconectate.
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.
Printre pachetele comune pentru care este de așteptat să fie șterse sunt
base-config, hotplug, xlibs,
netkit-inetd, python2.3, xfree86-common
și xserver-common. A se vedea Pachete
depășite, Secţiunea 4.10 pentru lista de pachete depășite în etch.
Această cale de actualizare a fost verificată și funcționează pe sisteme cu sarcina sistem de birou din sarge instalată. Probabil că este metoda care va duce la cele mai bune rezultate pe sistemele cu sarcina mediu de birou instalată sau cu unul dintre pachetele gnome sau kde instalat.
Aceasta probabil că nu este metoda corectă dacă nu aveți deja
pachetele libfam0c102 și xlibmesa-glu instalate:
# dpkg -l libfam0c102 | grep ^ii
# dpkg -l xlibmesa-glu | grep ^ii
Dacă aveți un sistem complet de birou, rulați comanda:
# aptitude install libfam0 xlibmesa-glu
Sistemele cu câteva pachete pentru X instalate, dar fără sarcina mediu
de birou complet instalată, tebuie să folosească altă metodă.
Această metodă se aplică, în general, sistemelor care au instalat pachetul
xfree86-common, inclusiv unele servere care au instalate sarcini
tasksel de server deoarece unele dintre aceste sarcini includ
unelte grafice de administrare. Este, probabil, metoda corectă pentru
sistemele care au X, dar nu au instalată întreaga sarcină mediu de
birou.
# dpkg -l xfree86-common | grep ^ii
Mai întâi, verificați dacă aveți instalate pachetele
libfam0c102 și xlibmesa-glu.
# dpkg -l libfam0c102 | grep ^ii
# dpkg -l xlibmesa-glu | grep ^ii
Dacă nu aveți instalat pachetul libfam0c102, nu includeți
libfam0 în următoarea linie de comandă. Dacă nu aveți
instalat pachetul xlibmesa-glu, nu-l includeți în următoarea
linie de comandă. [9]
# aptitude install x11-common libfam0 xlibmesa-glu
A se reține că dacă instalați libfam0, se va instala atât
Monitorul de alterare a fișierelor (fam) cât și
"portmapper-ul RPC" (portmap), dacă acestea nu sunt
deja instalate în sistem. Ambele pachete vor activa în sistem câte un nou
serviciu de rețea, deși ambele pot fi configurate să se asocieze doar
interfeței (interne) de tip buclă (eng. "loopback").
Pe un sistem fără X, nu ar trebui să fie nevoie de nici o comandă aptitude install suplimentară și puteți trece la pasul următor.
Versiunea de udev din etch nu suportă nuclee mai vechi de 2.6.15
(aici sunt incluse și nucleele 2.6.8 prezente în sarge) iar versiunea de
udev din sarge nu va funcționa corect cu nucleele mai recente.
Mai mult, instalarea versiunii udev din etch va forța ștergerea
pachetului hotplug, care este folosit de nucleele Linux 2.4.
Drept consecință, nucleul anterior probabil că nu va porni corect după
această actualizare. Prin simetrie, există o perioadă în timpul procesului
de actualizare în care udev a fost actualizat însă nucleul cel
mai recent încă nu a fost instalat. Dacă s-ar întâmpla ca sistemul să
fie reinițializat în acest moment, în mijlocul procesului de actualizare,
este posibil ca acesta să nu mai pornească deoarece modulele nu vor fi fost
detectate și încărcate corect. (A se vedea Pregătirile unui mediu sigur pentru
actualizare, Secţiunea 4.1.4 pentru recomandări legate de pregătirea
pentru această situație, în cazul actualizării de la distanță.)
Doar dacă sistemul dumneavoastră nu are instalată sarcina mediu de birou sau alte pachete care ar duce la ștergerea unui număr inacceptabil de pachete, este recomandat să instalați doar nucleul la acest moment.
Pentru a începe această actualizare de nucleu, executați:
# aptitude install linux-image-2.6-variantă
A se vedea Instalarea meta pachetului de nucleu, Secţiunea 4.6.1 pentru a vă ajuta să decideți care variantă de pachet de nucleu ar trebui să instalați.
În cazul sistemelor de birou, din păcate, nu se poate asigura că noul pachet
de nucleu este instalat imediat după ce se instalează noul pachet
udev, deci există un interval de timp nedeterminat în care
sistemul nu va avea instalat nici un nucleu cu suport complet pentru
"hotplug"(în eng. "conectare la cald"). A se vedea Actualizarea nucleului și a pachetelor conexe, Secţiunea
4.6 pentru informații legate de configurarea sistemului astfel încât să
nu depindă de "hotplug" pentru a porni.
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, instalând cele mai noi versiuni disponibile ale tuturor pachetelor și rezolvând 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 conflictuale sau depășite.
Când actualizați de pe un set de CD-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.
Noile versiuni ale pachetelor instalate în prezent și care nu pot fi
actualizate fără a schimba starea de instalare a unui alt pachet vor rămâne
la versiunea prezentă (și afișate ca "păstrate"). Această
situație poate fi remediată fie prin utilizarea aptitude pentru
a alege aceste pachete pentru instalare sau prin aptitude -f install
pachet.
După actualizare, cu noua versiune de apt veți putea să
actualizați informația despre pachete, care va include mecanismele de
verificare a semnăturii:
# aptitude update
Actualizarea va fi preluat și activat deja cheile de semnare pentru arhiva de
pachete Debian. Dacă adăugați alte surse de pachete (neoficiale),
apt va afișa avertismente legate de incapacitatea sa de a
confirma că pachetele descărcate de acolo sunt pachete legitime și nu au
fost alterate în scop malefic. Pentru mai multe informații, a se vedea Managementul de pachete, Secţiunea
2.1.1.
Veți vedea că, deoarece folosiți noua versiune de apt, va
descărca fișiere cu diferențe în lista de pachete (pdiff), în
loc să descarce întreaga listă. Pentru mai multe informații legate de
această facilitate, a se citi Actualizare mai lentă a
fișierelor cu indecși de pachete APT, Secţiunea 5.1.4.
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 cache 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 cache-ului. Dimensiunea cache-ului 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 sarge "pur" nu ar trebui să apară conflicte de fișiere, însă acestea pot interveni dacă aveți pachete neoficiale "backport"-ate. Un conflict de fișiere poate rezulta într-o eroare de genul:
Se despachetează <pachet-bla> (din <fișierul-pachet-bla>) ...
dpkg: eroare la procesarea <pachet-bla> (--install):
încercare de suprascriere a <un-nume-de-fișier>,
care este și în pachetul <pachet-blabla>
dpkg-deb: subproces paste omorât prin semnal (Broken pipe)
Erori întâlnite în timpul prelucrării:
<pachet-bla>
Puteți încerca să rezolvați un conflict de fișiere prin eliminarea forțată a pachetelor menționate la sfârșitul 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 vi se vor pune întrebări legate de configurarea sau
reconfigurarea anumitor pachete. La întrebările despre înlocuirea
fișierelor din directoarele /etc/init.d,
/etc/terminfo sau a fișierului /etc/manpath.config
cu cele din pachete, de obicei, trebuie să răspundeți afirmativ, pentru a
asigura că sistemul este într-o stare consecventă. Puteți oricând să
reveniți la versiunile anterioare, acestea fiind 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.
Această secțiune arată cum să vă actualizați nucleul și identifică
potențialele probleme legate de această actualizare. Puteți fie să
instalați unul dintre pachetele linux-image-* oferite de Debian,
fie să compilați din surse un nucleu particularizat.
A se reține că multe din informațiile din această secțiune sunt bazate pe
presupunerea că veți folosi unul dintre nucleele Debian modulare împreună
cu initramfs-tools și udev. Dacă alegeți să
folosiți un nucleu particularizat care nu are nevoie de o imagine initrd sau
dacă folosiți un alt generator de imagini initrd, unele dintre informații
pot fi irelevante pentru cazul dumneavoastră.
A se reține și că, dacă udev nu este instalat în
sistemul dumenavoastră, este încă posibil să folosiți hotplug
pentru detectarea componentelor.
Dacă, în prezent folosiți un nucleu 2.4, ar trebui sa citiți cu atenție Actualizarea la un nucleu 2.6, Secţiunea 5.2.
Atunci când actualizați distribuția (folosind dist-upgrade) de la sarge la etch, este indicat să instalați metapachetul 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. Pentru a vedea o listă cu metapachetele linux-image-2.6 disponibile, rulați comanda:
# apt-cache search linux-image-2.6- | grep -v transition
Dacă nu știți cu siguranță ce pachet să alegeți, rulați uname
-r și căutați un pachet cu un nume similar. De exemplu, dacă
vedeți '2.4.27-3-686', este recomandat să instalați
linux-image-2.6-686. Ați putea folosi, de asemenea, camanda
apt-cache pentru a vedea o descriere detaliată a fiecărui pachet
pentru a putea să-l alegeți pe cel mai bun pachet disponibil. 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.
Pentru cei mai aventuroși există în Debian GNU/Linux o metodă ușoară de a
compila un nucleu personalizat. Instalați pachetul
kernel-package și citiți documentația din
/usr/share/doc/kernel-package.
Dacă rulați un nucleu 2.6 din sarge această actualizare va avea loc automat după actualizarea completă a pachetelor din sistem (după cum este descris la Actualizarea pachetelor, Secţiunea 4.5).
Dacă este posibil, este avantajos să actualizați pachetul nucleu separat de dist-upgrade-ul principal pentru a reduce riscul unui sistem care temporar nu poate inițializa. Vedeți Actualizarea Nucleului, Secţiunea 4.5.5 pentru o descriere a acestui proces. Notați că ar trebui să faceți acest lucru doar după procesul de actualizare minimală descris în Actualizare minimală de sistem, Secţiunea 4.5.4.
Această etapă poate fi folosită și dacă utilizați propriul nucleu
personalizat și doriți să folosiți nucleul disponibil în etch. Dacă
versiunea dumneavoastră de nucleu nu este suportată de udev
atunci este recomandat să actualizați după actualizarea minimală. Dacă
versiunea dumneavoastră este suportată de udev puteți aștepta
până după actualizarea completă a sistemului.
Dacă aveți instalat un nucleu 2.4 și sistemul dumneavoastră depinde de
hotplug pentru detectarea componentelor ar trebui să actualizați
mai întâi la un nucleu din seria 2.6 din sarge înaintesă încercați
actualizarea. Asigurați-vă că nucleul din seria 2.6 inițializează corect
sistemul și toate componentele sunt detectate corect înainte de a face
actualizarea. Pachetul hotplug este îndepărtat din sistem la
(în favoarea lui udev) la o actualizare completă. Dacă nu
faceți această actualizare de nucleu înainte, sistemul dumneavoastră ar
putea să nu inițializeze corect din acest moment. Cănd ați actualizat la
un nucleu din seria 2.6 din sarge puteți actualiza nucleul conform descrierii
din Actualizarea de la un nucleu 2.6, Secţiunea
4.6.2
Dacă sistemul dumneavoastră nu depinde de hotplug[10] Puteți amâna
actualizarea nucleului până după actualizarea completă a sistemului, după
cum este descris la Actualizarea sistemului,
Secţiunea 4.5.6. După ce sistemul dumneavoastră a fost actualizat
puteți executa următoarea comandă (modificați numele pachetului de nucleu
cu cel mai potrivit pentru sistemul dumneavoastră înlocuind
<variantă>):
# aptitude install linux-image-2.6-<variantă>
etch prezintă un mecanism mai robust pentru detectarea hardware-ului decât versiunea precedentă. Totuși, acesta poate duce la modificări la modul î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 etch funcțional, noua placă va primi un nume de interfață nou.
Pentru dispozitive de rețea puteți evita această reordonare folosind reguli
udev, mai exact, folosind definiții în
/etc/udev/rules.d/z25_persistent-net.rules[11].Alternativ puteți
folosi utilitarul ifrename pentru a asocia dispozitivele fizice cu
nume specifice la momentul inițializării. Vedeți ifrename(8)
și iftab(5) pentru mai multe informații. Cele două alternative
(udev și ifrename) nu trebuie folosite în acelați
timp.
Pentru dispozitivele de stocare, puteți evita această reordonare folosind
initramfs-tools configurat astfel încât să încarce modulele
pentru dispozitivele de stocare în ordinea în care sunt încărcate acum.
Pentru a realiza acest lucru, identificați ordinea în care au fost
încărcate aceste module pe sistemul dumneavoastră analizând informațiile
furnizate de lsmod. lsmod afișează modulele în
ordinea inversă încărcării lor, adică primul modul din listă a fost
încărcat ultimul. A se reține că aceasta va funcționa doar pentru
dispozitivele care sunt enumerate de nucleu într-o ordine stabilă (cum e
cazul dispozitivelor 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 sarge și versiunea etch. Spre exemplu
driverul sym53c8xx_2 a devenit sym53c8xx.
Apoi va trebui să regenereați imaginea/imaginile initramfs cu comanda update-initramfs -u -k all.
De îndată ce rulați un nucleu din etch și udev puteți să
reconfigurați sistemul să acceseze discurile prin intermediul unui alias
independent de ordinea de încărcare a modulelor. Aceste aliasuri se găsesc
în ierarhia directorului /dev/disk/.
Dacă este folosit un initrd creat cu initramfs-tools pentru
inițializarea sistemului, în anumite cazuri crearea fișierelor de
dispozitive de către udev este prea târzie pentru ca
script-urile de inițializare să poată acționa.
Simptomele uzuale sunt că inițializarea va da greș deoarece sistemul de
fișiere rădăcină nu poate fi montat și sunteți transferat într-o
consolă de depanare, dar când verificați ulterior, toate dispozitivele
necesare sunt prezente în /dev. Aceasta s-a observat în
cazurile în care sistemul de fișiere rădăcină este pe un disk USB sau
RAID, în special dacă se folosește 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.
După ce aptitude dist-upgrade a terminat, înseamnă că actualizarea "formală" s-a terminat, dar există alte lucruri care trebuiesc făcute înainte să reporniți sistemul.
Nucleele distribuției Debian nu mai includ suport pentru devfs,
așa că cei ce folosesc devfs vor trebui să-și convertească
manual propriile sisteme înainte de a face actualizarea la un nucleu etch.
Dacă observați șirul 'devfs' în /proc/mounts, probabil că
folosiți devfs. Toate fișierele de configurare care fac
referire la nume de dispozitive în stilul devfs vor trebui să
fie modificate pentru a utiliza stilul udev. Fișierele cele mai
susceptibile de a conține referințe la nume de dispozitive în stilul
devfs sunt /etc/fstab, /etc/lilo.conf,
/boot/grub/menu.lst și /etc/inittab.
Informații suplimentare despre problemele ce pot să apară sunt disponibile
în raportul de problemă #341152.
mdadm necesită un fișier de configurare pentru a asambla matricile multidisc
(RAID) din discul ram inițial în timpul secvenței de inițializare. Citiți
și executați întocmai instrucțiunile din
/usr/share/doc/mdadm/README.upgrading-2.5.3.gz după ce pachetul a
fost actualizat și înainte să reporniți sistemul. Cea mai
recentă versiune a acestui fișier este disponibilă la http://svn.debian.org/wsvn/pkg-mdadm/mdadm/trunk/debian/README.upgrading-2.5.3?op=file;
consultați-l în caz că aveți probleme.
După actualizare sunt mai multe lucruri pe care le puteți face pentru a pregăti următoarea lansare.
Dacă folosiți grub, modificați
/etc/kernel-img.conf și ajustați locația programului
update-grub prin modificarea /sbin/update-grub în
/usr/sbin/update-grub.
Dacă noul metapachet pentru imaginea de nucleu a fost instalat ca și dependență la cel vechi, acesta va fi marcat ca și instalat automat, ceea ce ar trebui corectat:
# aptitude unmarkauto $(dpkg-query -W 'linux-image-2.6-*' | cut -f1)
Îndepărtați metapachetul de nucleu din sarge rulând:
# aptitude purge kernel-image-2.6-<flavor>
Mutați orice valori de configurare din /etc/network/options în
/etc/sysctl.conf. Pentru detalii vă rugăm consultați
/usr/share/doc/netbase/README.Debian.
Îndepărtați pachetele depășite nefolosite după cum este descris la Pachete depășite, Secţiunea 4.10. 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.
Cu lansarea lui Lenny un număr mai mare de pachete server vor fi depășite, deci actualizarea acestora la versiuni noi va scuti probleme când veți actualiza la Lenny.
Acestea includ următoarele pachete:
apache (1.x), succesor este apache2
bind8, succesor este bind9
php4, successor este php5
postgresql-7.4, succesor este postgresql-8.1
exim 3, succesor este exim4
Odată cu introducerea a mii de pachete noi, etch retrage și omite mai mult de două mii de pachete vechi din sarge. Pentru aceste pachete depășite nu există actualizări. Cu toate că nimic nu vă împiedică să folosiți un pachet depășit, proiectul Debian în mod normal va întrerupe suportul de securitate la un an după lansarea lui etch[12], neoferind alt suport în acest timp. Este recomandabil să le înlocuiți cu alternativele disponibile, dacă acestea există.
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 etch datorită problemelor avute. În cazul din urmă, pachetele ar putea fi încă prezente în distribuția "instabilă".
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 sarge, 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
succeptibile 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.
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.
Anumite pachete din sarge au fost împărțite în mai multe pachete în etch, deseori pentru a îmbunătăți mentenabilitatea sistemului. Pentru a ușura actualizarea în aceste cazuri, etch oferă pachete marionetă: pachete goale care au același nume ca versiunea din sarge 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.
[ înapoi ] [ Sumar ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ A ] [ înainte ]
Note de lansare pentru Debian GNU/Linux 4.0 ("etch"), Alpha
$Id: release-notes.ro.sgml,v 1.312 2007-08-16 22:24:38 jseidel Exp $debian-doc@lists.debian.org