Kapitel 4. Opgraderinger fra Debian 6.0 (squeeze)

Indholdsfortegnelse

4.1. Forberedelse af opgraderingen
4.1.1. Sikkerhedskopier alle data og konfigurationsinformation
4.1.2. Informer brugerne i forvejen
4.1.3. Forbered nedetid for tjenester
4.1.4. Forbered for gendannelse
4.1.5. Forbered et sikkert miljø for opgraderingen
4.2. Kontrollerer systemstatus
4.2.1. Gennemse handlinger der afventer i pakkehåndteringen
4.2.2. Deaktivering af APT-pinning
4.2.3. Kontrol af pakkestatus
4.2.4. Afsnittet foreslåede opdateringer (proposed-updates)
4.2.5. Uofficielle kilder og tilbageporteringer (backports)
4.3. Forberedelse af kilder for APT
4.3.1. Tilføjelse af APT-internetkilder
4.3.2. Tilføjelse af APT-kilder for et lokalt spejl
4.3.3. Tilføjelse af APT-kilder fra et optisk medie
4.4. Opgradering af pakker
4.4.1. Optagelse af sessionen
4.4.2. Opdatering af pakkelisten
4.4.3. Sikr dig, at du har tilstrækkelig med plads til opgraderingen
4.4.4. Minimal systemopgradering
4.4.5. Opgradering af systemet
4.5. Mulige problemstillinger under opgradering
4.5.1. Dist-upgrade fejler med Kunne ikke udføre øjeblikkelig konfiguration
4.5.2. Forventede fjernelser
4.5.3. Konflikter eller forhåndsafhængige (Pre-Depends) loop
4.5.4. Filkonflikter
4.5.5. Konfigurationsændringer
4.5.6. Ændring af session til konsol
4.5.7. Specielle forhold for specifikke pakker
4.6. Opgradering af din kerne og relaterede pakker
4.6.1. Installation af kernens metapakke
4.6.2. Problemstillinger med opstartstiminger (venter for rodenhed)
4.7. Forberedelse af den næste udgivelse
4.8. Forældede pakker
4.8.1. Overgangspakker

4.1. Forberedelse af opgraderingen

Du bør læse informationen i Kapitel 5, Ting man skal være opmærksom på i forbindelse med wheezy, inden du opgraderer. Det kapitel dækker mulige problemer, som ikke er direkte relateret til opgraderingsprocessen, men som stadig kan være vigtige at kende til, inden du begynder.

4.1.1. Sikkerhedskopier alle data og konfigurationsinformation

Inden opgradering af dit system anbefales det kraftigt, at du foretager en fuldstændig sikkerhedskopiering, eller i det mindste laver en sikkerhedskopi af alle de data og den konfigurationsinformation, som du ikke vil risikere at miste. Opgraderingsværktøjerne og -processen er meget pålidelige, men en maskinel fejl midt i en opgradering kan resultere i et alvorligt skadet system.

De vigtigste dele, det vil være en god ide at lave sikkerhedskopier af, er indholdet af /etc, /var/lib/dpkg, /var/lib/apt/extended_states og uddata fra dpkg --get-selections "*" (citationstegn er vigtige). Hvis du bruger aptitude til at hente pakker på dit system, vil en sikkerhedskopiering af /var/lib/aptitude/pkgstates også være en god ide.

Selve opgraderingsprocessen ændrer ingenting i mappen /home. Dog er det kendt at visse programmer (for eksempel dele af Mozilla-pakken og skrivebordsmiljøerne GNOME og KDE) overskriver eksisterende brugerindstillinger med nye standardværdier, når en ny version af programmet startes for første gang af en bruger. Som en sikkerhedsforanstaltning bør du foretage en sikkerhedskopiering af de skjulte filer og mapper (såkaldte punktum-filer) i brugernes hjemmemapper. Denne sikkerhedskopiering kan hjælpe til at gendanne eller genoprette de gamle indstillinger. Du ønsker måske også at informere dine brugere om dette.

Alle pakkeinstallationshandlinger skal køres med superbrugerprivilegier, så log ind som root (administrator) eller brug su eller sudo for at få de nødvendige adgangsrettigheder.

Opgraderingen har nogle få forudsætninger; du bør tjekke dem, før du gennemfører opgraderingen.

4.1.2. Informer brugerne i forvejen

Det er klogt at informere alle brugerne i forvejen om eventuelle opgraderinger, du planlægger, også selv om brugere der tilgår dit system via en ssh-forbindelse ikke vil mærke meget under opgraderingen, og bør kunne fortsætte deres arbejde.

Hvis du vil være ekstra omhyggelig, så lav en sikkerhedskopi af eller afmonter /home før opgraderingen.

Du skal udføre en kerneopgradering under opgraderingen til wheezy, så en genstart er nødvendig. Typisk vil dette udføres efter opgraderingen er afsluttet.

4.1.3. Forbered nedetid for tjenester

Under opgraderingsprocessen kan der være tjenester, som er tilknyttet pakker, som er en del af opgraderingen. Hvis dette er tilfældet, vil disse tjenester måske stoppe mens pakkerne, som skal opgraderes bliver omplaceret og konfigureret. I dette tidsrum vil disse tjenester ikke være tilgængelige.

Præcis hvor lang nedetiden er for disse tjenester vil afhænge af antallet af pakker, som opgraderes på systemet, og vil også inkludere den tid som systemadministratoren er om at besvare konfigurationsspørgsmål fra forskellige pakkeopgraderinger. Bemærk at hvis opgraderingsprocessen foregår uovervåget og systemet kræver svar under opgraderingen, er der stor sandsynlighed for, at tjenester er utilgængelige[1] i en væsentlig tidsperiode.

Hvis systemet som opgraderes tilbyder kritiske tjenester for dine brugere eller netværk[2], så kan du minimere nedetiden, hvis du foretager en minimal systemopgradering som beskrevet i Afsnit 4.4.4, “Minimal systemopgradering”, efterfulgt af en kerneopgradering og en genstart og efterfølgende opgraderer pakker, som hører til dine kritiske tjenester. Opgrader disse pakker inden den komplette opgradering udføres jævnfør instruktionen i Afsnit 4.4.5, “Opgradering af systemet”. På denne måde kan du sikre dig, at disse vigtige tjenester er startet op og er tilgængelige gennem hele opgraderingsprocessen, og at deres nedetid er reduceret.

