Product SiteDocumentation Site

6.7. Oppgradering fra en stabil distribusjon til den neste

En av de mest kjente funksjonene i Debian er evnen til å oppgradere et installert system fra en stabil utgave til den neste: dist-upgrade - en velkjent frase - har i stor grad bidratt til prosjektets omdømme. Med noen forholdsregler, kan det å oppgradere en datamaskin ta så lite som et par minutter, eller noen få dusin minutter, avhengig av nedlastingshastigheten til pakkebrønnene.

6.7.1. Anbefalt prosedyre

Siden Debian har litt tid for å utvikle seg i perioden mellom stabile versjoner, bør du lese produktmerknadene før du oppgraderer.
I denne seksjonen vil vi fokusere på å oppgradere et Buster-system til Bullseye. Dette er en stor operasjon på et system; og som sådan, er det aldri 100 prosent risikofritt, og bør ikke forsøkes før alle viktige data er sikkerhetskopiert .
En annen god vane som gjør oppgradering enklere (og raskere), er å rydde i dine installerte pakker, og kun beholde dem som virkelig er nødvendige. Nyttige verktøy for å gjøre dette inkluderer aptitude, deborphan og debfoster, og apt-show-versions (sjekk Seksjon 6.2.7, «Å finne installerte pakker automatisk»). For eksempel kan du bruke følgende kommando, og så bruke aptitudes interaktivmodus for å dobbeltsjekke og fininnstille de planlagte fjerningene:
# deborphan | xargs aptitude --schedule-only remove
Nå for oppgraderingen selv. Først må du endre /etc/apt/sources.list-filen for å fortelle APT om å få sine pakker fra Bullseye i stedet for fra Buster. Hvis filen bare inneholder referanser til Stable snarere enn til eksplisitte kodenavn, er endringen ikke engang nødvendig, siden Stable alltid refererer til den nyeste versjonen av Debian. I begge tilfeller må databasen med tilgjengelige pakker friskes opp med apt update-kommandoen, eller med oppdateringsknappen (refresh button) i synaptic) (Seksjon 6.2.1, «Initialisering»).
Straks disse nye pakkekildene er registrert, bør du først gjøre en liten oppgradering med apt upgrade og så videre, som beskrevet i Seksjon 6.2.3, «Oppgradering av systemet». Ved å gjøre oppgraderingen i to trinn blir jobben for pakkebestyrerne lettere, og gjør ofte at vi har nyeste versjonene av disse, som kanskje inneholder oppsamlede feilrettinger og forbedringer som kreves for å fullføre hele distribusjonsoppgraderingen.
Straks disse nye pakkekildene er registrert, bør du først gjøre en liten oppgradering med apt full-upgrade, aptitude, eller synaptic (Seksjon 6.7, «Oppgradering fra en stabil distribusjon til den neste»). Du bør nøye kontrollere de foreslåtte tiltakene før du bruker dem: Du kan ønske å legge til foreslåtte pakker, eller velge bort pakker som kun er anbefalt og kjente for ikke å være nyttige. I alle fall skal brukergrensesnittet komme opp med et scenario som ender i et sammenhengende og up-to-date Bullseye-system. Deretter er alt du trenger å gjøre er å vente mens de nødvendige pakkene er lastet ned, svare på debconf-spørsmål, og muligens om lokale endringer i oppsettsfiler, og lene deg tilbake mens APT utfører magi.

6.7.2. Å håndtere problemer etter en oppgradering

Til tross for Debian vedlikeholderes beste innsats, går en større oppgradering ikke alltid så glatt som du kan ønske deg. Nye programvareversjoner kan være uforenlig med de foregående (for eksempel kan standardopptredene eller dataformatet deres ha endret seg). Dessuten kan noen bug slippe gjennom nåløyet til tross for testfasen som alltid går foran en Debian-utgivelse.
For å foregripe noen av disse problemene kan du installere apt-listchanges-pakken, som viser informasjon om mulige problemer ved begynnelsen av en pakkeoppgradering. Denne informasjonen er utarbeidet av pakkens vedlikeholder, og satt i /usr/share/doc/pakke/NEWS.Debian-filer for å gjøre det enklere for brukerne. Å lese disse filene (eventuelt i apt-listchanges) bør hjelpe deg å unngå uønskede overraskelser.
Noen ganger kan du finne at den nye versjonen av et program ikke fungerer i det hele tatt. Dette skjer vanligvis hvis programmet ikke er spesielt populært og ikke har blitt testet nok; en oppdatering i siste liten kan også introdusere regresjoner som bare oppdages etter ny stabil utgivelse. I begge tilfeller er det første du må gjøre å ta en titt på feilsporingssystemet på https://bugs.debian.org/package, og sjekke om problemet allerede er rapportert. Hvis dette er tilfelle, vil det også bli vist frem før oppgraderingen begynner hvis du har apt-listbugs installert. Hvis den ikke har gjort det, bør du rapportere det selv med reportbug. Hvis det allerede er kjent, er feilrapporten og de tilknyttede meldingene vanligvis en utmerket kilde til informasjon om feilen:
  • noen ganger finnes en patch (oppdatering) allerede, og den er tilgjengelig på feilrapporten; du kan deretter lokalt rekompilere en forbedret versjon av den ødelagte pakken (se Seksjon 15.1, «Ombygging av pakke fra kildekoden»);
  • i andre tilfeller kan brukere ha funnet en løsning på problemet, og delt sin innsikt om det i sine svar til rapporteringen;
  • I atter andre tilfeller, kan en fast pakke ha blitt utarbeidet og offentliggjort av vedlikeholderen.
