Kapitel 4. Uppgraderingar från tidigare utgåvor

Innehållsförteckning

4.1. Förberedelse inför uppgraderingen
4.1.1. Säkerhetskopiera all data eller konfigurationsinformation
4.1.2. Informera användarna i förväg
4.1.3. Förbered för återställning
4.1.4. Förbered en säker miljö för uppgraderingen
4.2. Kontrollera systemets status
4.2.1. Kontrollera kommande åtgärder i pakethanteraren
4.2.2. Inaktivera APT-nålning
4.2.3. Kontrollera paketstatus
4.2.4. Avsnittet proposed-updates
4.2.5. Inofficiella källor och bakåtporteringar
4.3. Avmarkera paket manuellt
4.4. Förbered källor för APT
4.4.1. Lägg till APT-källor på Internet
4.4.2. Lägg till APT-källor för en lokal spegelserver
4.4.3. Lägg till APT-källa från cd-rom eller dvd
4.5. Uppgradering av paket
4.5.1. Spela in sessionen
4.5.2. Uppdatering av paketlistan
4.5.3. Se till att du har tillräckligt med utrymme för uppgraderingen
4.5.4. Uppgradera apt och/eller aptitude först
4.5.5. Använda aptitudes lista över automatiskt installerade paket i apt
4.5.6. Minimal systemuppgradering
4.5.7. Uppgradering av resten av systemet
4.5.8. Möjliga problem under uppgraderingen
4.6. Uppgradering av kärna och relaterade paket
4.6.1. Installera metapaketet för kärnan
4.6.2. Ny ordning för enhetsnumrering
4.6.3. Tidsproblem vid uppstart
4.7. Saker att göra före omstart
4.7.1. Kör lilo igen
4.8. Systemets uppstart stannar vid Väntar på rotfilsystem
4.8.1. Att undvika problemet före uppgradering
4.8.2. För att återhämta sig från problemet efter uppgraderingen
4.9. Förberedelse inför nästa utgåva
4.10. Föråldrade paket
4.10.1. Dummy-paket
4.11. Inför nästa utgåva av Debian
4.11.1. Stöd för ARM ABI-porteringen avslutas till förmån för ARM EABI-porteringen

4.1. Förberedelse inför uppgraderingen

Du bör läsa informationen i Kapitel 5, Problemområden att känna till för utgåvan lenny innan du uppgraderar. Det kapitlet täcker in möjliga problem som inte direkt relaterar till uppgraderingsprocessen men som fortfarande kan vara viktigt att känna till innan du påbörjar arbetet.

4.1.1. Säkerhetskopiera all data eller konfigurationsinformation

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/aptitude/pkgstates och utdata från dpkg --get-selections "*" (citationstecknen är viktiga).

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, logga in som root, 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.

4.1.1.1. Kontrollera att du har korrekt kärna

glibc-versionen i lenny fungerar inte på en kärna äldre än 2.6.8 oberoende vilken arkitektur som används. Vissa arkitekturer har till och med högre krav. Vi rekomenderar starkt att du först uppgraderar till en kärna från etch, version 2.6.18 eller 2.6.24. Eller en alternativ kärna av minst version 2.6.18 innan du påbörjar uppgraderingsprocessen.

4.1.2. Informera användarna i förväg

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 antagligen behöva göra en kärnuppgradering vid uppgradering till lenny, så en omstart kommer troligen vara nödvändig. Vanligtvis kommer omstarten att göras efter att uppgraderingen är färdig.

4.1.3. Förbered för återställning

På grund av många ändringar i kärnan mellan etch och lenny gällande drivrutiner, identifiering av hårdvara, namnstandarden och ordning på enhetsfiler, finns det en risk att du kan uppleva problem vid omstart av ditt system efter uppgraderingen. En del kända tänkbara problem finns dokumenterade i det här och de nästkommande kapitlen av Kommentarer till utgåvan.

Av den anledningen är det klokt att försäkra sig om att du kan återställa om 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 säkerhetsåtgärder för att kunna komma åt servern genom en fjärrserieterminal. Det finns en chans att, efter uppgraderingen av kärnan och omstart, vissa enheter kommer att få nya namn (som beskrivs i Avsnitt 4.6.2, ”Ny ordning för enhetsnumrering”) och 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.

Det självklara är att först försöka starta om med din gamla kärna. Av olika anledningar, dokumenterade på annan plats i det här dokumentet, är det inte garanterat att det fungerar.

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. Ett alternativ är att använda en speciell räddningsavbild eller en cd-skiva 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.

Ett annat alternativ som vi rekommenderar är att använda räddningsläget i Debian-installeraren för lenny. 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, konsultera avsnittet ”Återställning av ett trasigt system” i kapitel 8 av Installationsguiden och Debian Installer FAQ.

4.1.3.1. Felsökningsskal under uppstart med hjälp av initrd

Paketet initramfs-tools inkluderar ett felsökningsskal[2] i de initrd-filer som den genererar. Om, till exempel, initrd-filen inte kan montera ditt rotfilsystem, kommer du att bli förflyttad in i det här felsökningsskalet vilket har grundläggande kommandon tillgängliga för att hjälpa till att spåra problemet och möjligen rätta till det.

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. Så klart behöver du även rätta till det underliggande problemet och generera om initrd-filen så att nästa uppstart inte misslyckas igen.

4.1.4. Förbered en säker miljö för uppgraderingen