4.1.4. Forbered for gendannelse

Selom Debian forsøger at sikre, a dit system kan startes op på alle tidspunkter, er der en reel risko for, at du kan opleve problemer efter genstart af dit system, når opgraderingen er færdig. En del kendte problemer er dokumenteret i dette og de næste kapitler af udgivelsesnoterne.

Af den grund er det klogt at sikre sig, at du vil kunne gendanne dit system, såfremt det skulle fejle i at genstarte eller, for eksternt håndterede systemer, ikke kan få netværket til at fungere.

Hvis du fjernopgraderer via en ssh-henvisning, anbefales det kraftigt, at du foretager de nødvendige forholdsregler for at kunne tilgå serveren via en ekstern seriel terminal. Der er en risiko for, at efter opgradering af kernen og en genstart, at du skal rette systemkonfigurationen via en lokal konsol. Hvis systemet ved et uheld genstartes i midten af en opgradering, er der en risiko for, at du vil skulle gendanne via en lokal konsol.

Det mest åbenlysende er først at forsøge at genstarte med din gamle kerne. Dette kan dog ikke garanteres at virke.

Hvis dette mislykkes, skal du bruge en alternativ måde for at starte dit system op, så du kan tilgå det og reparere det. En mulighed er at bruge et specielt redningsaftryk eller en Linux-live-cd. Efter opstart fra denne, bør du kunne montere dit rodfilsystem og chroot ind i det for at undersøge og rette problemet.

En anden mulighed, som vi gerne anbefaler, er at bruge redningstilstanden for Debians wheezy-installationsprogram. Fordelen ved at bruge installationsprogrammet er, at du kan vælge mellem dets mange installationsmetoder efter en som bedst passer til din situation. For yderligere information, så se venligst afsnittet Gendannelse af et ødelagt system i kapitel 8 i Installationsvejledningen og OSS for Debians installationsprogram.

4.1.4.1. Fejlsøg skal under opstart med initrd

Pakken initramfs-tools inkluderer en fejlsøgningsskal[3] i initrds'en den opretter. Hvis for eksempel initrd'en ikke kan montere dit rodfilsystem, vil du blive placeret i denne fejlsøgningsskal, som har nogle grundlæggende kommandoer tilgængelige til at hjælpe med at spore problemet og eventuelt rette det.

Grundlæggende ting der kan kontrolleres: tilstedeværelse af korrekte enhedsfiler i /dev; hvilke moduler indlæses (cat /proc/modules); resultat af dmesg for fejl under indlæsning af drivere. Resultatet af dmesg vil også vise hvilke enhedsfiler, der er blevet tildelt til hvilke diske; du bør kontrollere det imod resultatet af echo $ROOT for at sikre, at rodfilsystemet er på den forventede enhed.

Hvis du lykkes med at rette problemet, vil indtastning af exit afslutte fejlsøgningsskallen og fortsætte opstartsprocessen på det punkt hvor den fejlede. Selvfølgelig skal du også rette det underliggende problem og genoprette initrd'en så den næste opstart ikke fejler igen.

4.1.5. Forbered et sikkert miljø for opgraderingen

Distributionsopgraderingen bør udføres enten lokalt fra en virtuel konsol i teksttilstand (eller en direkte forbundet seriel terminal), eller eksternt via en ssh-lænke.

[Vigtigt]Vigtigt

Hvis du bruger VPN-tjenester (såsom tinc), så er de måske ikke tilgængelige igennem hele opgraderingsprocessen. Se venligst Afsnit 4.1.3, “Forbered nedetid for tjenester”.

For at opnå en ekstra sikkerhedsmargen når der opgraderes eksternt, så foreslår vi, at du kører opgraderingsprocesser i den virtuelle konsol tilbudt af programmet screen, som aktiverer sikker gentilslutning og sikrer at opgraderingsprocessen ikke afbrydes selv hvis den eksterne tilslutningsproces mislykkes.

[Vigtigt]Vigtigt

Du bør ikke opgradere med telnet, rlogin, rsh eller fra en X-session håndteret af xdm, gdm eller kdm etc. på maskinen du opgraderer. Dette skyldes at hver af disse tjenester kan bliver termineret under opgraderingen, hvilket kan resultere i et utilgængeligt system som kun er halvt opgraderet. Brug af GNOME-programmet update-manager frarådes på det kraftigste for opgraderinger til nye versioner, da dette værktøj afhænger af at skrivebordet forbliver aktivt.

4.2. Kontrollerer systemstatus

Opgraderingsprocessen - beskrevet i dette kapitel - er blevet designet for opgraderinger fra rene squeeze-systemer uden tredjepartspakker. For den største troværdighed i opgraderingsprocessen, kan du fjerne tredjepartspakker fra dit system, før du begynder opgraderingen.

Direkte opgraderinger fra Debianudgivelser ældre end 6.0 (squeeze) er ikke understøttet. Følg venligst instruktionerne i Udgivelsesnoter for Debian 6.0 for at opgradere til 6.0 først.

Denne procedure antager også, at dit sytem er blevet opdateret til den sidste punktversion af squeeze. Hvis du ikke har udført dette eller er usikker, så følg instruktionerne i Afsnit A.1, “Opgradering af dit squeeze-system”.

4.2.1. Gennemse handlinger der afventer i pakkehåndteringen

I nogle tilfælde kan brugen af apt-get til installation af pakker i stedet for aptitudeaptitude til at anse en pakke som ubrugt og planlægge den for fjernelse. Generelt, skal du sikre dig, at systemet er fuldt opdateret og rent før du fortsætter med opgraderingen.

På grund af dette bør du gennemse om der er nogle afventende handlinger i pakkehåndteringen aptitude. Hvis en pakke er planlagt til fjernelse eller opdatering i pakkehåndteringen, kan det negativt påvirke opgraderingsproceduren. Bemærk at rettelse af dette kun er muligt hvis din sources.list stadig peger på squeeze og ikke på stable eller wheezy; se Afsnit A.2, “Kontroller din kildeliste”.

