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
aptitude
s 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:
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)"
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.