Uppgradering av distributionen bör göras antingen lokalt från en virtuell textkonsoll (eller en direktansluten serieterminal), eller från ett fjärrsystem via en ssh-anslutning.

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 gör att man säkert kan återansluta till sessionen och försäkra sig om att uppgraderingsprocessen inte avbryts även om fjärranslutningen avbryts.

[Viktigt]Viktigt

Viktigt! Du bör inte uppgradera via telnet, rlogin, rsh eller från en X-session som hanteras av xdm, gdm eller kdm etc på maskinen som du uppgraderar. Då processer som hanterar dessa tjänster kan avslutas under uppgraderingen vilket kan resultera i ett oåtkomligt system som endast är halvt uppgraderat.

4.2. Kontrollera systemets status

Uppgraderingsprocessen som beskrivs i detta kapitel har tagits fram med uppgradering från ett ”rent” 4.0-system, utan några tredjeparts paket, i åtanke. För störst tillförlitlighet i uppgraderingsprocessen bör du ta bort eventuella tredjepartsprogram från ditt system innan uppgraderingen påbörjas.

Processen förutsätter även att ditt system har uppdaterats till den senaste punkutgåven av 4.0. Om du inte har gjort detta eller är osäker följ instruktionerna i Avsnitt A.1, ”Uppgradering av ditt etch-system”.

4.2.1. Kontrollera kommande åtgärder i pakethanteraren

I vissa fall kan användandet av apt-get för installation av paket istället för aptitude orsaka att aptitude anser att ett paket är ”oanvänt” och markera det för radering. Tillse att ditt system är helt uppdaterat och ”rent” innan du fortsätter med uppgraderingen.

På grund av detta bör du kontrollera och det finns några kommande åtgärder i pakethanteraren aptitude. Om ett paket är markerat för radering eller uppdatering i pakethanteraren kan det innebära att uppgraderingen drabbas negativt. Kom ihåg att detta endast kan åtgärdas om din sources.list fortfarande pekar på etch och inte på stable eller lenny, läs mer i Avsnitt A.2, ”Kontrollera dina källistor”.

För att genomföra denna granskning ska du köra aptitude i ”visuellt läge” och trycka g (””). Om det indikerar att det finns åtgärder att utföra kontrollera vad det är och lös dem eller kör föreslagen åtgärd. Om inga åtgärder föreslås visas ett meddelande, ”Inga paket är schemalagda för installation, borttagning eller uppgradering”.

4.2.2. Inaktivera APT-nålning

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) 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).

4.2.3. Kontrollera paketstatus

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 dselect, 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 apt-get och dselect. Du kan identifiera paket som hålls tillbaka med aptitude med

# aptitude search "~ahold" | grep "^.h"

Om du vill kontrollera vilka paket som hålls tillbaka vid användning av apt-get, 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” för aptitude kan ändras med:

# aptitude hold package_name

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 sources.list fortfarande refererar till etch vilket förklaras i Avsnitt A.2, ”Kontrollera dina källistor”.

4.2.4. Avsnittet proposed-updates

Om du har proposed-updates i din /etc/apt/sources.list 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 att konflikter uppstår.

4.2.5. Inofficiella källor och bakåtporteringar

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 din /etc/apt/sources.list, bör du kontrollera om det arkivet även erbjuder paket som är byggda för lenny och ändra källraden på lämpligt sätt samtidigt som dina källrader för Debian-paket.

Vissa användare kan ha inofficiella bakåtporterade versioner av paket, som är ”nyare” än de som finns i Debian, installerade på sina etch-system. Sådana paket kommer med stor sannolikhet att orsaka problem under en uppgradering eftersom de kan resultera i filkonflikter[3]. Avsnitt 4.5.8, ”Möjliga problem under uppgraderingen” innehåller information om hur man hanterar filkonflikter om de skulle inträffa.

4.2.5.1. Att använda paket från backports.org

backports.org är ett semiofficiell förråd som tillhandahålls av Debian GNU/Linux-utvecklare. Förrådet innehållet nyare paket för den stabila utgåvan, dessa paket är baserade på de som finns i ”testing”-arkivet.

Paketen i backports.org-förrådet kommer från ”testing” med versionsnummer som justerats för att bevara uppgraderingsgången från etch backports till lenny. Det finns dock några backports-paket som hämtas från paket som finns i unstable-arkivet nämligen säkerhetsuppdateringar och följande undantag: Firefox, Linuxkärnan, OpenOffice.org samt X.Org.

If you do not use one of these exceptions, you can safely upgrade to lenny. If you use one of these exceptions, set the Pin-Priority (see apt_preferences(5)) temporarily to 1001 for all packages from lenny, and you should be able to do a safe dist-upgrade too.

4.3. Avmarkera paket manuellt

För att förhindra att aptitude tar bort vissa paket som installerades som beroenden för andra paket behöver du manuellt avmarkera dem som auto-paket. Det inkluderar OpenOffice och Vim för skrivbordsinstallationer:

# aptitude unmarkauto openoffice.org vim

Och 2.6-kärnavbilder om du har installerat dem med ett kärnmetapaket:

# aptitude unmarkauto $(dpkg-query -W 'linux-image-2.6.*' | cut -f1)
[Notera]Notera

Observera: Du kan granska vilka paket som är markerade som auto i aptitude genom att köra:

# aptitude search '~i~M'

4.4. Förbered källor för APT

Innan du påbörjar uppgraderingen måste du redigera konfigurationsfilen för paketlistor i apt, /etc/apt/sources.list.