For at udføre denne gennemgang, så start aptitude i visuel tilstand og tryk på g (Go). Hvis den viser nogle handlinger, så bør du gennemse dem og enten rette dem eller implementere de foreslåede handlinger. Hvis ingen handlinger foreslås, vil du blive præsenteret med en besked der siger Ingen pakker er planlagt for installation, fjernelse eller opgradering.

4.2.2. Deaktivering af APT-pinning

Hvis du har konfigureret APT til at installere bestemte pakker fra en distribution udover stable (f.eks. fra testing), så skal du måske ændre din APT-pinnings konfiguration (gemt i /etc/apt/preferences) for at tillade pakkeopgraderinger af versioner i den nye stabile version. Yderligere information om APT-pinning kan findes i apt_preferences(5).

4.2.3. Kontrol af pakkestatus

Uanset den anvendte opgraderingsmetode, så anbefales det, at du kontrollerer pakkernes status først, og verificerer at alle pakker er i en opgraderbar tilstand. Den følgende kommando vil vise alle pakker, som har en status som halvt installeret (Half-Installed) eller som ikke kunne konfigureres, (Failed-Config) og dem med en eventuel fejlstatus.

# dpkg --audit

Du kan også inspicere tilstanden for alle pakker på dit system med aptitude, eller med kommandoer såsom

# dpkg -l | pager

eller

# dpkg --get-selections "*" > ~/curr-pkgs.txt

Det er ønskværdigt at fjerne alle pakker på hold før en opgradering. Hvis en pakke - som er essentiel for opgraderingen - er på hold, så vil opgraderingen fejle.

Bemærk at aptitude bruger en anden metode for registrering af pakker, som er på hold end apt-get og dselect. Du kan identificere pakker på hold for aptitude med

# aptitude search "~ahold" 

Hvis du ønsker at kontrollere hvilke pakker du havde på hold for apt-get, så skal du bruge

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

Hvis du ændrede og genkompilerede en pakke lokalt, og ikke omdøbte den eller placerede en epoch i versionen, så skal du sætte den på hold for at forhindre at den bliver opgraderet.

Pakketilstanden hold for apt-get kan ændres med:

# echo pakkenavn hold | dpkg --set-selections

Erstat hold med install for at fjerne tilstanden hold.

Hvis der er noget som skal rettes, så er det bedst at sikre sig at din sources.list stadig refererer til squeeze som forklaret i Afsnit A.2, “Kontroller din kildeliste”.

4.2.4. Afsnittet foreslåede opdateringer (proposed-updates)

Hvis du har afsnittet proposed-updates i din /etc/apt/sources.list-fil, så skal du fjerne afsnittet fra den fil før du forsøger en opgradering af dit system. Dette er en forberedelse for at reducere sandsynligheden for konflikter.

4.2.5. Uofficielle kilder og tilbageporteringer (backports)

Hvis du har pakker, som ikke stammer fra Debian, på dit system, så skal du være opmærksom på at disse kan blive fjernet under opgraderingen på grund af afhængigheder i konflikt. Hvis disse pakker blev installeret ved at tilføje et ekstra pakkearkiv i din /etc/apt/sources.list, så skal du kontrollere om dette arkiv også tilbyder pakker kompileret for wheezy og ændre kildelinjen tilsvarende på samme tidspunkt som dine kildelinjer for Debianpakker.

Nogle brugere kan have uofficielle tilbageporterede nyere version af pakker som i Debian er installeret på deres squeeze-system. Sådanne pakker vil højst sandsynlig medføre problemer under en opgradering, da de kan resultere i filkonflikter[4]. Afsnit 4.5, “Mulige problemstillinger under opgradering” har lidt information om hvordan filkonflikter skal håndteres, såfremt de opstår.

4.3. Forberedelse af kilder for APT

Før du starter opgraderingen skal du opsætte apt's konfigurationsfil for pakkelister, /etc/apt/sources.list.

apt vil overveje alle pakker som kan findes via en deb-linje og installere en pakke med højere versionsnummer. Den første linje i filen får prioritet (så hvor du har flere spejlplaceringer, så har du typisk som første navn en lokal harddisk, derefter cd-rom-drev og derefter HTTP/FTP-spejle).

En udgivelse kan ofte refereres til både efter dets kodenavn (f.eks. squeeze, wheezy) og efter sit statusnavn (dvs. oldstable, stable, testing, unstable). En reference til en udgivelse med sit kodenavn har den fordel, at du aldrig vil blive overrasket af en ny udgivelse og er derfor fremgangsmåden anvendt her. Det betyder selvfølgelig, at du selv skal holde øje med udgivelsesnoter. Hvis du bruger statusnavnet i stedet for, så vil du bare se en masse opdateringer for pakker så snart en udgivelse er tilgængelig.

4.3.1. Tilføjelse af APT-internetkilder

Standardkonfigurationen er opsat til installation fra internettes hovedservere for Debian, men du kan ændre /etc/apt/sources.list til at bruge andre spejle, helst til et spejl som er tæt på dig netværksmæssigt.

Debians HTTP- eller FTP-spejladresser kan findes på http://www.debian.org/distrib/ftplist (kig i afsnittet liste over Debians spejle section). HTTP-spejle er generelt hurtigere end FTP-spejle.

For eksempel antag at dit nærmeste Debianspejl er http://mirrors.kernel.org. Når du kigger på spejlet med en internetbrowser eller FTP-program, så vil du bemærke at hovedmapperne er organiseret således:

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

For at bruge dette spejl med apt, så kan du tilføje denne linje til din sources.list-fil:

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

Bemærk at dists tilføjes implicit, og parametrene efter udgivelsesnavnet bruges til at udvide stien til flere mapper.