Avhengig av hvor alvorlig feilen er, kan en ny versjon av pakken bli forberedt spesielt til en ny revisjon av «stable»-utgivelsen. Når dette skjer, blir den forbedrede pakken gjort tilgjengelig i proposed-updates-seksjonen i Debian-speilene (se Seksjon 6.1.2.3, «Foreslåtte oppdateringer»). Den tilsvarende oppføring kan da midlertidig legges til sources.list-filen, og oppdaterte pakker kan installeres med apt eller aptitude.
Noen ganger er den forbedrede pakken ikke tilgjengelig i denne delen ennå, i påvente av en validering av Stable-utgivelsesadministratorne. Du kan kontrollere om det er tilfelle på deres nettside. Pakker oppført der er ikke tilgjengelige ennå, men da vet du i det minste at publiseringsprosessen pågår.

6.7.3. Opprydding etter en oppgradering

APT sikrer vanligvis en ren oppgradering, trekker inn nye og oppdaterte avhengigheter eller fjerner motstridende pakker. Men selv å være et så flott verktøy, kan det ikke dekke alle oppgaver brukere og administratorer vil møte etter en oppgradering, fordi de krever en menneskelig beslutning.

6.7.3.1. Pakker fjernet fra Debian-arkivet

Noen ganger fjerner Debian ftpmasters-pakker fra Debian-arkivet, fordi de inneholder utgivelseskritiske feil, ble forlatt av deres oppstrøms forfatter eller deres pakkevedlikeholder, eller bare nådde slutten av levetiden. I dette tilfellet sender en nyere Debian-utgivelse ikke pakken lenger. Hvis du vil finne alle pakker, som ikke har en pakkekilde, bruker du kommandoen apt-show-versions:
$ apt-show-versions | grep "No available version"
Et lignende resultat kan oppnås ved aptitude search ~o. Hvis pakkene som blir funnet ikke er nødvendige lenger, bør de renskes vekk fra systemet, fordi de ikke lenger vil motta oppdateringer for kritiske eller sikkerhetsrelaterte feil.

6.7.3.2. Dummy og overgangspakker

Noen ganger kan det være nødvendig for en pakke å få et nytt navn. I dette tilfellet holdes ofte den gamle pakken som en (nesten) tom pakke, avhengig av den nye og installerer bare de obligatoriske filene i /usr/share/doc/package/. Slike pakker kalles "dummy" eller "overgangs"-pakker. Hvis pakkens vedlikeholder også endret delen av denne pakken til oldlibs, deretter kan verktøy som aptitude, deboprhan, eller debfoster (se sidestolpe ALTERNATIV deborphan og debfoster) hente disse pakkene for å foreslå fjerning.
Dessverre er det for tiden ingen idiotsikker måte å sørge for at disse pakkene automatisk fjernes eller plukkes av verktøyene nevnt ovenfor. En måte å sjekke om systemet fortsatt har noen av disse pakkene installert, er å se gjennom pakkebeskrivelsene til installerte pakker og deretter sjekke resultatene. Vær forsiktig så du ikke planlegger resultatene for automatisk fjerning, fordi denne metoden kan føre til falske positiver:
$ dpkg -l | grep ^ii | grep -i -E "(transition|dummy)"
Fordi den nye pakken trekkes inn som en avhengighet av overgangspakken, er den vanligvis merket som automatisk installert og kan føres opp for fjerning hvis du prøver å renske overgangspakken fra systemet. I dette tilfellet kan du bruke en av tilnærmingene som er beskrevet i sidepanelet TIPS Fjerne og installere samtidig og Seksjon 6.2.7, «Å finne installerte pakker automatisk» til å kun fjerne overgangspakken.

6.7.3.3. Gamle eller ubrukte oppsettfiler

Hvis oppgraderingen var vellykket, kan det være noen oppsettsrester, enten fra dpkg (se Seksjon 5.2.3, «Sjekksummer, Liste med oppsettfiler, med mere.»), ucf eller fra pakker som er fjernet. Sistnevnte kan bli rensket vekk ved hjelp av apt autoremove --purge. Oppsettsfilene, som ble håndtert av dpkg eller ucf under oppgraderingsprosessen, har etterlatt noen motparter med et dedikert suffiks, for eksempel .dpkg-dist, .dpkg-old og .ucf-old. Du kan spore opp disse ved hjelp av kommandoene find eller locate. De kan slettes hvis de ikke lenger er til nytte.

6.7.3.4. Filer som ikke hører hjemme i noen pakke

Debian-retningslinjene krever at pakker ikke etterlater filer når de blir rensket vekk. Brudd på dette prinsippet er en alvorlig feil, og du vil sjelden støte på det. Hvis du treffer en slik feil, rapporter den; og hvis du er nysgjerrig så kan du bruke pakkene cruft eller cruft-ng for å sjekke systemet for filer som ikke hører hjemme i noen pakke.