Apt kommer att överväga att alla paket som kan hittas via någon ”deb”-rad, och installera paketet med högsta versionsnumret, där prioritet ges till de förstnämnda raderna (om du nyttjar flera redundanta speglar, skulle du vanligtvis först namnge en lokal hårddisk, sedan cd-skivor, och sedan HTTP/FTP-speglar).

[Tips]Tips

Du kan behöva lägga till ett undantag från GPG-kontrollen för dvd- och cd-rom-avbildningarna. Lägg till följande rad i /etc/apt/apt.conf om det inte redan finns i /etc/apt/apt.conf.d/00trustcdrom:

APT::Authentication::TrustCDROM "true";

Detta fungerar dock inte med dvd-/cd-rom-avbildningar.

En utgåva kan ofta refereras till både dess kodnamn (t.ex. etch, lenny) 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.

4.4.1. Lägg till APT-källor på Internet

Standardkonfigurationen är inställd för installation från Debians huvudservrar på Internet, men du kanske önskar ändra /etc/apt/sources.list till att använda andra speglar, föredragsvis en spegel som är nätverksmässigt närmare dig.

Adresserna till Debians HTTP- eller FTP-speglar kan hittas på http://www.debian.org/distrib/ftplist (se avsnittet ”Listan över Debianspeglingar”). HTTP-speglar är vanligtvis snabbare än FTP-speglar.

Till exempel, anta att din närmaste Debian-spegel är http://mirrors.kernel.org. När den spegeln inspekteras med en webbläsare eller FTP-program, kommer du att märka att huvudkatalogerna är organiserade så här:

http://mirrors.kernel.org/debian/dists/lenny/main/binary-armel/...
http://mirrors.kernel.org/debian/dists/lenny/contrib/binary-armel/...

Lägg till den här raden till din sources.list för att använda den här spegelservern med apt:

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

Observera att ”dists” läggs till automatiskt och 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 ”deb”-raderna i sources.list genom att placera ett hash-tecken (#) framför dem.

4.4.2. Lägg till APT-källor för en lokal spegelserver

Istället för att använda HTTP- eller FTP-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).

Till exempel, din paketspegel kan finnas under /var/ftp/debian/ och innehåller huvudkataloger som dessa:

/var/ftp/debian/dists/lenny/main/binary-armel/...
/var/ftp/debian/dists/lenny/contrib/binary-armel/...

Lägg till den här raden till din sources.list för att använda den här med apt:

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

Observera att ”dists” läggs till automatiskt och 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 ”deb”-raderna i sources.list genom att placera ett hash-tecken (#) framför dem.

4.4.3. Lägg till APT-källa från cd-rom eller dvd

Om du endast vill använda cd-skivor, kommentera ut de befintliga ”deb”-raderna i /etc/apt/sources.list 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 /cdrom (den exakta monteringspunkten /cdrom krävs för apt-cdrom). Till exempel, om /dev/hdc är din cd-rom-enhet, ska /etc/fstab innehålla en rad som denna:

/dev/hdc /cdrom auto defaults,noauto,ro 0 0

Observera att det inte får finnas några blanksteg mellan orden defaults,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 /cdrom    # det här monterar cd-skivan på monteringspunkten
# ls -alF /cdrom     # det här ska visa cd-skivans rotkatalog
# umount /cdrom  # det här kommer att avmontera cd-skivan

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.

4.5. Uppgradering av paket

Det rekommenderade sättet att uppgradera mellan utgåvor av Debian GNU/Linux är att använda pakethanteringsverktyget aptitude. Det här programmet gör säkrare val angående paketinstallationer än att köra apt-get direkt.

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 /mountpoint

Efter det ska du kontrollera att källraderna för APT (i /etc/apt/sources.list) refererar antingen till ”lenny” eller till ”stable”. Det ska inte finnas några källrader som pekar till etch.

[Notera]Notera

Observera: källrader för en cd-skiva kommer ofta att referera till ”unstable”, även om det här är konstigt ska du inte ändra dem.

4.5.1. Spela in sessionen

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-lenny.time -a ~/upgrade-lenny.script

eller liknande. 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. Växla helt enkelt till VT2 (med Alt+F2) och, efter inloggning, använd less -R ~root/uppgradering-till-lenny.script för att visa filen.

Efter att du har färdigställt uppgraderingen, kan du stoppa script genom att ange exit vid prompten.

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-lenny.time ~/upgrade-lenny.script

4.5.2. Uppdatering av paketlistan

Först behöver listan över tillgängliga paket för den nya utgåvan hämtas. Det görs genom att köra:

# aptitude update

Körning av det här första gången nya källor uppdateras kommer att skriva ut några varningar som relaterar till tillgängligheten för källorna. Dessa varningar är harmlösa och kommer inte att visas om du kör kommandot igen.

4.5.3. Se till att du har tillräckligt med utrymme för uppgraderingen

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.5.7, ”Uppgradering av resten 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.

Både aptitude och apt kommer att visa dig detaljerad information om det diskutrymme som behövs för installationen. Du kan se det här estimatet innan den faktiska uppgraderingen påbörjas genom att köra:

# aptitude -y -s -f --with-recommends dist-upgrade
[ ... ]
XXX uppgraderade, XXX nyinstallerade, XXX att ta bort och XXX inte uppgraderade.
Behöver hämta xx.xMB/yyyMB arkiv. Efter uppackning kommer AAAMB diskplats att användas.
Kommer att hämta/installera/ta bort paket.
[Notera]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.5.6, ”Minimal systemuppgradering” och uppgraderat din kärna enligt Avsnitt 4.1.1.1, ”Kontrollera att du har korrekt kärna” innan du kör det här kommandot för att uppskatta diskutrymmet.

Om du inte har tillräckligt med utrymme kan du se till att frigöra utrymme innan uppgraderingen. Du kan till exempel:

  • Ta bort paket som tidigare har hämtats ner för installation (i /var/cache/apt/archive). Rensa upp paketcachen genom att köra apt-get clean eller aptitude clean vilket kommer att ta bort alla tidigare hämtade paketfiler.

  • Ta bort gamla paket som du inte längre använder. Om du har paketet popularity-contest installerat kan du använda popcon-largest-unused för att lista de paket som du inte använder i systemet och som tar upp mest utrymme. Du kan även använda deborphan eller debfoster för att hitta föråldrade paket (se Avsnitt 4.10, ”Föråldrade paket”). Alternativt kan du starta aptitude i ”visuellt läge” och hitta föråldrade paket under ”Föråldrade och lokalt skapade paket”.

  • Ta bort paket som tar upp för mycket utrymme och som du inte har ett omedelbart behov av (du kan alltid installera om dem efter uppgraderingen). Du kan lista paketen som tar upp mest utrymme genom att köra dpigs (tillgängligt i paketet debian-goodies) eller med wajig (kör wajig size).

    You can list packages that take up most of the disk space with aptitude. Start aptitude into ”visual mode”, select ViewsNew Flat Package List (this menu entry is available only after etch version), press l and enter ~i, press S and enter ~installsize, then it will give you nice list to work with. Doing this after upgrading aptitude should give you access to this new feature.

  • 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]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:

    1. ta bort paket som tidigare hämtats för installation:

      # apt-get clean

    2. kopiera katalogen /var/cache/apt/archives till USB-diskenheten:

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

    3. montera den temporära cachekatalogen ovanpå den nuvarande:

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

    4. efter uppgraderingen återställer du original katalogen /var/cache/apt/archives:

      # umount /media/usbkey/archives

    5. 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.