Efter tilføjelse af dine nye kilder, så deaktiver de tidligere deb-liner i sources.list ved at placere en havelåge (#) foran dem.

4.3.2. Tilføjelse af APT-kilder for et lokalt spejl

I stedet for at bruge HTTP eller FTP-pakkespejl, kan du ønske at ændre /etc/apt/sources.list så der bruges et spejl på en lokal disk (sandsynligvis monteret over NFS).

For eksempel kan dit pakkespejl være under /var/ftp/debian/, og have hovedmapper som disse:

/var/ftp/debian/dists/wheezy/main/binary-mipsel/...
/var/ftp/debian/dists/wheezy/contrib/binary-mipsel/...

For at bruge dette med apt, så tilføj denne linje til din sources.list-fil:

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

Bemærk at dists tilføjes implicit, og parametrene efter udgivelsesnavnet bruges til at udvide stien til flere mapper.

Efter tilføjelse af dine nye kilder, så deaktiver de tidligere deb-liner i sources.list ved at placere en havelåge (#) foran dem.

4.3.3. Tilføjelse af APT-kilder fra et optisk medie

Hvis du ønsker kun at bruge cd'er (eller dvd'er eller Blu-ray-diske), så udkommenter de eksisterende deb-linjer i /etc/apt/sources.list ved at placere en havelåge (#) foran dem.

Sikr dig, at der er en linje i /etc/fstab som aktiverer montering af dit cd-rom-drev på monteringspunktet /cdrom (det præcise monteringspunkt for /cdrom er krævet for apt-cdrom). For eksempel hvis /dev/scd0 er dit cd-rom-drev, så skal /etc/fstab indeholde en linje som vist her:

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

Bemærk at der ikke må være mellemrum mellem ordene noauto,ro i det fjerde felt.

For at verificere, at det virker, så indsæt en cd og prøv igen

# mount /cdrom    # dette vil montere cd'en på monteringspunktet
# ls -alF /cdrom  # dette bør vise cd'ens rodmappe
# umount /cdrom   # dette vil afmontere cd'en

Næste, kør:

# apt-cdrom add

for hver Debian binær cd-rom du har, at tilføje dataene om hver cd til APT's database.

4.4. Opgradering af pakker

Den anbefalede måde at opgradere fra tidligere Debian-udgivelser er at bruge pakkehåndteringsværktøjet apt-get. I forrige udgivelser blev aptitude anbefalet til dette formål, men de seneste versioner af apt-get tilbyder lignende funktionalitet og har også vist sig at give de ønskede opgraderingsresultater mere konsistent.

Glem ikke at montere alle krævede partitioner (vigtigst partitionerne for root og /usr som skrivbare med en kommando såsom:

# mount -o remount,rw /monteringspunkt

Efterfølgende skal du dobbeltkontrollere at APT-kildepunkterne (i /etc/apt/sources.list) refererer enten til wheezy eller til stable. Der bør ikke være kildepunkter, der peget på squeeze.

[Bemærk]Bemærk

Kildelinjer for en cd-rom kan undertiden referere til unstable; selvom dette kan være forvirrende, så skal du ikke ændre det.

4.4.1. Optagelse af sessionen

Det anbefales at du bruger programmet /usr/bin/script til at optage et sammendrag af opgraderingssessionen. Hvis der så opstår et problem, så vil du have en log over hvad der skete, og hvis krævet, kan give præcis information i en fejlrapport. For at starte registreringen tastes:

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

eller lignende. Hvis du skal køre typeskriptet igen (f.eks. hvis du skal genstarte systemet) så brug forskellige værdier for step for at indikere hvilket trin af opgraderingen du logger fra. Placer ikke typeskriptfilen i en midlertidig mappe såsom /tmp eller /var/tmp (filer i disse mapper kan blive slettet under opgraderingen eller under en genstart).

Typeskriptet vil også give dig mulighed for at gennemse information, som er rullet forbi skærmen. Hvis du er ved systemets konsol, så skift til VT2 (med Alt+F2) og efter at du er logget ind, så brug less -R ~root/upgrade-wheezy.script for at se filen.

Efter at du har færdiggjort opgraderingen, så kan du stoppe script ved at taste exit i prompten.

Hvis du har brugt tilvalget -t for script så kan du bruge programmet scriptreplay for at afspille hele sessionen:

# scriptreplay ~/upgrade-wheezy.time ~/upgrade-wheezy.script

4.4.2. Opdatering af pakkelisten

Først skal listen over tilgængelige pakker for den nye udgivelse hentes. Dette gøres ved at køre:

# apt-get update

4.4.3. Sikr dig, at du har tilstrækkelig med plads til opgraderingen

Du skal sikre dig, at du har tilstrækkelig med harddiskplads før du opgraderer med den fulde systemopgradering beskrevet i Afsnit 4.4.5, “Opgradering af systemet”. Først, alle pakker krævet for installation som hentes fra netværket gemmes i /var/cache/apt/archives (og undermappen partial/, under overførsel), så du skal sikre dig, at du har nok plads på partitionen for filsystemet, som indeholder /var/ til midlertidigt at hente pakkerne, som skal installeres på dit system. Efter overførslen skal du sikkert bruge ekstra plads i andre filsystempartitioner for både at installere opgraderede pakker (som kan indeholder større binære filer eller mere data) og nye pakker, som vil blive hentet ned for opgraderingen. Hvis dit system ikke har tilstrækkelig med plads, kan du ende med en ufuldstændig opgradering, som det kan være svært at fortryde.

apt-get kan vise dig detaljeret information om diskpladsen krævet for installationen. Før udførsel af opgraderingen, kan du se dette estimat ved at køre:

# apt-get -o APT::Get::Trivial-Only=true dist-upgrade
[ ... ]
XXX opgraderes, XXX nyinstalleres, XXX fjernes og XXX bliver ikke opgraderet.
Skal hente xx.xMB fra arkiverne. 
Efter denne operation vil AAAMB yderligere diskplads være brugt.
[Bemærk]Bemærk

Kørsel af denne kommando i begyndelsen af opgraderingsprocessen kan medføre en fejl, på grund af årsagerne beskrevet i de næste afsnit. I disse tilfælde skal du vente indtil du har udført den minimale systemopgradering som i Afsnit 4.4.4, “Minimal systemopgradering” før du kører denne kommando for at estimere diskpladsen.

Hvis du ikke har nok plads for opgraderingen, så vil apt-get advare dig med en besked:

E: Du har ikke nok ledig plads i /var/cache/apt/archives/.

I denne situation, så skab først ledig plads. Du kan:

  • Fjerne pakker som tidligere er blevet hentet for installation (i /var/cache/apt/archives). Oprydning i pakkemellemlageret med apt-get clean vil fjerne alle tidligere hentede pakkefiler.

  • Fjern glemte pakker. Hvis du har brugt aptitude eller apt-get til manuelt at installere pakker i squeeze vil programmet have styr på hvilke pakker du har installeret manuelt og vil kunne markere forældet på de pakker der er trukket ind af afhængigheder alene og som ikke længere er krævet hvis en pakke er blevet fjernet. De vil ikke markere pakker til fjernelse, hvis du har installeret dem manuelt. For at fjerne automatisk installerede pakker som ikke længere bruges, kør:

    # apt-get autoremove
    

    Du kan også deborphan, debfoster eller cruft ti lat finde redundante pakker. Fjern ikke blindt pakkerne disse værktøjer præsenterer, specielt hvis du bruger aggressive indstillinger, der ikke er standard, som er mere udsat for at give falske positive resultater. Det anbefales stærkt, at du manuelt gennemser pakkerne der bliver foreslået for fjernelse (dvs. deres indhold, størrelse og beskrivelse) før du fjerner dem.

  • Fjern pakker som fylder for meget og ikke skal bruges i øjeblikket (du kan altid geninstallere dem efter opgraderingen). Hvis du har popularity-contest installeret, så kan du bruge popcon-largest-unused til at vise pakkerne, du ikke bruger og som bruger mest plads. Du kan finde pakkerne som bare bruger mest plads med dpigs (tilgængelig i pakken debian-goodies) eller med wajig (kør wajig size). De kan også findes med aptitude. Start aptitude i visual mode, vælg VisningerNy flad pakkeliste, tryk l og indtast ~i, tryk S og indtast ~installsize. Så får du en liste at arbejde med.

  • Fjern oversættelser og sprogfiler fra system hvis de ikke er krævet. Du kan installere pakken localepurge og konfigurere den så at kun nogle få udvalgte sprog bevares i systemet. Dette vil reducere den forbrugt diskplads i /usr/share/locale.

  • Flyt midlertidigt til et andet system, eller fjern permanent, systemlogge under /var/log/.

  • Brug en midlertidig /var/cache/apt/archives: Du kan bruge en midlertidigt mellemlagermappe fra et andet filsystem (USB-lagerenhed, midlertidig harddisk, filsystem allerede i brug, ...)

    [Bemærk]Bemærk

    Brug ikke en NFS-montering da netværksforbindelsen kan blive afbrudt under opgraderingen.

    For eksempel hvis du har et USB-drev monteret på /media/usbkey:

    1. fjern pakkerne som tidligere er blevet hentet for installation:

      # apt-get clean

    2. kopier mappen /var/cache/apt/archives til USB-drevet:

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

    3. monter den midlertidige mappe for mellemlageret på den aktuelle:

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

    4. efter opgraderingen, gendan den originale /var/cache/apt/archives-mappe:

      # umount /media/usbkey/archives

    5. fjern den tilbageværende /media/usbkey/archives.

    Du kan oprette den midlertidige mappe for mellemlageret på det filsystem som er monteret på dit system.

  • Udfør en minimal opgradering af systemet (se Afsnit 4.4.4, “Minimal systemopgradering”) eller delvise opgraderinger af systemet efterfulgt af en fuld opgradering. Dette vil gøre det muligt at opgradere systemet delvist, og give dig mulighed for at rydde pakkemellemlageret før den fulde opgradering.

Bemærk at for sikkert at fjerne pakker, så er det tilrådeligt at skifte din sources.list tilbage til squeeze som beskrevet i Afsnit A.2, “Kontroller din kildeliste”.

4.4.4. Minimal systemopgradering

I nogle tilfælde under udførelse af den fulde opgradering (som beskrevet nedenfor) kan der blive fjernet et stort antal pakker, som du måske ønsker at beholde. Vi anbefaler derfor en todelt opgraderingsproces, først en minimal opgradering til at forbigå disse konflikter, og så en fuld opgradering som beskrevet i Afsnit 4.4.5, “Opgradering af systemet”.

For at gøre dette, så kør først:

# apt-get upgrade

Dette medfører en opgradering af de pakker, som kan opgraderes uden at kærve at andre pakker fjernes eller installeres.

Den mimimale systemopgradering kan også være nyttig når systemet har lidt ledig plads og en fuld opgradering ikke kan køres på grund af pladsbegrænsninger.

Hvis pakken apt-listchanges er installeret, så vil den (i sin standardkonfiguration) vise vigtig information om opgraderede pakker i en tekstviser. Tryk på q efter du har læst informationen for at afslutte tekstviseren og fortsæt opgraderingen.

4.4.5. Opgradering af systemet

Når du har udført de tidligere trin, er du nu klar til at fortsætte med hoveddelen af opgraderingen. Kør:

# apt-get dist-upgrade
[Bemærk]Bemærk

Opgraderingsprocessen for tidligere udgivelser anbefalede brugen af aptitude til opgraderingen. Dette værktøj er ikke anbefalet for opgraderinger fra squeeze til wheezy.

Dette vil udføre en fuldstændig opgradering af systemet, dvs. installere de nyeste tilgængelige versioner af alle pakker, og løse alle eventuelle afhængighedsændringer mellem pakker i forskellige udgivelser. Hvis nødvendigt vil den installere nogle nye pakker (normalt nye biblioteksversioner, eller omdøbte pakker), og fjerne alle forældede pakker der er i konflikt med andre pakker.

Når der opgraderes fra et sæt af cd-rommer (eller dvd'er), så vil du blive spurgt om at indsætte specifikke cd'er på flere punkter under opgraderingen. Du skal måske indsætte den samme cd flere gange; dette skyldes forbundne pakker som er blevet spredt ud over cd'erne.

Nye versioner af aktuelt installerede pakker, som ikke kan opgraderes uden at ændre installationsstatus for andre pakker vil blive efterladt med deres aktuelle version (vist som held back). Dette kan løses ved enten at bruge aptitude til at vælge disse pakker for installation elelr ved at prøve apt-get -f install package.

4.5. Mulige problemstillinger under opgradering

De følgende afsnit beskriver kendte problemstillinger, som kan opstå under en opgradering til wheezy.

4.5.1. Dist-upgrade fejler med Kunne ikke udføre øjeblikkelig konfiguration

I nogle tilfælde kan trinet apt-get dist-upgrade fejl efter overførsel af pakker med:

E: Kunne ikke udføre øjeblikkelig konfiguration på »package«. Se venligt man 5 apt.conf under APT::Immediate-Configure for detaljer.

Hvis det sker, så bør kørsel af apt-get dist-upgrade -o APT::Immediate-Configure=0 i stedet for tillade at opgraderingen fortsætter.

En anden mulig omgåelse af dette problem er midlertidig at tilføje både squeeze- og wheezy-kilder til din sources.list og køre apt-get update.

4.5.2. Forventede fjernelser

Opgraderingsprocessen for wheezy kan anmode om fjernelse af pakker i systemet. Den præcise liste over disse pakker vil variere afhængig af det pakkesæt du har installeret. Disse udgivelsesnoter giver generelle råd om disse fjernelser, men hvis du er i tvivl, så anbefales det, at du undersøger pakkefjernelserne foreslået af hver metode før du fortsætter.

4.5.3. Konflikter eller forhåndsafhængige (Pre-Depends) loop

Undertiden er det nødvendigt at aktivere tilvalget APT::Force-LoopBreak i ATP for midlertidigt at kunne fjerne en essentiel pakke på grund af en konflikt/forhåndsafhængig loop. apt-get vil påminde dig om dette og afbryde opgraderingen. Du kan omgå dette ved at angive tilvalget -o APT::Force-LoopBreak=1 på kommandolinjen for apt-get.

Det kan ske, at et systems afhængighedsstruktur kan være så ødelagt, at det kræver manuel intervention. Normalt betyder dette brug af apt-get eller

# dpkg --remove pakkenavn

for at eliminere nogle af de stridende pakker, eller

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

I ekstreme tilfælde kan det være nødvendigt at fremtvinge reinstallation med en kommando som

# dpkg --install /path/to/package_name.deb

4.5.4. Filkonflikter

Filkonflikter bør ikke opstå hvis du opgraderer fra et rent squeeze-system, men kan opstå hvis du har uofficielle backports installeret. En filkonflikt vil resultere i en fejl såsom:

Udpakker <package-foo> (fra <package-foo-file>) ...
dpkg: fejl under behandling af <package-foo> (--install):
 forsøger at overskrive »<some-file-name>«,
 som også er i pakke <package-bar>
dpkg-deb: indsætning af underproces dræbt af signal (ødelagt datakanal)
 Der opstod fejl under behandlingen:
 <package-foo>

Du kan forsøge at løse en filkonflikt ved med tvang at fjerne pakken nævnt på den sidste linje i fejlbeskeden:

# dpkg -r --force-depends pakkenavn

Efter rettelse, bør du være i stand til at genoptage opgraderingen ved at gentage de tidligere beskrevne kommandoer for apt-get.

4.5.5. Konfigurationsændringer

Under opgraderingen vil du blive stillet nogle spørgsmål angående konfigurationen eller omkonfigurationen af flere pakker. Når du bliver spurgt om en fil i mappen /etc/init.d eller filen /etc/manpath.config skal erstattes af pakkevedligeholderens version, så er det normalt nødvendigt at svare »ja« for at sikre systemkonsistens. Du kan altid vende tilbage til de ældre versioner, da de bliver gemt med filendelsen .dpkg-old.

Hvis du ikke er sikker på, hvad du skal gøre, så skriv navnet på pakken eller filen ned og udred så problemstillingen senere. Du kan søge i typescript-filen for at gennemse informationen på skærmen fra opgraderingen.

4.5.6. Ændring af session til konsol

Hvis du kører opgraderingen med systemets lokale konsol, så vil du måske opleve, at under visse steder af opgraderingen så skifter konsollen over til en anden visning og du mister synlighed over opgraderingsprocessen. For eksempel vil dette ske på skrivebordssystemer når skærmhåndteringen genstartes.

For at gendanne konsollen hvor opgraderingen var nået til, skal du bruge Ctrl+Alt+F1 (hvis i den grafiske opstartsskærm) eller bruge Alt+F1 (hvis i den lokale konsol for teksttilstand) for at skifte tilbage til den virtuelle terminal 1. Erstat F1 med funktionstasten med det samme antal som den virtuelle terminal opgraderingen kørte i. Du kan også bruge Alt+Venstre piletast eller Alt+Højre piletast for at skifte mellem de forskellige terminaler i teksttilstand.

4.5.7. Specielle forhold for specifikke pakker

I de fleste tilfælde, bør pakker blive opgraderet uden problemer mellem squeeze og wheezy. Der er nogle få tilfælde, hvor intervention kan være krævet, enten før eller under opgraderingen; disse er detaljeret beskrevet nedenfor per pakke.

4.5.7.1. Sudo

Hvis du har ændret /etc/sudoers, så skal du være opmærksom på ændringer, som ændrer hvordan konfigurationen af sudo håndteres. Standarden /etc/sudoers inkluderer nu de følgende to direktiver:

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

Ingen af disse punkter tilføjes til din /etc/sudoers automatisk under opgraderingen. (Selvom du stadig vil kunne køre sudo-kommandoer ved at angive deres fuldt kvalificeret sti). Du kan derfor overveje at migrere dine ændringer til den nye mappe /etc/sudoers.d og anvnede standardfilen /etc/sudoers. For eksempel:

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

Du skal måske også redigere din /etc/sudoers.d/mychanges for at fjerne uønskede Standarder og #includedir-punkter. Du bør bruge visudo til dette formål:

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

4.5.7.2. Screen

GNU Screen-versionerne i squeeze og wheezy bruger ikke den samme kommunikationsprotokol mellem screen-klienten og SCREEN-serveren. Wheezy's screen-pakke er blevet rettet, så at den vigtigste funktionalitet er til stede selv om versionerne for screen-klienten og serveren ikke er ens.

De mest prominente funktionalitet, som ikke fungerer korrekt når der forbindes til en Screen-session startede med squeezes version af screen med wheezy's version af screen som klient er ændring af størrelsen på terminalen (WINCH-signal). Omgåelsen er at frakoble og genkoble imod for at få terminalens størrelse inden i screen-sessionen justeret korrekt.

Nogle ncurses-baserede programmer, f.eks. aptitude i visuel tilstand, kan efterlade spor af tidligere indhold på skærmen. Et tryk på Ctrl+L løser problemstillingen.

Et andet (harmløst) symptom på sådan en mellem-versioner forbindelse er at screen udsender beskeder såsom »Besked 40 for 12376 byte er for lille«,

Alle disse problemstillinger forsvinder så snart Screen-sessionerne startet med squeezes version af screen afsluttes.

Se også /usr/share/doc/screen/NEWS.Debian.gz i wheezy's pakke screen.

4.5.7.3. Suhosin PHP-modul

Pakken php5-suhosin er blevet fjernet. Hvis din PHP-konfiguration inkluderede suhosin-modulet, så vil den fejle i at blive indlæst efter PHP-opgraderingen. Kør dpkg --purge php5-suhosin for at fjerne den overskydende konfiguration i /etc/php5/conf.d/suhosin.ini.

4.6. Opgradering af din kerne og relaterede pakker

Dette afsnit forklarer hvordan du opgraderer din kerne og identificerer potentielle problemstillinger forbundet med denne opgradering. Du kan enten installere en af linux-image-*-pakkerne tilbudt af Debian, eller kompilere en tilpasset kerne fra kilde.

Bemærk at en masse informaton i dette afsnit er baseret på den antagelse, at du vil bruge en af de modulære Debiankerner, sammen med initramfs-tools og udev. Hvis du vælger at bruge en tilpasset kerne, som ikke kræver en initrd eller hvis du bruger en anden initrd-opretter, kan noget af informationen være urelevant for dig.

4.6.1. Installation af kernens metapakke

Når du laver en dist-upgrade (distributionsopgradering) fra squeeze til wheezy, så anbefales det at du installerer en ny linux-image-*-metapakke. Denne pakke kan installeres automatisk ved processen dist-upgrade. Du kan verificere dette ved at køre:

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

Hvis du ikke ser et resultat, så skal du installere en ny pakke for linux-image manuelt. For at se en liste over tilgængelige metapakker for linux-image, så kør:

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

Hvis du er usikker omkring hvilken pakke du skal vælge, så kør uname -r og kig efter en pakke med et lignende navn. For eksempel, hvis du ser »2.6.32-5-amd64«, så anbefales det at du installerer linux-image-amd64. Du kan også bruge apt-cache for at se en lang beskrivelse af hver pakke for at hjælpe med at vælge den bedst tilgængelige. For eksempel:

# apt-cache show linux-image-amd64

Du skal så bruge apt-get install til at installere den. Når først dnene kerne er installeret, så skal du genstarte ved næste tilgængelige mulighed for at få fordelene tilbudt af den nye kerneversion.

For de mere eventyrllystne er der en nem måde at kompilere din egen tilpasset kerne på Debian. Installer kernekilderne, tilbudt i pakken linux-source. Du kan også gøre brug af målet deb-pkg tilgængelig i kildernes makefile for bygning af en binær pakke. Yderligere information kan findes i Håndbogen for Debians Linux-kerne, som også kan findes i pakken debian-kernel-handbook.

Hvis muligt så er det en fordel for dig at opgradere kernepakken adskilt fra hoveddelen af dist-upgrade for at reducere risikoen for et midlertidigt system der ikke kan startes op. Bemærk at dette kun skal gøres efter den minimale opgraderingsproces beskrevet i Afsnit 4.4.4, “Minimal systemopgradering”.

4.6.2. Problemstillinger med opstartstiminger (venter for rodenhed)

Hvis en initrd oprettet med initramfs-tools bruges til at opstarte systemet, så kan i nogle tilfælde denne oprettelse af enhedsfiler af udev ske for sendt til at opstartsskripter kan agere på den.

De normale symptoner er, at opstarten vil fejle på grund af at rodfilsystemet ikke kan monteres og du droppes ind i en fejlsøgningsskal:

Opgav at vente på rodenhed. Gængse problemer:
 - Opstartsparamtre (cat /proc/cmdline)
   - Kontroller rootdelay= (ventede systemet længe nok?)
   - Kontroller root= (ventede systemet på den korrekte enhed?)
 - Manglende moduler (cat /proc/modules; ls /dev)
BEMÆRK! /dev/something findes ikke. Dropper til en skal!
(initramfs) 

Men hvis du kontrollerer efterfølgende, så er alle krævede enheder til stede i /dev. Dette er blevet observeret i tilfælde hvor rodfilsystemet er på en USB-disk eller på RAID, specielt hvis LILO bruges.

En omgåelse af denne problemstilling er at bruge opstartsparameteren rootdelay=9. Værdien for tidsudløbet (i sekunder) skal måske justeres.

4.7. Forberedelse af den næste udgivelse

Efter opgraderingen er der nogle ting, du kan forberede for din næste udgivelse.

4.8. Forældede pakker

Der introduceres flere tusinde nye pakker i wheezy, men fjernes og udelades også fire hundrede gamle pakker, som var i squeeze. Der tilbydese ingen opgraderingssti for disse forældede pakker. Selv om intet forhindrer dig i fortsat at benytte en forældet pakke, så vil Debianprojektet normat ikke fortsætte den sikkerhedsmæssige support af pakken mere end et år efter wheezys udgivelse[5], og vil normalt heller ikke tilbyde anden støtte i mellemperioden. Erstatning af dem med tilgængelige alternativer, hvis sådanne findes, anbefales.

Der kan være mange årsager til at pakker er blevet fjernet fra distributionen: De bliver ikke længere vedligeholdt opstrøms, der er ikke længere en Debianudvikler interesseret i at vedligeholde pakkerne; funktionaliteten de tilbyder er blevet efterfulgt af andre programmer (eller en ny version); eller de anses ikke længere for at være egnet for wheezy på grund af fejl i dem. I det sidste tilfælde, kan pakker stadig være til stede i distributionen unstable.

Detektering af hvilke pakker på et opdateret system som er obsolete (forældet) er meget nemt da pakkehåndteringernes brugerflader vil markere dem som sådan. Hvis du bruger aptitude, så vil du se en liste over disse pakker under punktet Forældede og lokalt oprettede pakker.

Debians fejlsporingssystem tilbyder ofte yderligere information om hvorfor pakkerne blev fjernet. Du bør gennemse både de arkiverede fejlrapporter for selve pakken og de arkiverede fejlrapporter for ftp.debian.org pseudo-package.

Listen over forældede pakker inkluderer:

  • mysql-5.1, efterfølger er mysql-5.5.

  • postgresql-8.4, efterfølger er postgresql-9.1. Wheezy tilbyder kun en opdateret postgresql-plperl-8.4-pakke som er lænket mod den nye version af libperl for at muliggøre opgradering til den nye Perlversion i wheezy uden at gøre eksisterende postgresql-8.4-installationer ubrugelige. Når først operativsystemetes opgradering er færdig, så bør du planlægge at opgradere din PostgreSQL 8.4-databases klynger til den nye PostgreSQL version 9.1 med brug af værktøjet pg_upgradecluster.

  • python2.5, efterfølger er python2.7.

  • portmap, efterfølger er rpcbind.

  • sun-java6, efterfølger er openjdk-7.

  • gdm, efterfølger er gdm3. Brugere af enkle skrivebordsmiljøet såsom Xfce eller LXDE kan overveje lightdm som et mere enkelt alternativt.

  • mpich, efterfølger er openmpi og mpich2.

  • OpenGL-vinduet compiz og opsætningshåndteringen, se fejlrapporter #677864 (og #698815).

  • Nogle af Xorg's videodrivere er ikke længere tilgængelige i wheezy og er nu forældede. Dette inkluderer xserver-xorg-video-nv og xserver-xorg-video-radeonhd. De kan fjernes via opgraderingen. Brugere bør installere xserver-xorg-video-all i stedet for.

  • Alle Horde 3-pakker, der tilbyder samarbejdende programmer, er blevet fjernet og er forældede. Dette inkluderer ansel1, chora2, dimp1, gollem, horde-sam, horde3, imp4, ingo1, kronolith2, mnemo2, nag2, sork-forwards-h3, sork-passwd-h3, sork-vacation-h3 og turba2. Da Horde 4-pakkerne endnu ikke har opnået en tilstrækkelig kvalitet før at wheezy udgives, er de heller ikke tilgængelige. De vil måske være tilgængelige i testing som pakkerne php-horde-* packages.

  • De fleste Kolabpakker, der tilbyder groupwareserver, er blevet fjernet. Dette inkluderer kolab-cyrus-imapd, kolab-webadmin, kolabd, libkolab-perl, php-kolab-filter og php-kolab-freebusy. Fra og med 2012 er Kolab i gang med en omfattende omskrivning og vil måske blive tilbudt i en senere Debianudgivelse som pakken kolab. NB: SOGo-serveren (tidligere navngivet Scalable OpenGroupware.org) leveres med wheezy som sogo.

  • Alle OpenERP 5-pakker er blevet fjernet og er forældede. Dette inkluderer openerp-client, openerp-server, openerp-web.

  • pootle 2.0.5-pakke er blevet fjernet.

  • Pakkerne uw-imapd og ipopd er blevet fjernet. Der findes bedre alternativer, for eksempel dovecot-imapd og courier-imap for IMAP, eller dovecot-pop3d og courier-pop for POP3.

  • Pakken drupal6 er ikke længere tilgængelig; den er erstattet af drupal7. Der findes dog ingen automatisk opgraderingssti, og brugere bør læse instruktionerne på Debians wiki.

4.8.1. Overgangspakker

Nogle pakker fra squeeze er blevet delt op i flere pakker i wheezy, ofte for at forbedre vedligeholdelsen. For at gøre opgraderingsstien nemmere i sådanne tilfælde, tilbyder wheezy ofte overgangspakker: Tomme pakker som har det samme navn som den gamle pakke i squeeze med afhængigheder som medfører, at de nye pakker bliver installeret. Disse overgangspakker anses for at ævre redundante efter opgraderingen og kan fjernes igen.

De fleste (men ikke alle) tomme pakkers beskrivelser indikerer deres formål. Pakkebeskrivelser for tomme pakker er dog ikke ensartet, så du kan også finde deborphan med tilvalgene --guess-* (f.eks. --guess-dummy) nyttige til at detektere dem i dit system. Bemærk at nogle tomme pakker ikke skal fjernes efter en opgradering, men i stedet bruges til at holde styr på den aktuelle tilgængelig version af et program over tid.



[1] Hvis debconf-prioriteten er sat til et meget højt niveau kan du måske forhindre konfigurationsprompter, men tjenester som afhænger af standardsvar som ikke er gældende for dit system vil ikke starte.

[2] Eksempelvis: DNS- eller DHCP-tjenester, specielt hvis der ikke er nogen redundans eller reserve. I tilfældet med DHCP kan slutbrugere blive frakoblet fra netværket, hvis låneperioden er kortere end tiden, det tager for opgraderingsprocessen at blive færdig.

[3] Denne funktion kan deaktiveres ved at tilføje parameteren panic=0 til dine opstartsparametre.

[4] Debians pakkehåndteringssystem tillader normalt ikke at en pakke fjerner en fil ejet af en anden pakke medmindre, at den er blevet defineret til at erstatte denne pakke.

[5] Eller i den periode hvor der endnu ikke er en ny udgivelse. Typisk er kun to stabile udgivelser understøttet på samme tidspunkt.