Cap. 4. Actualizarea de la Debian 8 (jessie)

Cuprins

4.1. Pregătirile pentru actualizare
4.1.1. Faceți copii de siguranță pentru orice date sau configurații
4.1.2. Informați utilizatorii din timp
4.1.3. Pregătire pentru oprirea serviciilor
4.1.4. Pregătiți recuperarea
4.1.5. Pregătiți un mediu sigur pentru actualizare
4.2. Verificarea stării sistemului
4.2.1. Verificați în managerul de pachete acțiunile de efectuat
4.2.2. Dezactivarea alegerilor selective APT
4.2.3. Verificarea stării pachetelor
4.2.4. Secțiunea proposed-updates
4.2.5. Unofficial sources
4.3. Pregătirea surselor pentru APT
4.3.1. Adăugarea de surse APT din Internet
4.3.2. Adăugarea de surse APT pentru un sit-oglindă local
4.3.3. Adăugarea de surse APT de pe un mediu optic
4.4. Actualizarea pachetelor
4.4.1. Înregistrarea sesiunii
4.4.2. Actualizarea listei de pachete
4.4.3. Verificați dacă aveți suficient spațiu pentru actualizare
4.4.4. Actualizare minimală de sistem
4.4.5. Actualizarea sistemului
4.5. Probleme posibile în timpul actualizării
4.5.1. Dist-upgrade eșuează cu eroarea „Could not perform immediate configuration”
4.5.2. Programe îndepărtate
4.5.3. Conflicte sau cicluri de pre-dependențe
4.5.4. Conflict de fișiere
4.5.5. Modificări de configurare
4.5.6. Schimbare a sesiunii la consolă
4.6. Actualizarea nucleului și a pachetelor conexe
4.6.1. Installing a kernel metapackage
4.7. Pregătirile pentru următoarea versiune
4.7.1. Purging removed packages
4.8. Pachete învechite
4.8.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 stretch de care ar trebui să știți. Acel capitol tratează probleme potențiale care nu sunt legate direct de procesul de actualizare, dar care ar putea fi important de știut înainte să începeți.

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

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

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

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

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

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

4.1.2. Informați utilizatorii din timp

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

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

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

4.1.3. Pregătire pentru oprirea serviciilor

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

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

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

4.1.4. Pregătiți recuperarea

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

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

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

For emergency recovery we generally recommend using the rescue mode of the stretch Debian Installer. The advantage of using the installer is that you can choose between its many methods to find one that best suits your situation. For more information, please consult the section Recovering a Broken System in chapter 8 of the Installation Guide and the Debian Installer FAQ.

If that fails, you will need an alternative way to boot your system so you can access and repair it. One option is to use a special rescue image or a Linux live CD. After booting from that, you should be able to mount your root file system and chroot into it to investigate and fix the problem.

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

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

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

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

4.1.4.2. Debug shell during boot using systemd

If the boot fails under systemd, it is possible to obtain a debug root shell by changing the kernel command line. If the basic boot succeeds, but some services fail to start, it may be useful to add systemd.unit=rescue.target to the kernel parameters.

Otherwise, the kernel parameter systemd.unit=emergency.target will provide you with a root shell at the earliest possible point. However, this is done before mounting the root file system with read-write permissions. You will have to do that manually with:

mount -o remount,rw /

More information on debugging a broken boot under systemd can be found in the Diagnosing Boot Problems article.

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

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

[Important]Important

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

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

[Important]Important

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

4.2. Verificarea stării sistemului

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

Below there are two methods for finding such packages by using either aptitude or apt-forktracer. Please note that neither of them are 100% accurate (e.g. the aptitude example will list packages that were once provided by Debian but no longer are, such as old kernel packages).

$ aptitude search '~i(!~ODebian)'
$ apt-forktracer | sort

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

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

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 jessie și nu la stable sau stretch, vedeți Secțiune A.2, „Verificarea listei de surse”.

To perform this review, launch aptitude in full-terminal mode and press g (Go). If it shows any actions, you should review them and either fix them or implement the suggested actions. If no actions are suggested you will be presented with a message saying No packages are scheduled to be installed, removed, or upgraded.

4.2.2. Dezactivarea alegerilor selective APT

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

4.2.3. Verificarea stării pachetelor

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

# dpkg --audit

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

# dpkg -l | pager

sau

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

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

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

# aptitude search "~ahold" 

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

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

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

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

# echo nume_pachet hold | dpkg --set-selections

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

Dacă este ceva ce trebui rezolvat, cel mai bine vă asigurați că sources.list încă se referă la jessie 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. Unofficial sources

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 stretch și să schimbați linia cu sursa corespunzătoare la același moment cu schimbarea surselor pentru pachetele Debian.

Some users may have unofficial backported newer versions of packages that are in Debian installed on their jessie system. Such packages are most likely to cause problems during an upgrade as they may result in file conflicts[4]. Secțiune 4.5, „Probleme posibile în timpul actualizării” has some information on how to deal with file conflicts if they should occur.

4.3. Pregătirea surselor pentru APT

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