Observera att för att ta bort paket på ett säkert sätt, rekommenderas det att växla tillbaka din sources.list till etch vilket förklaras i Avsnitt A.2, ”Kontrollera dina källistor”.

4.5.4. Uppgradera apt och/eller aptitude först

Several bug reports have shown that the versions of the aptitude and apt packages in etch are often unable to handle the upgrade to lenny. In lenny, apt is better at dealing with complex chains of packages requiring immediate configuration and aptitude is smarter at searching for solutions to satisfy the dependencies. These two features are heavily involved during the dist-upgrade to lenny, so it is necessary to upgrade these two packages before upgrading anything else.

The following command will upgrade both aptitude and apt:

# aptitude install aptitude apt dpkg

This step will also automatically upgrade libc6 and locales. At this point, some running services will be restarted, including xdm, gdm and kdm. As a consequence, local X11 sessions might be disconnected.

[Notera]Upgrading with apt

Please note that using apt-get is not recommended for the upgrade from etch to lenny. If you do not have aptitude installed you are recommended to install it first.

If you want to perform the upgrade with apt or if the upgrade with aptitude failed and you want to try the upgrade with apt' dependency chain resolution algorithm, you should run:

# apt-get install apt

Note that you will have to adapt other aptitude commands to use apt-get instead.

4.5.5. Använda aptitudes lista över automatiskt installerade paket i apt

Aptitude underhåller en lista med paket som installerats automatiskt (exempelvis som beroenden av ett annat paket). I lenny finns denna funktion även i apt.

När lenny-versionen av aptitude körs kommer den att läsa in listan med automatiskt installerade paket och konvertera den så att den kan användas tillsammans med lenny-versionen av apt. Om du har aptitude installerat ska du åtminstone köra ett av aptitudes kommandon för att genomföra konverteringen av listan, exempelvis kan du söka efter ett paket som inte finns.

# aptitude search "?false"

4.5.6. Minimal systemuppgradering

På grund av vissa nödvändiga paketkonflikter mellan etch och lenny kommer en direkt körning av aptitude dist-upgrade ofta att ta bort ett stort antal paket som du vill behålla. Vi rekommenderar därför en tvådelad uppgraderingsprocess, först en minimal uppgradering för att komma runt dessa konflikter och sedan en fullständig dist-upgrade.

Kör först:

# aptitude safe-upgrade

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.

Nästa steg beror på uppsättningen paket som du har installerade. Dessa Kommentarer till utgåvan ger allmänna råd om vilken metod som ska användas, 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.

Några vanliga paket som förväntas bli borttagna är bland annat base-config, hotplug, xlibs, netkit-inetd, python2.3, xfree86-common och xserver-common. För en mer komplett lista över föråldrade paket i lenny, se Avsnitt 4.10, ”Föråldrade paket”.

4.5.7. Uppgradering av resten av systemet

Du är nu redo att fortsätta med huvuddelen av uppgraderingen. Kör:

# aptitude dist-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-skivor (eller dvd-skivor), kommer du att bli uppmanad att mata in specifika cd-skivor vid olika tillfällen under uppgraderingen. Du kanske måste mata in samma cd-skiva flera gånger; detta beror på att sammankopplade paket har blivit utspridda över cd-skivorna.

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 prova aptitude -f install paket.

4.5.8. Möjliga problem under uppgraderingen

Om en åtgärd med aptitude, apt-get eller dpkg misslyckas med felet

F: Dynamisk MMap fick slut på utrymme
E: Dynamic MMap ran out of room

