Innehållsförteckning
Du bör läsa informationen i Kapitel 5, Problemområden att känna till för bullseye innan du uppgraderar. Det kapitlet täcker in möjliga problem som inte direkt relaterar till uppgraderingsprocessen men som fortfarande kan vara viktiga att känna till innan du påbörjar arbetet.
Innan uppgradering av ditt system rekommenderas det starkt att du gör en fullständig säkerhetskopia, eller åtminstone en säkerhetskopia av data eller konfigurationsinformation som du inte vill riskera att förlora. Uppgraderingsverktygen och -processen är tillförlitlig men ett hårdvarufel mitt i en uppgradering kan resultera i ett allvarligt skadat system.
De huvudsakliga delar du vill säkerhetskopiera är innehållet i
/etc
, /var/lib/dpkg
,
/var/lib/apt/extended_states
och utdata från
dpkg --get-selections "*"
(citationstecknen är
viktiga). Om du använder aptitude för att hantera paket
på ditt system vill du också göra en säkerhetskopia på
/var/lib/aptitude/pkgstates
.
Själva uppgraderingsprocessen ändrar ingenting i katalogen
/home
. Dock är det känt att vissa program (exempelvis
delar av Mozilla-sviten och skrivbordsmiljöerna GNOME och KDE) skriver över
befintliga användarinställningar med nya standardvärden när en ny version av
programmet startas för första gången av en användare. Som en
försiktighetsåtgård bör du göra en säkerhetskopia av de dolda filerna och
katalogerna (så kallade ”punktfiler”) i användarnas
hemkataloger. Denna säkerhetskopia kan hjälpa till att återställa eller
återskapa de gamla inställningarna. Du kanske även vill informera dina
användare om det här.
Alla paketinstallationsåtgärder måste köras med superanvändarens rättigheter, så logga in som root eller använd su eller sudo för att få de nödvändiga åtkomsträttigheterna.
Uppgraderingen innebär att vissa förutsättningar måste mötas; du bör kontrollera dem innan den faktiska uppgraderingen påbörjas.
Det är klokt att informera alla användare i förväg angående de uppgraderingar som du planerar att göra, även om användarna som kommer åt ditt system via en ssh-anslutning knappt kommer att märka det under uppgraderingen, och bör kunna fortsätta att arbeta som vanligt.
Om du vill vidta extra försiktighetsåtgärder bör du säkerhetskopiera eller
avmontera /home
före uppgradering.
Du kommer behöva göra en kärnuppgradering vid uppgradering till bullseye, en omstart kommer alltså att vara nödvändig. Vanligen sker detta efter uppgraderingen är klar.
Under uppgraderingsprocessen kan det finnas tjänster knutna till paket som ingår i uppgraderingen. Om detta är fallet kommer dessa tjänster stoppas under tiden som paketen byts ut och får nya inställningar. Under tiden kommer dessa tjänster inte vara tillgängliga.
Exakt hur lång tid tjänsterna är bortkopplade varierar med antalet paket som uppgraderas i systemet. Dessutom ingår tiden som det tar för systemadministratören att besvara frågor om inställningar från olika paket som uppgraderas. Kom ihåg att om uppgraderingsprocessen lämnas oövervakad och systemet frågar efter information är det mycket troligt att tjänsterna är otillgängliga[1] under mycket lång tid.
Om systemet som uppgraderas tillhandahåller viktiga tjänster för användarna på nätverket[2] kan du minska nedtiden genom att göra en minimal systemuppgradering vilket beskrivs i Avsnitt 4.4.4, ”Minimal systemuppgradering”. Gör sedan en kärnuppgradering och en omstart, uppdatera sedan paketen som rör de kritiska tjänsterna. Uppgradera dessa paket innan en full uppgradering utförs enligt Avsnitt 4.4.5, ”Uppgradering av systemet”. På detta sätt kan du säkerställa att dessa viktiga tjänster körs och är tillgängliga genom hela den kompletta uppgraderingsprocessen och att nedtiden reduceras.
Även om Debian försöker säkerställa att ditt system kan starta vid varje givet tillfälle finns det alltid en möjlighet att du kan uppleva problem med att start om ditt system efter en uppgradering. Kända potentiella problem är dokumenterade i detta och följande kapitel av Kommentarer till utgåvan.
Av den anledningen är det klokt att försäkra sig om att du kan återställa ifall ditt system skulle misslyckas att starta om eller, för fjärrhanterade system, misslyckas att komma åt nätverket.
Om du fjärruppgraderar via en ssh-länk är det starkt rekommenderat att du vidtar nödvändiga åtgärder för att kunna komma åt servern genom en fjärrserieterminal. Det finns en chans att, efter uppgradering av kärnan och omstart, du kommer att behöva rätta till systemkonfigurationen genom en lokal konsoll. Om systemet av misstag startas om mitt i en uppgradering finns det en chans att du behöver återställa systemet med hjälp av en lokal konsoll.
För räddnigsinsatser rekommenderar vi att räddningsläget i Debian-installeraren för bullseye används. Fördelen med att använda installeraren är att du kan välja bland dess många installationsmetoder för att hitta en som bäst passar din situation. För mer information, läs avsnittet ”Återställning av ett trasigt system” i kapitel 8 av Installationsguiden och Debian Installer FAQ (båda på engelska).
Om det misslyckas behöver du ett alternativt sätt att starta upp ditt system på så att du kan komma åt och reparera det. En särskild räddningsavbildning eller en avbildning med ett körbart Linuxsystem på. Efter att du har startat upp från en sådan skiva bör du kunna montera ditt rotfilsystem och använda chroot in i det för att undersöka och rätta till problemet.
Paketet initramfs-tools
lägger till
ett felsökningsskal[3] i de initrd som det
skapar. Om initrd exempelvis inte kan montera ditt rot-filsystem kommer du
att hamna i detta felsökningsskal som har vissa grundläggande kommandon
tillgängliga för att spåra och möjligen laga felet.
Grundläggande saker att kontrollera är: närvaron av korrekta enhetsfiler i
/dev
; vilka moduler som läses in (cat
/proc/modules
); utdata för dmesg efter fel vid
inläsning av drivrutiner. Utdata för dmesg kommer även
att visa vilka enhetsfiler som har tilldelats till vilka diskar; du bör
kontrollera det här mot utdata för echo $ROOT
för att
försäkra dig om att rotfilsystemet finns på den förväntade enheten.
Om du lyckas rätta till problemet, skriv exit
för att
avsluta felsökningsskalet och fortsätta uppstartsprocessen där felet
inträffade. Självfallet behöver du även rätta till det underliggande
problemet och generera om initrd-filen så att nästa uppstart inte
misslyckas.
Om uppstarten misslyckas under system är det möjligt att starta ett
felsökningsskal genom att ändra kärnans kommandorad. Om grundläggande
uppstart fungerar men några tjänster misslyckas med att starta kan det vara
bra att utöka kärnans parametrar med
systemd.unit=rescue.target
.
Kärnans parameter systemd.unit=emergency.target
tillhandahåller ett rotskal så tidigt som möjligt. Detta görs dock före
rotfilsystemet har monterats med rättigheter för läsning och skrivning. Du
behöver lösa det manuellt genom:
# mount -o remount,rw /
Mer information om att felsöka en felaktig uppstartsprocess med systemd finns i artikeln Diagnosing Boot Problems (engelska).
Viktigt | |
---|---|
Om du använder någon form av VPN-tjänst (exempelvis |
För att öka säkerhetsmarginalen vid en fjärruppgradering föreslår vi att du kör uppgraderingsprocesser i den virtuella konsollen som tillhandahålls av programmet screen, vilket innebär att det går att återansluta till sessionen och försäkra sig om att uppgraderingsprocessen inte avbryts även om fjärranslutningen avbryts.
Uppgraderingsprocessen som beskrivs i detta kapitel är helt och hållet inriktad på ”rena” Debian-system som kör stabil-utgåva. APT kontrollerar vad som finns installerat på ditt system. Om dina APT-inställningar har andra källor än buster, om du har installerat paket från andra utgåvor eller från tredjepart så bör du överväga att ta bort dessa för att säkerställa att uppgraderingen inte kompliceras av detta.
APT använder i huvudsak inställningarna i
/etc/apt/sources.list
för att avgöra varifrån paket ska
hämtas men det kan också finnas filer i katalogen
/etc/apt/sources.list.d/
- läs mer om detta i sources.list(5)
(engelska). Om ditt system använder flera käll-filer behöver du säkerställa
att de förblir konsekventa.
Direkta uppgraderingar från Debian-utgåvor äldre än 10 (buster) stöds inte. Visa din aktuella Debianversion med:
$ cat /etc/debian_version
Följ instruktionerna i Kommentarer till utgåvan Debian 10 för att uppgradera till Debian 10 först.
Nedan kan du läsa om två metoder för att hitta installerade paket som inte kommer från Debian. Antingen genom aptitude eller apt-forktracer. Observera dock att ingen av dem är 100% korrekta (exempelvis visar aptitude paket som tidigare varit tillhandahållna av Debian men inte längre är det - t.ex. äldre kärnpaket).
$ aptitude search '?narrow(?installed, ?not(?origin(Debian)))' $ apt-forktracer | sort
Processen förutsätter att ditt system har uppdaterats till den senaste punkutgåven av 10. Om du inte har gjort detta eller är osäker, följ instruktionerna i Avsnitt A.1, ”Uppgradering av ditt buster-system”.
Du måste säkerställa att paketdatabasen är redo innan uppgraderingen
fortsätter. Om du använder en annan pakethanterare som aptitude
eller synaptic
så måste du kontrollera påbörjade
åtgärder. Ett paket som ska installeras eller tas bort kan orsaka
besvär med uppgraderingsproceduren. Att justera detta kräver att dina
APT-källor fortfarande pekar ut buster
istället för stable eller
bullseye. Läs mer i avsnittet Avsnitt A.2, ”Kontrollera dina APT sources.list-filer”
Det är en bra idé att ta bort föråldrade paket från ditt system före uppgradering. De kan bidra till besvär under uppgraderingsproceduren och kan innebära en säkerhetsrisk eftersom de inte längre tas om hand.
En tidigare uppgrdering kan ha lämnat kvar oanvända inställningsfiler; äldre versioner av inställningsfiler, versioner som ditribuerats av de som har hand om resprektive paket eller liknande. Det är en bra idé att rensa upp sådant för att minska risken för förvirring. Hitta sådana kvarlämnade inställningsfiler med:
# find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error'
För APT-källor som hänvisar till säkerhetsarkivet gäller att formatet
har ändrats något, utöver att utgåvans namn har ändrats, från
buster/updates
till
bullseye-security
; läs mer i <ref></ref>.
Om du har proposed-updates
i dina APT-källfiler ska du ta
bort det innan du försöker uppdatera ditt system. Detta är en
försiktighetsåtgärd för att minska risken för att konflikter uppstår.
Om du har några icke-Debianpaket på ditt system, bör du tänka på att dessa kan tas bort under uppgraderingen på grund av beroendekonflikter. Om dessa paket blev installerade genom att lägga till extra paketarkiv i dina APT-källfiler bör du kontrollera om det arkivet även erbjuder paket som är byggda för bullseye och ändra källan på lämpligt sätt samtidigt som källorna för Debian-paket.
Vissa användare kan ha inofficiella bakåtporterade ”nyare” versioner av paket än de som finns i Debian installerade på sina buster-system. Sådana paket kommer med stor sannolikhet att orsaka problem under en uppgradering eftersom de kan resultera i filkonflikter[4]. Avsnitt 4.5, ”Möjliga problem under uppgraderingen” har en del information om att hantera filkonflikter om de uppstår.
Om du har konfigurerat APT att installera vissa paket från en annan
distribution än den stabila (exempelvis från testing), kan du ändra
din konfiguration för paketnålning i APT (lagrad i
/etc/apt/preferences
och
/etc/apt/preferences.d/
) för att tillåta
uppgraderingen av paket till versionerna i den nya stabila
utgåvan. Ytterligare information om APT-nålning kan hittas i apt_preferences(5) (på engelska).
Oavsett vilken metod som används för uppgradering, rekommenderas det att du kontrollerar statusen på paketen först och verifierar att alla paket är möjliga att uppgradera. Följande kommando kommer att visa de paket som har statusen Half-Installed eller Failed-Config, och de som har någon form av felstatus.
# dpkg --audit
Du kan även inspektera tillståndet för alla paket på ditt system med aptitude, eller med kommandon som
# dpkg -l | pager
eller
# dpkg --get-selections "*" > ~/curr-pkgs.txt
Det är önskvärt att ta bort eventuella tillbakahållna paket innan uppgradering. Om något paket är systemkritiskt och hålls tillbaka för uppgraderingen, kommer uppgraderingen att misslyckas.
Observera att aptitude använder en annan metod för att registrera paket som hålls tillbaka än vad apt och dselect gör. Du kan identifiera paket som hålls tillbaka med aptitude genom
# aptitude search "~ahold"
Om du vill kontrollera vilka paket som hålls tillbaka vid användning av apt, ska du använda
# dpkg --get-selections | grep 'hold$'
Om du ändrat och byggt om ett paket lokalt, och inte bytte namn på det eller la in ett datum i versionen, måste du hålla tillbaka det för att förhindra att det uppgraderas.
Pakettillståndet ”hold”(håll) för apt kan ändras med:
# echo paketnamn
hold | dpkg --set-selections
Ersätt hold
med unhold
för att ändra
”hold”-tillståndet.
Om det är någonting du behöver rätta till är det bäst att se till att din APT-källfiler fortfarande refererar till buster vilket förklaras i Avsnitt A.2, ”Kontrollera dina APT sources.list-filer”.
Före uppgraderingen påbörjas behöver du justera APTs källor
(/etc/apt/sources.list
och filer i
/etc/apt/sources.list.d/
) för att lägga till
källor för bullseye
och för att ta bort källor
för buster
..
Apt kommer att överväga alla paket som kan hittas via någon av de installerade arkiven. Valet faller sedan på att installera paketet med högsta versionsnumret, där prioritet ges till de rader som kommer först. Om du nyttjar flera redundanta arkiv, bör du först namnge en lokal hårddisk, sedan cd-skivor, och sedan fjärr-speglar.
En utgåva kan ofta refereras till både dess kodnamn
(t.ex. buster
,
bullseye
) och efter dess statusnamn (alltså
oldstable
, stable
,
testing
, unstable
). Att referera till
en utgåva efter dess kodnamn har fördelen att du aldrig blir överraskad av
en ny utgåva och av den anledningen används den här metoden här. Det kan
naturligtvis betyda att du själv måste hålla utkik efter nya utgåvor. Om du
istället använder statusnamnet kommer systemet automatiskt att uppgraderas
utan förvarning genom att uppdatera en mängd paket så snart en utgivning har
skett.
Debian tillhandahåller två sändlistor med kungörelser (på engelska) som kan hjälpa dig att hålla dig uppdaterad med vad som sker med Debians utgåvor:
Genom att anmäla dig till
Debians kungörelse sändlista så kommer du få en notifiering
varje gång Debian tillgänglig gör en ny utgåva. Exempelvis när
bullseye
skiftar från
testning
till stabil
>.
Genom att anmäla dig till Debians säkerhetskungörelse sändlista så kommer du få en notifiering varje gång Debian publicerar ett säkerhetsmeddelande.
Vid nyinstallation installeras APT så att det använder Debian APT CDN, detta bör innebära att paket automatiskt hämtas från en server i relativ närhet av dig - sett till nätverksvägar. I och med att detta är en relativt ny tjänst kan äldre installationer ha inställningar som fortfarande pekar på en av de huvudsakliga internetservrarna från Debian eller på en av speglarna. Rekommendationen är att byta till att använda CDN-tjänsten i dina APT-inställningar.
För att använda CDN-tjänsten ska en rad likt följande läggas till dina
inställningar för APT-källor (antar här att main
och
contrib
används):
deb http://deb.debian.org/debian bullseye main contrib
Efter att du har lagt till dina nya källor ska du inaktivera de tidigare
befintliga ”deb
”-raderna genom att placera
ett hash-tecken (#
) framför dem.
Om din upplevelse blir bättre genom att använda en särskild spegel belägen närmare dig vad gäller nätverksavstånd så finns detta alternativ alltjämt kvar.
Adresserna till Debians speglar kan hittas på https://www.debian.org/distrib/ftplist (se avsnittet ”Lista över Debianspeglingar”).
Anta till exempel att din närmaste Debian-spegel är
http://mirrors.kernel.org
. När den spegeln inspekteras med
en webbläsare, kommer du att märka att huvudkatalogerna är organiserade så
här:
http://mirrors.kernel.org/debian/dists/bullseye/main/binary-mipsel/... http://mirrors.kernel.org/debian/dists/bullseye/contrib/binary-mipsel/...
För att ställa in APT att använda en särskild spegel ska en rad likt
följande läggas till (återigen antas att du använder main
och contrib
):
deb http://mirrors.kernel.org/debian bullseye main contrib
Observera att ”dists
” läggs till automatiskt
och att argumenten efter utgåvans namn används för att utöka sökvägen till
flera kataloger.
Återigen; efter att du lagt till källor behöver de tidigare arkiven avaktiveras.
Istället för att använda paketspeglar, kanske du önskar ändra
/etc/apt/sources.list
till att använda en spegel på en
lokal hårddisk (möjligen monterad över NFS).
Din paketspegel kan exempelvis finnas under
/var/local/debian/
och innehålla huvudkataloger som
dessa:
/var/local/debian/dists/bullseye/main/binary-mipsel/... /var/local/debian/dists/bullseye/contrib/binary-mipsel/...
Lägg till den här raden till din sources.list
för att
använda den här med apt
:
deb file:/var/local/debian bullseye main contrib
Observera att ”dists
” läggs till automatiskt
och att argumenten efter utgåvans namn används för att utöka sökvägen till
flera kataloger.
Efter att du har lagt till dina nya källor ska du inaktivera de tidigare
befintliga arkiv i APT-källfilerna genom att placera ett hash-tecken
(#
) framför dem.
Om du endast vill använda DVD-skivor (eller CD- eller
Blu-ray-skivor) ska du inaktivera de övriga raderna i APT-källfilerna genom
att placera ett hash-tecken (#
) framför dem.
Se till att det finns en rad i /etc/fstab
som aktiverar
montering av din cd-rom-enhet på monteringspunkten
/media/cdrom
. Till exempel, om
/dev/sr0
är din cd-rom-enhet, ska
/etc/fstab
innehålla en rad som denna:
/dev/sr0 /media/cdrom auto noauto,ro 0 0
Observera att det inte får finnas några blanksteg
mellan orden noauto,ro
i det fjärde fältet.
För att verifiera att det fungerar, mata in en cd och försök köra
# mount /media/cdrom # det här monterar CD:n på monteringspunkten # ls -alF /media/cdrom # det här ska visa rotkatalog för CD:n # umount /media/cdrom # detta kommer att avmonterna CD:n
Kör sedan:
# apt-cdrom add
för varje Debian cd-rom med binärer som du har tillgång till för att lägga till data om varje cd till APT:s databas.
Det rekommenderade verktyget för att genomföra uppgraderingen från föregående utgåva av Debian är att använda pakethanteringsverktyget apt.
Notera | |
---|---|
apt är tänkt för interaktivanvändning och ska inte användas i skript. I skript bör apt-get som har fast hantering av utdata som passar sig för maskinell avläsning. |
Glöm inte att montera alla nödvändiga partitioner (speciellt rot- och
/usr
-partitionerna) läs- och skrivbara, med ett
kommando som det här:
# mount -o remount,rw /monteringsplats
Härefter ska du kontrollera att källraderna för APT (i
/etc/apt/sources.list
och filerna i
/etc/apt/sources.list.d/
) refererar antingen till
”bullseye
” eller till
”stable
”. Det ska inte finnas några
källrader som pekar till buster.
Notera | |
---|---|
Källrader för en cd-skiva kommer ofta att referera till
” |
Det rekommenderas starkt att du använder programmet /usr/bin/script för att spela in en utskrift av uppgraderingssessionen. Om problem uppstår har du en logg på vad som hände och, om det behövs, kan tillhandahålla exakt information i en felrapport. För att påbörja inspelningen, kör:
# script -t 2>~/upgrade-bullseyestep
.time -a ~/upgrade-bullseyestep
.script
eller liknande. Om du behöver köra typescript-filen igen (exempelvis om du
behövde starta om systemet) ska du använda olika
step
-värden för att peka ut vilket steg av
uppgraderingen du loggar. Lägg inte typescript-filen i en temporär katalog
såsom/tmp
eller /var/tmp
(filer i
dessa kataloger kan tas bort under uppgraderingen eller under en omstart).
Typescript kommer även att låta dig granska informationen som har rullat ut
från skärmen. Om du använder systemets konsoll kan du helt enkelt växla till
VT2 (med Alt+F2) och,
efter inloggning, använd less -R
~root/upgrade-bullseye.script
för att visa filen.
Efter att du har färdigställt uppgraderingen, kan du stoppa
script genom att ange exit
vid
prompten.
apt kommer också att logga förändrad status för paket i
/var/log/apt/history.log
och utdatat i terminalen i
/var/log/apt/term.log
. dpkg kommer
dessutom att logga statusförändringar för alla paket i
/var/log/dpkg.log
. Om du använder
aptitude så kommer status även att loggas i
/var/log/aptitude
.
Om du har använt flaggan -t för script kan du använda programmet scriptreplay för att spela upp hela sessionen:
# scriptreplay ~/upgrade-bullseyestep
.time ~/upgrade-bullseyestep
.script
Först behöver listan över tillgängliga paket för den nya utgåvan hämtas. Det görs genom att köra:
# apt update
Notera | |
---|---|
Användare av apt-secure kan drabbas av besvär när aptitude eller apt-get används. För apt-get kan kommandot apt-get update --allow-releaseinfo-change användas. |
Du måste kontrollera att ditt system har tillräckligt mycket ledigt
hårddiskutrymme innan du påbörjar en fullständig systemuppgradering, som
beskrivs i Avsnitt 4.4.5, ”Uppgradering av systemet”. Alla paket som behöver hämtas
för installation kommer att hämtas från nätverket och lagras i
/var/cache/apt/archives
(och underkatalogen
partial/
under hämtningen) så du måste se till att du
har tillräckligt utrymme på filsystemspartitionen som innehåller
/var/
för temporär hämtning av paketen som ska
installeras på ditt system. Efter hämtningen kommer du antagligen behöva mer
utrymme på de andra filsystemspartitionerna för att både installera de
uppgraderade paketen (som kan innehålla större binärfiler eller mer data)
och de nya paketen som kommer att inkluderas i uppgraderingen. Om ditt
system inte har tillräckligt med utrymme kan det resultera i en ofullständig
uppgradering som kan vara svår att rätta till.
apt kan visa detaljerad information om det diskutrymme som behövs för installationen. Du kan se denna uppskattning innan den faktiska uppgraderingen påbörjas genom att köra:
# apt -o APT::Get::Trivial-Only=true dist-upgrade [ ... ] XXX uppgraderade, XXX nyinstallerade, XXX att ta bort och XXX inte uppgraderade. Behöver hämta xx.xMB arkiv. Efter uppackning kommer AAAMB diskplats att användas.
Notera | |
---|---|
Körning av det här kommandot i början av uppgraderingsprocessen kan ge felaktigheter, anledningarna beskrivs i nästkommande avsnitt. I det fallet behöver du vänta tills du har gjort en minimal systemuppgradering enligt Avsnitt 4.4.4, ”Minimal systemuppgradering” innan du kör det här kommandot för att uppskatta diskutrymmet. |
Om du inte har tillräckligt med utrymme för uppgraderingen så kommer apt att varna dig på följande sätt:
F: Du har inte tillräckligt mycket ledigt utrymme i /var/cache/apt/archives/.
Försök i så fall frigöra utrymme innan uppgraderingen. Du kan:
Ta bort paket som tidigare har hämtats för installation (i
/var/cache/apt/archive
). Rensa upp paketcachen genom
att köra apt clean vilket kommer att ta bort alla
tidigare hämtade paketfiler.
Ta bort bortglömda paket. Om du har använt aptitude eller apt för att manuellt installera paket i buster kommer dessa paket att vara markerade som manuellt installerade och kommer att kunna markera automatiskt installerade paket som redundanta när de inte längre behövs och därmed kan tas bort. Manuellt installerade paket undantas alltså från detta. För att ta bort automatiskt installerade paket som inte längre används kör följande kommando:
# apt autoremove
Du kan också använda deborphan, debfoster eller cruft för att hitta redundanta paket. Lita inte blint på vad dessa verktyg presenterar, speciellt inte om du använder ickestandardmässiga och aggresiva inställningar - då dessa är källor till falska resultat. Att manuellt gå igenom listorna är starkt rekomenderat innan du använder deras förslag för en upprensningaktion.
Ta bort paket som använder för mycket utrymme och inte behövs just nu (du
kan alltid installera dem efter uppgraderingen). Om du har popularity-contest
installerat kan du använda
popcon-largest-unused för att ta fram en lista med paket
som du inte använder men tar upp mycket plats. Du kan hitta vilka paket som
tar upp mycket plats genom dpigs (tillhandahålls via
debian-goodies
-paketet) eller med
wajig (kör wajig size
). De kan också
visas med aptitude i ”visuellt läge”, välj
→ , tryck l och ange
~i
, tryck S och ange
~installsize
, så visas en praktisk lista att arbeta med.
Ta bort översättningar och lokalanpassade filer för systemet om de inte
behövs. Du kan installera paketet localepurge
och ställa in det så att endast de
lokalanpassaningar som du vill ha sparas på systemet. Detta kommer att
minska mängden hårddiskutrymme som används i
/usr/share/locale
.
Flytta systemloggar från /var/log/
till ett annat
system, eller ta bort permanent.
Använd en temporär /var/cache/apt/archives
: Du kan
använda en temporär cachekatalog på ett annat filsystem
(USB-diskenhet, temporär hårddisk, filsystem som redan
används, ...).
Notera | |
---|---|
Använd inte en NFS-montering eftersom nätverksanslutningen kan avbrytas under uppgraderingen. |
Till exempel, om du har en USB-diskenhet monterad på
/media/usbkey
:
ta bort paket som tidigare hämtats för installation:
# apt clean
kopiera katalogen /var/cache/apt/archives
till
USB-diskenheten:
# cp -ax /var/cache/apt/archives /media/usbkey/
montera den temporära cachekatalogen ovanpå den nuvarande:
# mount --bind /media/usbkey/archives /var/cache/apt/archives
efter uppgraderingen återställer du originalkatalogen
/var/cache/apt/archives
:
# umount /var/cache/apt/archives
radera det som lämnats kvar i /media/usbkey/archives
.
Du kan skapa den temporära cachekatalogen på vilket filsystem som helst som finns monterat på ditt system.
Gör en minimal uppgradering av systemet (läs Avsnitt 4.4.4, ”Minimal systemuppgradering”) eller partiell uppgradering av systemet följt av en komplett uppgradering. Detta kommer att göra det möjligt att uppgradera systemet partiellt och ger dig möjlighet att tömma paket-cache före den kompletta uppgraderingen.
Observera att du för att ta bort paket på ett säkert sätt, rekommenderas växla tillbaka din APT-källfiler till buster vilket förklaras i Avsnitt A.2, ”Kontrollera dina APT sources.list-filer”.
Viktigt | |
---|---|
Om du genomför en fjärr-uppgraderingen bör du ha läst Avsnitt 5.1.22, ”Inga nya SSH-anslutningar under uppgraderingen”. |
I vissa fall kan en komplett uppgradering (som beskrivs nedan) innebära att många paket som du vill behålla raderas. Vi rekommenderar därför en två-stegs-uppgradering. Först en minimal uppgradering för att bli av med konflikter och sedan en komplett uppgradering som beskrivs i Avsnitt 4.4.5, ”Uppgradering av systemet”.
För att göra detta, kör först:
# apt upgrade --without-new-pkgs
Det här innebär att endast de paket som kan uppgraderas utan att kräva att några andra paket tas bort eller installeras uppgraderas.
Den minimala uppgraderingen kan också vara användbar när systemet har ont om utrymme och en komplett uppgradering inte kan utföras på grund av utrymmesskäl.
Om paketet apt-listchanges
är
installerat kommer det (i standardutförande) visa viktig information om
paketen som uppgraderas i en textvisare när paketen är hämtade. Tryck på
tangenten q för att lämna visaren efter genomläsning för
att fortsätta med uppgraderingen.
När du genomfört föregående steg är du redo att fortsätta med huvuddelen av uppgraderingen. Kör:
# apt full-upgrade
Det här kommer att genomföra en fullständig uppgradering av systemet, alltså installera de senaste tillgängliga versionerna av samtliga paket och lösa alla tänkbara beroendeändringar mellan paketen i olika utgåvor. Om det är nödvändigt kommer det även att installera några nya paket (vanligtvis nya versioner av bibliotek eller paket som fått nya namn) samt ta bort eventuella föråldrade paket som står i konflikt med varandra.
Vid uppgradering från en uppsättning CD/DVD/BD-avbildningar, kommer du bli uppmanad att mata in specifika avbildningar vid olika tillfällen under uppgraderingen. Du kanske måste använda samma avbildning flera gånger; detta beror på att sammankopplade paket har blivit utspridda över avbildningarna.
Nya versioner av installerade paket, som inte kan uppgraderas utan att ändra
installationsstatus för ett annat paket, kommer att lämnas kvar vid deras
nuvarande version (visas som ”återhållna”). Det kan lösas genom
att antingen använda aptitude för att välja dessa paket
för installation eller genom att köra apt install
.
paket
Följande kapitel beskriver kända problem som kan uppstå under uppgradering till bullseye.
I några fall kan steget apt full-upgrade misslyckas efter nedladdningen av paket med meddelandet:
E: Could not perform immediate configuration on 'package
'. Please see man 5 apt.conf under APT::Immediate-Configure for details.
Om detta händer bör exekvering av apt full-upgrade -o APT::Immediate-Configure=0 tillåta uppgraderingen att fortsätta.
En annan väg runt detta problem är att temporärt lägga till källorna för både buster och bullseye i APTs källfiler och köra kommandot apt update.
Uppgraderingsprocessen till bullseye kan begära att paket tas bort från systemet. Exakt vilka paket som påverkas kommer att variera beroende på vilken uppsättning av paket som är installerade. Dessa Kommentarer till utgåvan ger allmänna råd om paketradering, men om du är osäker är det rekommenderat att du undersöker de paketborttagningar som föreslås av varje metod innan du fortsätter. Läs mer om vilka paket som klassificeras som föråldrade i bullseye i Avsnitt 4.8, ”Föråldrade paket”.
Ibland är det nödvändigt att aktivera alternativet
APT::Force-LoopBreak
i APT för att temporärt ta bort ett
systemkritiskt paket på grund av en
Konflikt/Förberoende-slinga. apt kommer att varna dig om
det här och avbryta uppgraderingen. Du kan lösa det genom att ange
alternativet -o APT::Force-LoopBreak=1
på kommandoraden
för apt.
Det är möjligt att beroendestrukturen för ett system kan vara så skadat att det kräver handpåläggning. Vanligtvis innebär det att använda apt eller
# dpkg --remove paketnamn
för att plocka bort några av de störande paketen, eller
# apt -f install # dpkg --configure --pending
I extrema fall kan du behöva tvinga fram en ominstallation med ett kommando som detta
# dpkg --install /sökväg/till/paketnamn.deb
Filkonflikter bör inte inträffa om du uppgraderar från ett ”rent” buster-system, men kan inträffa om du har inofficiella bakåtporteringar installerade. En filkonflikt resulterar i ett fel som:
Packar upp<paket-foo>
(från<paket-foo-fil>
) ... dpkg: fel vid hantering av<paket-foo>
(--install): försöker skriva över "<något-fil-namn>
", som också finns i paketet<paket-bar>
dpkg-deb: underprocessen paste dödad av signal (Brutet rör) Fel uppstod vid hantering:<paket-foo>
Du kan försöka lösa en filkonflikt genom att tvinga igenom borttagning av paketet som nämns på sista raden i felmeddelandet:
# dpkg -r --force-depends paketnamn
Efter att problemen har lösts, bör du kunna återuppta uppgraderingen genom att upprepa tidigare beskrivna apt-kommandon.
Under uppgraderingen kommer det att ställas frågor om konfiguration eller
omkonfiguration av flera paket. När du blir tillfrågad om någon fil i
katalogen /etc/init.d
eller filen
/etc/manpath.config
ska ersättas av paketansvariges
version, är det oftast nödvändigt att svara ”ja” för att
upprätthålla systemets tillstånd. Du kan alltid återgå till de gamla
versionerna, eftersom de kommer att sparas med en
.dpkg-old
-ändelse.
Om du inte är säker på vad som behöver göras, skriv ner namnet på paketet eller filen och red ut saker och ting senare. Du kan söka i typescript-filen för att granska informationen som visades på skärmen under uppgraderingen.
Om du kör uppgraderingen i systemets lokala konsoll kan det tänkas att under några delar av uppgraderingen så flyttar konsollen till en annan vy och du kan inte längre se uppgraderingsprocessen. Exempelvis händer detta i skrivbordsmiljöer när visningshanteraren startas om.
För att återta konsollen där uppgraderingen körs behöver du använda Ctrl+Alt+F1 för att byta till den virtuella terminalen 1 om du är vid den grafiska startbilden eller använd Alt+F1 i lokala textlägeskonsollen. Ersätt F1 med den funktionstangent som har motsvarande nummer för den virtuella terminal som uppgraderingen körs i. Du kan också använda Alt+Vänsterpil eller Alt+Högerpil för att byta mellan de olika textlägeskonsollerna.
Det här avsnittet förklarar hur man uppgraderar sin kärna och identifierar
tänkbara problem relaterade till den här uppgraderingen. Du kan antingen
installera ett av paketen linux-image-*
som tillhandahålls av Debian,
eller bygga en anpassad kärna från källkod.
Observera att en hel del information i det här avsnittet är baserad på
antagelsen att du kommer att använda en av de modulära Debiankärnorna
tillsammans med i initramfs-tools
och udev
. Om du har valt att använda
en anpassad kärna som inte kräver en initrd eller om du använder en annan
initrd-generator kan delar av den här informationen vara irrelevant för dig.
När du kör full-upgrade från buster till bullseye, rekommenderas det starkt att du installerar ett linux-image-*-metapaket, om du inte gjort det förut. De här metapaketen installerar automatiskt nyare versioner av kärnan vid uppgradering. Du kan verifiera om detta är installerat genom att köra:
# dpkg -l "linux-image*" | grep ^ii | grep -i meta
Om du inte ser något utdata, behöver du installera ett nytt linux-image-paket för hand eller installera ett linux-image-metapaket. Kör följande kommando för att se en lista över tillgängliga linux-image-metapaket:
# apt-cache search linux-image- | grep -i meta | grep -v transition
Om du är osäker på vilket paket du ska välja, kör uname
-r
och leta efter ett paket med liknande namn. Om du till exempel
ser ”4.9.0-8-amd64
” rekommenderas det att du
installerar linux-image-amd64
. Du
kan också använda apt för att se den längre beskrivningen
av varje paket som stöd i att välja bästa möjliga för ditt
system. Exempelvis:
# apt show linux-image-amd64
Du bör sedan använda apt install
för att installera
den. När den här nya kärnan har installerats bör du starta om vid nästa
möjliga tillfälle för att dra nytta av den nya kärnversionen. Läs dock Avsnitt 5.1.24, ”Att göra efter uppgradering före omstart” innan första omstarten sedan uppgradering
genomförs.
För den äventyrlige finns ett enkelt sätta att kompilera sina egen
modifierade kärna på Debian. Installera kälkoden till kärnan från paketet
linux-source
. Du kan använda målet
deb-pkg
i källkodens makefil för att bygga binärpaketet.
Läs mer i dokumentationen på Debian Linux
Kernel Handbook (engelska) eller genom att installera paketet
debian-kernel-handbook
.
Om möjligt är det till din fördel att uppgradera kärnpaketet separat från
själva full-upgrade
för att minska riskerna för ett
temporärt icke-startbart system. Observera att det här endast bör göras
efter den minimala uppgraderingsprocessen, beskriven i Avsnitt 4.4.4, ”Minimal systemuppgradering”.
Efter uppgraderingen finns det flera saker som du kan göra för att förbereda inför nästa utgåva.
Ta bort redundanta eller föråldrade paket som beskrivs i Avsnitt 4.4.3, ”Se till att du har tillräckligt med utrymme för uppgraderingen” och Avsnitt 4.8, ”Föråldrade paket”. Du bör granska vilka konfigurationsfiler som de använder och överväga att avinstallera paketen fullständigt för att ta bort deras konfigurationsfiler. Läs även Avsnitt 4.7.1, ”Utrensning av borttagna paket”.
I allmänhet är det en bra idé att rensa bort paket markerade som borttagna helt. Detta är extra sant om paketet togs bort i en tidigare uppgradering (exempelvis vid uppgradering till buster) eller om de tillhandahölls av tredjepartstillverkare. Särskilt äldre init.d-skript är visat sig problematiska.
Observera | |
---|---|
Bortrensning av paket tar vanligtvis öven bort dess loggfiler, dessa kan vara en bra idé att göra en säkerhetskopia av först. |
Följande kommando visar en lista med alla borttagna paket som kan ha inställningsfiler kvar på systemet:
# dpkg -l | awk '/^rc/ { print $2 }'
Paketen kan rensas bort genom att använda kommandot apt purge. Vill du rensa bort allt på en enda gång kan följande kommando användas:
# apt purge $(dpkg -l | awk '/^rc/ { print $2 }')
Om du använder aptitude
kan du också
använda följande alternativ till kommandona ovan:
# aptitude search '~c' # aptitude purge '~c'
bullseye introducerar många nya paket men pensionerar och utelämnar gamla paket som fanns i buster. Det tillhandahålls inget uppgraderingssätt för dessa föråldrade paket. Ingenting hindrar dig från att fortsätta att använda ett föråldrat paket om så önskas men Debianprojektet kommer vanligtvis att sluta ge säkerhetsstöd för dessa ett år efter utgivningen av bullseye[5], och ger normalt inget annat stöd under tiden. Rekomendationen är att ersätta de med andra tillgängliga alternativ , om detta finns.
Det finns många anledningar till varför paket kan ha tagits bort från distributionen: de underhålls inte längre av upphovsmännen; det finns inte längre någon Debianutvecklare som är intresserad av att underhålla paketen; funktionaliteten de tillhandahåller har ersatts av en annan programvara (eller en ny version); eller så anses de inte längre vara lämpliga för bullseye på grund av fel i dem. I det senare fallet kan paket fortfarande finnas i ”unstable”-distributionen.
Vissa pakethanteringsapplikationer tillhandahåller enkla sätt för att hitta paket som inte längre är tillgängliga från en känd källa. Exempelvis aptitude visar dessa i en kategori kallad ”Föråldrade och lokalt skapade paket”, de kan visas och rensas med följande kommando:
# aptitude search '~o' # aptitude purge '~o'
Debian Bug Tracking System tillhandahåller ofta ytterligare information om varför paketet blev borttaget. Du bör granska både de arkiverade felrapporterna för själva paketet och de arkiverade felrapporterna för pseudopaketet på ftp.debian.org.
Listan med föråldrade paket i Bullseye kan studeras i Avsnitt 5.3.1, ”Föråldrade paket”.
Vissa paket i buster har ersatts i bullseyeav tomma övergångspaket, dessa har till uppgift att underlätta uppgraderingar. Om en applikation tidigare tillhandahälls som ett enda paket men numera är delad i flera paket så kan ett tomt övergångspaket med samma namn användas för att tillse att beroendena installeras. När detta gjorts kan övergångspaketet tas bort.
Tomma övergångspaket har vanligtvis beskrivningar som pekar på varför de
existerar. De ser dock inte alla likadana ut, vissa är designade för att
vara installerade hela tiden för att tillse att alla delar av en
mjukvarusvit installeras eller att senaste versionen installeras. För att
hitta tomma övergångspaket kan exempelvis deborphan
användas med flaggorna
--guess
(ex. *
--guess-dummy
).
[1] Om debconf-prioriteringen är satt till en väldigt hög nivå kan du kanske undvika instälningsfrågor men tjänster som är beroende av standardsvar som inte fungerar för ditt system kommer inte att kunna starta.
[2] Exempelvis: DNS- eller DHCP-tjänster, speciellt om det inte finns någon redundans eller automatiskt byte av huvudtjänst. I fallet med DHCP kan slutanvändare bli nedkopplade från nätverket om lånperioden är kortare än tiden det tar för uppgraderingsprocessen att slutföra.
[3] Den här funktionen kan inaktiveras genom att lägga till parametern
panic=0
till dina uppstartparametrar.
[4] Debians pakethanteringssystem tillåter vanligtvis inte att ett paket tar bort eller ersätta en fil som ägs av ett annat paket såvida det inte har definierats att ersätta det paketet.
[5] Eller så länge som ingen annan utgivning sker i den tidsperioden. Normalt sett stöds endast två stabila utgåvor åt gången.