apt will consider all packages that can be found via any deb line, and install the package with the highest version number, giving priority to the first line in the file (thus where you have multiple mirror locations, you'd typically first name a local hard disk, then CD-ROMs, and then remote mirrors).

O versiune poate fi referită deseori atât prin numele de cod (de ex: jessie, stretch) 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ă.

Debian provides two announcement mailing lists to help you stay up to date on relevant information related to Debian releases:

4.3.1. Adăugarea de surse APT din Internet

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

Debian mirror addresses can be found at https://www.debian.org/distrib/ftplist (look at the list of Debian mirrors section). Note that FTP mirrors are being discontinued - see Secțiune A.2, „Verificarea listei de surse”.

For example, suppose your closest Debian mirror is http://mirrors.kernel.org. If you inspect that mirror with a web browser, you will notice that the main directories are organized like this:

http://mirrors.kernel.org/debian/dists/stretch/main/binary-mipsel/...
http://mirrors.kernel.org/debian/dists/stretch/contrib/binary-mipsel/...

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 stretch main contrib

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

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

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

Instead of using HTTP package mirrors, you may wish to modify /etc/apt/sources.list to use a mirror on a local disk (possibly mounted over NFS).

For example, your package mirror may be under /var/local/debian/, and have main directories like this:

/var/local/debian/dists/stretch/main/binary-mipsel/...
/var/local/debian/dists/stretch/contrib/binary-mipsel/...

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

deb file:/var/local/debian stretch main contrib

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

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

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

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

Make sure there is a line in /etc/fstab that enables mounting your CD-ROM drive at the /media/cdrom mount point. For example, if /dev/sr0 is your CD-ROM drive, /etc/fstab should contain a line like:

/dev/sr0 /media/cdrom auto noauto,ro 0 0

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

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

# mount /media/cdrom    # this will mount the CD to the mount point
# ls -alF /media/cdrom  # this should show the CD's root directory
# umount /media/cdrom   # this will unmount the CD

Apoi, rulați

# apt-cdrom add

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

4.4. Actualizarea pachetelor

The recommended way to upgrade from previous Debian releases is to use the package management tool apt-get. In previous releases, aptitude was recommended for this purpose, but recent versions of apt-get provide equivalent functionality and also have proven to more consistently give the desired upgrade results.

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

[Notă]Notă

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

4.4.1. Înregistrarea sesiunii

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

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

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

Fișierul script vă va permite, de asemenea, să consultați informația care a defilat în afara ecranului. Dacă sunteți la consola sistemul puteți schimba la VT2 (folosind Alt-F2) și, după ce vă autentificați, utilizați less -R ~root/actualizare-stretch.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-stretch.time ~/actualizare-stretch.script

4.4.2. Actualizarea listei de pachete

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

# apt-get update

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

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

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

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

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

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

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

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

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

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

    # apt-get autoremove
    

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

  • Remove packages that take up too much space and are not currently needed (you can always reinstall them after the upgrade). If you have popularity-contest installed, you can use popcon-largest-unused to list the packages you do not use that occupy the most space. You can find the packages that just take up the most disk space with dpigs (available in the debian-goodies package) or with wajig (running wajig size). They can also be found with aptitude. Start aptitude in full-terminal mode, select ViewsNew Flat Package List, press l and enter ~i, then press S and enter ~installsize. This will give you a handy list to work with.

  • 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/.

  • Use a temporary /var/cache/apt/archives: You can use a temporary cache directory from another filesystem (USB storage device, temporary hard disk, filesystem already in use, ...).

    [Notă]Notă

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

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

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

      # apt-get clean

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

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

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

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

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

      # umount /media/usbkey/archives

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

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

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

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

4.4.4. Actualizare minimală de sistem

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

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

# apt-get upgrade
[Notă]Notă

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

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

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

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

4.4.5. Actualizarea sistemului

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

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

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

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

When upgrading from a set of CDs/DVDs/BDs, you will probably be asked to insert specific discs at several points during the upgrade. You might have to insert the same disc multiple times; this is due to inter-related packages that have been spread out over the discs.

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

4.5. Probleme posibile în timpul actualizării

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

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

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

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

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

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

4.5.2. Programe îndepărtate

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

4.5.3. Conflicte sau cicluri de pre-dependențe

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

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

# dpkg --remove nume_pachet

pentru a elimina pachetele problemă, sau

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

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

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

4.5.4. Conflict de fișiere

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

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

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

# dpkg -r --force-depends nume_pachet

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

4.5.5. Modificări de configurare

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

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

4.5.6. Schimbare a sesiunii la consolă

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

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

4.6. Actualizarea nucleului și a pachetelor conexe

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

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

4.6.1. Installing a kernel metapackage

When you dist-upgrade from jessie to stretch, it is strongly recommended that you install a linux-image-* metapackage, if you have not done so before. These metapackages will automatically pull in a newer version of the kernel during upgrades. You can verify whether you have one installed by running:

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

If you do not see any output, then you will either need to install a new linux-image package by hand or install a linux-image metapackage. To see a list of available linux-image metapackages, run:

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

If you are unsure about which package to select, run uname -r and look for a package with a similar name. For example, if you see 2.6.32-5-amd64, it is recommended that you install linux-image-amd64. You may also use apt-cache to see a long description of each package in order to help choose the best one available. For example:

# apt-cache show linux-image-amd64

You should then use apt-get install to install it. Once this new kernel is installed you should reboot at the next available opportunity to get the benefits provided by the new kernel version. However, please have a look at Secțiune 5.1.4, „Things to do post upgrade before rebooting” before performing the first reboot after the upgrade.

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

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

4.7. Pregătirile pentru următoarea versiune

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

4.7.1. Purging removed packages

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

[Atenție]Atenție

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

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

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

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

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

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

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

4.8. Pachete învechite

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

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

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

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

For a list of obsolete packages for Stretch, please refer to Secțiune 5.1.3, „Noteworthy obsolete packages”.

4.8.1. Pachetele marionetă

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

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



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

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

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

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

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