räcker inte standardutrymmet för cachen till. Du kan lösa det här genom att antingen ta bort eller kommentera rader som du inte behöver i /etc/apt/sources.list eller genom att öka storleken på cachen. Storleken på cachen kan ökas genom att ställa in APT::Cache-Limit i /etc/apt/apt.conf. Följande kommando kommer att ställa in den till ett värde som ska vara tillräckligt för uppgraderingen:

# echo 'APT::Cache-Limit "12500000";' >> /etc/apt/apt.conf

Det här förutsätter att du inte redan har ställt in variabeln i den filen.

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. Aptitude 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 aptitude.

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 aptitude eller

# dpkg --remove package_name

för att plocka bort några av de störande paketen, eller

# aptitude -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” etch-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-fil-foo>) ...
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 aptitude-kommandon.

Under uppgraderingen kommer det att ställas frågor om konfiguration eller omkonfigurationen av flera paket. När du blir tillfrågad om någon fil i katalogerna /etc/init.d eller /etc/terminfo, 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.

4.6. Uppgradering av kärna och relaterade paket

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 Debian-kä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.

4.6.1. Installera metapaketet för kärnan

När du kör dist-upgrade från etch till lenny, rekommenderas det starkt att du installerar ett nytt linux-image-2.6-*-metapaket. Det här paketet kan installeras automatiskt av dist-upgrade-processen. Du kan verifiera det genom att köra:

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

Om du inte ser något utdata, behöver du installera ett nytt linux-image-paket för hand. Kör följande kommando för att se en lista över tillgängliga linux-image-2.6-metapaket:

# apt-cache search linux-image-2.6- | 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 ”2.6.18-6-686” rekommenderas det att du installerar linux-image-2.6-686 (observera att varianten k7 inte längre finns, om du för tillfället kör en kärna av k7-variant bör du installera varianten 686 istället.). Du kan även använda apt-cache för att se en lång beskrivning för varje paket för att hjälpa dig att välja den bästa möjliga. Till exempel:

# apt-cache show linux-image-2.6-686

Du bör sedan använda aptitude 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.

För den mer äventyrlige finns det ett enkelt sätt att bygga sin egna, anpassade, kärna på Debian GNU/Linux. Installera verktyget kernel-package och läs dokumentationen i /usr/share/doc/kernel-package.

Om möjligt är det till din fördel att uppgradera kärnpaketet separat från själva dist-upgrade för att minska chanserna för ett temporärt icke-startbart system. Observera att det här bör endast göras efter den minimala uppgraderingsprocessen, beskriven i Avsnitt 4.5.6, ”Minimal systemuppgradering”.

4.6.2. Ny ordning för enhetsnumrering

lenny har en mer robust mekanism för att identifiera hårdvara än tidigare utgåvor. Dock kan den här orsaka ändringar på den ordning som enheter identifieras på ditt system vilket påverkar ordningen i vilken enhetsnamnen tilldelas. Om du till exempel har två nätverkskort som associeras med två olika drivrutiner, kan de enheter som eth0 och eth1 refererar till ändras. Observera att den nya mekanismen betyder att om du till exempel byter Ethernet-kort på ett körande lenny-system, kommer det nya kortet även att få ett nytt gränssnittsnamn.

För nätverksenheter kan du undvika den här omnumreringen genom att använda regler i udev, mer specifikt genom definitionerna i /etc/udev/rules.d/70_persistent-net.rules[4]. Alternativt kan du använda verktyget ifrename för att binda fysiska enheter till specifika namn vid uppstarten. Se ifrename(8) och iftab(5) för mer information. De två alternativen (udev och ifrename) bör inte användas samtidigt.

För lagringsenheter kan du undvika den här omsorteringen genom att använda initramfs-tools och konfigurera det att läsa in drivrutinsmoduler för lagringsenheter i samma ordning som de för närvarande läses in i. För att göra detta, identifiera ordningen på lagringsmodulerna på ditt system genom att se på utdatat från lsmod. Lsmod listar moduler i omvänd ordning än den de lästes in i, alltså den första modulen i listan är den som sist lästes in. Observera att det här endast fungerar för enheter som kärnan numrerar i en stabil ordning (som PCI-enheter).

Dock kommer borttagning och omläsning av moduler efter initial uppstart att påverka ordningen. Din kärna kan även ha några drivrutiner som är statiskt länkade, och dessa namn kommer inte att visas i utdatat från lsmod. Du kan möjligen läsa ut dessa drivrutinsnamn och inläsningsordning genom att se i /var/log/kern.log, eller utdatat från dmesg.

Lägg till dessa modulnamn till /etc/initramfs-tools/modules i den ordning som de ska läsas in i vid uppstarten. Vissa modulnamn kan ha ändrats mellan etch och lenny. Till exempel har sym53c8xx_2 blivit sym53c8xx.

Du kommer att behöva generera om dina initramfs-avbild(er) genom att köra update-initramfs -u -k all.

När du väl kör en lenny-kärna tillsammans med udev kan du konfigurera om ditt system till att komma åt diskarna genom ett alias som inte är beroende av inläsningsordningen. Dessa alias finns under /dev/disk/-hierarkin.

4.6.3. Tidsproblem vid uppstart

Om en initrd som skapats med initramfs-tools används för att starta upp systemet, kan i vissa fall skapandet av enhetsfiler av udev ske för sent för uppstartsskripten att agera på.

De vanligaste symptomerna är att uppstarten misslyckas på grund av att rotfilsystemet inte kan monteras och du hamnar i ett felsökningsskal, men när du kontrollerar senare så finns alla nödvändiga enheter i /dev. Det har observerats i fall där rotfilsystemet finns på en USB-disk eller på RAID, speciellt om LILO används.

Ett sätt att komma runt det här problemet på är att använda uppstartsparametern rootdelay=9. Värdet för tidsgränsen (i sekunder) kan behöva justeras.

4.7. Saker att göra före omstart

När aptitude dist-upgrade har kört färdigt är den ”formella” uppgraderingen färdig, men det finns vissa andra saker som bör tas om hand före nästa omstart.

4.7.1. Kör lilo igen

Om du använder lilo som uppstartshanterare (det är standardvalet för uppstartshantering i vissa installationer av etch) rekomenderas det starkt att du åter kör lilo efter uppdateringarna.

# /sbin/lilo

Observer att dett är ett nödvändigt steg även om du inte har uppdaterat din kärna i och med att andra steget av lilo har förändrats i och med uppdateringen av paket.

Kontrollera även innehållet i din /etc/kernel-img.conf och säkerställ att du har do_bootloader = Yes i den. På det viset kommer uppstartshanteraren alltid att köras efter en uppgradering av kärnan.

Skulle några problem uppstår när du kör lilo kontrollera de symboliska länkarna i / till vmlinuz och initrd samt att innehållet i /etc/lilo.conf inte avviker från detta.

Om du glömmer att köra lilo innan omstart av systemet eller om systemet startas om av misstag innan du gjort detta manuellt kan det innebära att systemet inte kan startas normalt. Isätllet för den vanliga lilo-bilden kommer endast LI visas när systemet ska startas[5]. Se även Avsnitt 4.1.3, ”Förbered för återställning” för mer information om att återhämta sig från detta.

4.8. Systemets uppstart stannar vid Väntar på rotfilsystem

Procedur för att återhämta sig från att /dev/hda blev /dev/sda

Några användare har rapporterat att en uppgradering kan innebära att kärnan inte hittar systemets rotpartition efter att systemet startats om.

I sådana fall kommer systemet att stanna med följande meddelande:

Väntar på rotfilsystem... (engelska: Waiting for root file system ...)

och efter några sekunder visas ett enkelt inmatningsställe för busybox.

Detta problem uppstår när kärnan introducerar en ny typ av namnskapande för IDE-enheter. IDE-enheternas namnkonvention var tidigare hda, hdb, hdc och hdd. Det nya sättet kommer att ge samma diskar följande namn sda, sdb, sdc och sdd. Problemet härstammar från att uppgraderingen inte skapar en ny /boot/grub/menu.lst som tar de nya namnen i beaktan. Vid uppstarten kommer Grub att skicka en rotpartition till kärnan som kärnan inte kan hitta.

Har du drabbats av detta problem efter uppgraderingen, läs i Avsnitt 4.8.2, ”För att återhämta sig från problemet efter uppgraderingen”. För att undvika detta problem före uppgradering läs vidare nedan.

4.8.1. Att undvika problemet före uppgradering

Problemet kan undvikas helt genom att använda en idetitet för rotfilsystemet som inte förändras mellan olika uppstarter. Det finns två möjliga metoder för att uppnå detta. Att sätta ettiketter på filsystem eller genom att använda ett filsystems universella unika identitet (UUID). Dessa metoder har funnits i Debian sedan utgåvan ”etch”.

Metoderna har fördelar och nackdelar. Etikett-metoden är mer läsbar men det kan finnas problem med den om ett annat filsystem på din maskin har samma ettikett. UUID-metoden är fulare men att det skulle skapas två filsystem med samma UUID är mycket osannolikt.

I exemplet nedan antas att rotfilsystemet finns på /dev/hda6. Vi antar dessutom att systemet har en fungernade udev-installation och ett ext2- eller ext3-filsystem.

För att använda ettikettmetoden:

  1. Sätt ettikett på filsystemet (namnet måste vara < 16 tecken) genom att köra följande kommando: e2label /dev/hda6 rootfilesys

  2. Redigera /boot/grub/menu.lst och ändra följande rad:

    # kopt=root=/dev/hda6 ro

    till

    # kopt=root=LABEL=rootfilesys ro

    [Notera]Notera

    Ta inte bort # i början på raden, den måste vara där.

  3. Uppdatera kernel-raderna i menu.lst genom att köra kommandot update-grub.

  4. Redigera /etc/fstab och ändra raden som monterar /-partition, ex:

    /dev/hda6     /     ext3  defaults,errors=remount-ro 0 1

    till

    LABEL=rootfilesys     /     ext3  defaults,errors=remount-ro 0 1

    Förändringen som spelar roll finns i första kolumnen, du behöver inte ändra de övriga kolumnerna på denna rad.

För att använda UUID-metoden:

  1. Find out the universally unique identifier of your filesystem by issuing: ls -l /dev/disk/by-uuid | grep hda6. You can also use vol_id --uuid /dev/hda6 (in etch) or blkid /dev/hda6 (if already upgraded to lenny).

    Din rad bör se ut ungefär så här:

    lrwxrwxrwx 1 root root 24 2009-01-30 08:16 d0dfcc8a-417a-41e3-ad2e-9736317f2d8a -> ../../hda6

    UUID är namnet på den symboliska länk som pekar på /dev/hda6 exempelvis: d0dfcc8a-417a-41e3-ad2e-9736317f2d8a.

    [Notera]Notera

    Ditt filsystem kommer ha en annan UUID som sträng.

  2. Redigera /boot/grub/menu.lst och ändra följande rad:

    # kopt=root=/dev/hda6 ro

    till

    # kopt=root=UUID=d0dfcc8a-417a-41e3-ad2e-9736317f2d8 ro

    [Notera]Notera

    Ta inte bort # i början på raden, den måste vara där.

  3. Uppdatera kernel-raderna i menu.lst genom att köra kommandot update-grub.

  4. Redigera /etc/fstab och ändra raden som monterar /-partition, ex:

    /dev/hda6     /     ext3  defaults,errors=remount-ro 0 1

    till

    UUID=d0dfcc8a-417a-41e3-ad2e-9736317f2d8  /  ext3  defaults,errors=remount-ro 0 1

    Förändringen som spelar roll finns i första kolumnen, du behöver inte ändra de övriga kolumnerna på denna rad.

4.8.2. För att återhämta sig från problemet efter uppgraderingen

4.8.2.1. Lösning 1

Detta fungerar om Grub visar sin grafiska meny där du kan välja vilket alternativ som ska startas. Om denna meny inte visas försök trycka Esc-tangenten innan kärnan startar för att visa menyn. Om du inte kan visa menyn försök med Avsnitt 4.8.2.2, ”Lösning 2” eller Avsnitt 4.8.2.3, ”Lösning 3”.

  1. I Grub-menyn, markera alternativet du vill använda för att starta systemet. tryck e-tangenten för att redigera alternativet. Du kommer nu se något liknande detta:

    root (hd0,0)
    kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro
    initrd /initrd.img-2.6.26-1-686

  2. Markera raden

    kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro

    tryck e-tangenten och ersätt hdX med sdX (där X är bokstäverna a, b, c eller d beroende på ditt system). I vårt exempel blir raden:

    kernel /vmlinuz-2.6.26-1-686 root=/dev/sda6 ro

    Tryck sedan vagnretur för att spara ändringen. Om andra rader visar hdX uppdatera dessa också. Ändra inte delen som ser ut ungefär så här root (hd0,0). När alla ändringar är klara tryck b-tangenten så bör systemet starta som vanligt.

  3. När ditt system har starta upp behöver detta problemet lösas permanent. Hoppa till Avsnitt 4.8.1, ”Att undvika problemet före uppgradering” och använd en av metoderna.

4.8.2.2. Lösning 2

Starta systemet på ett Debian GNU/Linux-installationsmedia (cd/dvd), ange rescue vid inmatningsstället för att starta återhämtningsläget. Välj språk, plats, tangentbordsupplägg och låt systemet försöka ställa in nätverket (det spelar ingen roll om det lyckas eller ej). Strax ska du ange vilken partition som ska användas som rotfilsystem. Alternativen bör se ut ungefär så här:

/dev/ide/host0/bus0/target0/lun0/part1
/dev/ide/host0/bus0/target0/lun0/part2
/dev/ide/host0/bus0/target0/lun0/part5
/dev/ide/host0/bus0/target0/lun0/part6

Om du vet vilken partition som är ditt rotfilsystem väljer du detta. Om du inte vet välj den första, systemet kommer tala om att det är ett ickefungerande rotfilsystem om partitionen inte kan användas, fortsätt att prova med nästa och så vidare. Att prova sig fram så här ska inte vara någon fara, har du bara ett rotfilsystem installerat bör det vara ganska enkelt att hitta det. Har du flera system installerade på dina diskar är det bättre att veta exakt vilken partition som är rätt.

När du väl har valt rätt partition får du välja mellan ett antal alternativ. Välj alternativet att starta ett skal på den valda partitionen, kan detta inte utföras prova med en annan partition.

Nu bör du ha skaltillgång som rotanvändaren på ditt rotfilsystem monterat på /target. Du behöver ha tillgång till innehållet i katalogerna /boot, /sbin och /usr på din hårddisk, dessa bör finnas i sökvägarna /target/boot, /target/sbin och /target/usr. Om dessa kataloger måste monteras från andra partitioner så ska du göra det först. (Konsultera /etc/fstab om du inte vet vilka partitioner som ska monteras).

Hoppa till Avsnitt 4.8.1, ”Att undvika problemet före uppgradering” och genomför en av metoderna för att permanent laga felet. Ange sedan exit för att lämna återhämtningsskalet och välj omstart (reboot på engelska) för att starta om systemet som vanligt (glöm inte att avlägsna det startbara mediet).

4.8.2.3. Lösning 3

  1. Starta systemet från en cd-skiva med ett körbart system, exempelvis Debian Live, Knoppix eller Ubuntu Live.

  2. Montera partitionen där katalogen /boot finns. Om du inte vet vilken det är kan du använda kommandot dmesg för att se om din disk kallas hda, hdb, hdc, hdd eller sda, sdb, sdc, sdd. När du har kommit fram till vilken disk du ska använda, exempelvis sdb, kör följande kommando för att visa partitionstabellen och hitta rätt partition: fdisk -l /dev/sdb

  3. Så länge du har monterat rätt partition i /mnt och att den partitionen innehåller katalogen /boot med rätt innehåll så ska du redigera filen /mnt/boot/grub/menu.lst.

    Hitta avsnittet som liknar följande:

    ## ## End Default Options ##
    
    title           Debian GNU/Linux, kernel 2.6.26-1-686
    root            (hd0,0)
    kernel          /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro
    initrd          /initrd.img-2.6.26-1-686
    
    title           Debian GNU/Linux, kernel 2.6.26-1-686 (single-user mode)
    root            (hd0,0)
    kernel          /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro single
    initrd          /initrd.img-2.6.26-1-686
    
    ### END DEBIAN AUTOMAGIC KERNELS LIST

    och ersätt alla hda, hdb, hdc och hdd med sda, sdb, sdc respektive sdd. Ersätt inte rader som liknar:

    root            (hd0,0)

  4. Starta om systemet, ta ut den körbara cd-skivan så startar ditt system som det ska.

  5. När systemet har startat genomför du en av metodena som beskrivs i Avsnitt 4.8.1, ”Att undvika problemet före uppgradering” för att laga felet permanent.

4.9. Förberedelse inför nästa utgåva

Efter uppgraderingen finns det flera saker som du kan göra för att förbereda inför nästa utgåva.

  • Om den nya kärnavbildens metapaket drogs in som ett beroende till den gamla, kommer det att markeras som automatiskt installerat, vilket bör korrigeras:

    # aptitude unmarkauto $(dpkg-query -W 'linux-image-2.6-*' | cut -f1)
    
  • Ta bort föråldrade och oanvända paket som beskrivs i Avsnitt 4.10, ”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

4.10. Föråldrade paket

lenny introducerar tusentals nya paket men pensionerar och utelämnar mer än två tusen gamla paket som fanns i etch. 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 Debian-projektet kommer vanligtvis att sluta ge säkerhetsstöd för dessa ett år efter utgivningen av lenny[6] och kommer normalt sett inte att tillhandahålla annat stöd under den tiden. Att ersätta dem med tillgängliga alternativ, om det finns några, rekommenderas.

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 Debian-utvecklare som är intresserad i 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 lenny på grund av fel i dem. I det senare fallet kan paket fortfarande finnas i ”unstable”-distributionen.

Att identifiera vilka paket på ett uppdaterat system som är ”föråldrade” är enkelt eftersom pakethanteringsvertygen markerar dem så. Om du använder aptitude, kommer du att se en lista över dessa paket under ”Föråldrade och lokalt skapade paket”. dselect tillhandahåller en liknande sektion men listan som visas kan skilja sig.

Om du har använt aptitude för att manuellt installera paket i etch kommer den att hålla kontroll på de paket som du manuellt installerat och kan markera de paket som själva har hämtats in via beroenden, vilka inte längre behövs om ett paket har tagits bort. Aptitude, till skillnad från deborphan, kommer inte markera de manuellt installerade paketen som föråldrade, i motsats till de som blev automatiskt installerade genom beroenden.

Det finns ytterligare verktyg som du kan använda för att hitta föråldrade paket, såsom deborphan, debfoster eller cruft. deborphan rekommenderas starkt, även om det endast kommer (i standardläget) rapportera om föråldrade bibliotek: paket i sektionerna ”libs” eller ”oldlibs” som inte används av några andra paket. Ta inte helt blint bort de paket som dessa verktyg presenterar, speciellt om du använder aggressiva ickestandardalternativ som är benägna att producera felaktigheter. Det rekommenderas starkt att du manuellt granskar paketen som föreslås för borttagning (alltså deras innehåll, storlek och beskrivning) innan du tar bort dem.

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.

The list of obsolete packages includes:

  • apache (1.x), ersätts av apache2

  • bind (8), successor is bind9

  • php4, successor is php5

  • postgresql-7.4, successor is postgresql-8.1

  • exim (3), successor is exim4

4.10.1. Dummy-paket

Vissa paket från etch har delats upp i flera paket i lenny, ofta för att förbättra systemunderhållet. För att göra uppgraderingssättet enklare i sådana fall, tillhandahåller lenny ofta så kallade ”dummy”-paket: tomma paket som har samma namn som det gamla paketet i etch med beroenden som gör att de nya paketen blir installerade. Dessa ”dummy”-paket anses som föråldrade paket efter uppgraderingen och kan med säkerhet tas bort.

Beskrivningarna för de flesta (men inte alla) dummy-paket indikerar deras syfte. Paketbeskrivningar för dummy-paket är inte enhetliga, dock kan deborphan med flaggan --guess vara användbar för att identifiera dem på ditt system. Observera att vissa dummy-paket inte är tänkta att tas bort efter en uppgradering men används istället för att hålla kontroll på den för närvarande tillgängliga versionen av ett program över tid.

4.11. Inför nästa utgåva av Debian

4.11.1. Stöd för ARM ABI-porteringen avslutas till förmån för ARM EABI-porteringen

Debian lenny har två olika och inkompatibla ARM-porteringar, den äldre ABI-porteringen (arm) och den nyare EABI-porteringen (armel). Debian lenny är den sista utgåvan med stöd för ABI-porteringen och framtida utgåvor kommer bara att ha stöd för ARM EABI eller armel-porteringen. Därför bör armel användas för nya installationer av lenny.

Bortsett från Netwinder så finns det ARM-installationsavbildningar för både arm och armel i lenny. Netwinder-stöd finns bara för arm och kommer att försvinna i och med att arm-porteringen försvinner efter lenny.

Läs mer på Debians wiki om ARM EABI-porteringen (armel).



[2] Den här funktionen kan inaktiveras genom att lägga till parametern panic=0 till dina uppstartparametrar.

[3] 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.

[4] Reglerna där genereras automatiskt av skriptet /etc/udev/rules.d/75_persistent-net-generator.rules för att få statiska namn för nätverksgränssnitten. Ta bort den här symboliska länken för att inaktivera den statiska enhetsnamngivningen för nätverkskort genom udev.

[5] För mer information om lilos felkoder i uppstarten se The Linux Bootdisk HOWTO.

[6] Eller så länge som ingen annan utgivning sker i den tidsperioden. Normalt sett stöds endast två stabila utgåvor åt gången.