Uppgradera Gentoo

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Upgrading Gentoo and the translation is 49% complete.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎português do Brasil • ‎svenska • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어

Det här dokumentet förklarar hur nya Gentoo-utgåvor påverkar befintliga installationer.

Uppgraderingar

Filosofi

I Gentoo-världen skiljer sig konceptet att uppgradera från resten av Linux-världen. Det är ett välkänt faktum att Gentoo aldrig kom i kontakt med det "klassiska" sättet man uppgraderade mjukvara på: vänta på en ny utgåva, ladda ner det, bränn den på en CD-skiva och därefter följ uppgraderingsinstruktionerna.

Gentoo-användare vet likväl att denna process är ytterst frustrerande för en power-user som vill använda den absolut nyaste mjukvaran som finns tillgänglig. Power-users från andra distributioner känner förmodligen samma sak, med tanke på populariteten bland verktyg som apt eller apt-rpm, som möjliggör för snabba och frekventa uppdateringar. Hur som helst finns det ingen mer lämpad distribution än Gentoo när det kommer till att tilfredsställa de här krävande användare. Gentoo var från början utformad kring konceptet av snabba, inkrementella uppdateringar.

Helst installerar användare mjukvara en gång och krånglar aldrig med nya utgåvor: följ bara instruktionerna under En introduktion till Portage i Gentoo-manualen som förklarar hur man håller ett system uppdaterat. Även om det vanligtvis går på det sättet, kan ändringar i kärnsystemet kräva att uppdateringar görs för hand.

Utgåvor och profiler

En återkommande fråga gällande processen om Gentoo-utgåvor är: "Varför släppa ut nya utgåvor ofta, om de inte är avsedda att låta användare uppdatera programvara?" Anledningarna är många:

  • En ny utgåva betyder nya installations-cd-skivor med buggfixar och fler funktioner
  • En ny utgåva kommer med uppdaterade GRP-paket, så att användare som väljer det "snabba sättet" att installera (stage3 + förkompilerade program) hamnar i ett system som inte är föråldrat
  • Slutligen, kan en ny utgåva emellertid implementera nya funktioner som är oförenliga med tidigare utgåvor

När en utgåva inkluderar nya, oförenliga funktioner, eller kommer med en uppsättning av djupt inbäddade kärnpaket och inställningar som kraftigt förändrar systemets uppträdande, släpper vi en ny profil.

En profil är en uppsättning av konfigurationsfiler som förvaras i underkataloger i /usr/portage/profiles, och som beskriver saker som t.ex. ebuild som anses vara system-paket, standard USE-flaggor, standard-kartläggningen av virtuella paket, och arkitekturen på vilket systemet körs på.

Profilen som används avgörs av den symboliska länken /etc/portage/make.profile, som pekar på en underkatalog av /usr/portage/profiles som håller profilfilerna. Till exempel, x86-standardprofilen kan hittas under /usr/portage/profiles/default/linux/x86/13.0. Filerna i de överordnade katalogerna är också en del av profilen (och delas således av olika underprofiler). Detta är varför vi kallar de för kaskadprofiler.

Profiler som föråldrats av nya förvaras i /usr/portage/profiles, tillsammans med de aktuella, men de är markerad som utfasade. När det händer så placeras en fil med namnet deprecated i profilkatalogen. Filens innehåll är namnet av profilen som bör "uppgraderas till"; Portage använder den här informationen för att automatiskt varna administratörer när de borde byta till en nyare profil.

Det kan finnas flera orsaker till varför nya profiler skapas: en ny utgåva av kärnpaket (exempelvis sys-apps/baselayout, sys-devel/gcc eller sys-libs/glibc) som är oförenliga med tidigare versioner, USE-flaggor eller virtuella kartläggningar, eller kanske ändringar i systemomfattande inställningar.

Håll dig uppdaterad om nya utgåvor

Utgåvor utan profiländringar

Om en ny Gentoo-utgåva inte omfattar en ny profil, låtsas som om inget hände. :)

När de installerade paketen uppgraderas i enlighet med Gentoo-manualen, kommer systemet att vara identiskt med det som installerats med den nya utgåvan.

Utgåvor med profiländringar

Om en utgåva (exempelvis 13.0 för x86) inför en ny profil, finns alternativet att migrera till den nya profilen.

I allmänhet är sådana migrationer inte obligatoriska, och man kan fortsätta använda den gamla profilen - se bara till att uppgradera paketen i enlighet med Gentoo-manualen.

Dock rekommenderar Gentoo starkt att man uppdaterar profilen om den skulle utfasas. Om detta sker, betyder det att Gentoo-utvecklare inte längre tänker stödja den.

När en migration är självfallen, så måste uppgraderingen ske för hand. Tillvägagångssättet kan variera märkbart från utgåva till utgåva; det beror helt på hur djupt inbäddade förändringarna i den nya profilutgåvan är.

I det enklaste fallet behöver man endast ändra symboliska länken /etc/portage/make.profile, i det värsta fallet måste man omkompilera hela systemet från början. Migreringen framhålls vanligtvis i utgivningsnoterna. Väsentliga instruktioner täcks i den här guiden.

Profiler som stöds

För att se en lista av stödjade profiler, kör eselect (som kan hämtas genom emerge eselect) enligt följande:

root #eselect profile list

Uppgradera från äldre system

En del system är för gamla för att enbart ändra profil. Nyare profiler kan behöva senare versioner av Portage eller andra programvaror som inte längre kan installeras på grund av att paketdefinitioner för de äldre mjukvaruversioner in längre finns tillgängliga.

Om så är fallet borde systemet motta äldre Portage-träd-snapshots och uppgradera åtminstone Portage (men helst alla program i systemuppsättningen), genom att stegvis förnya Portage-träd-snapshot datumet tills det är tillräckligt nytt för att instruktionerna för profilbyte kan följas igen:

root #mv /usr/portage /usr/portage.latest
root #tar xjpf /path/to/portage-20090720.tar.bz2 -C /usr
root #emerge -u portage

Äldre snapshots är oftast fortfarande tillgängliga på en del mirrors på Internet, eller på särskillda ställen som tillhandahålls för just detta syfte. Vi råder om att verifiera filernas integritet för att försäkra om att de inte har blivit manipulerade:

root #gpg --verify portage-20090720.tar.bz2.gpgsig portage-20090720.tar.bz2

Även om signeringsnycklarna har gått ut, borde signaturen fortfarande vara okej.

Uppgradera från (till) äldre system

Ibland är system för gamla för att uppgradera på ett enkelt sätt. Mellanversioner av programvara (exempelvis Portage) som inte längre finns tillgängliga kan behövas, vilket kräver att man uppdaterar Portage-trädet stegvis (till exempel stegvisa träduppdateringar med 3- till 4-månaders mellanrum).

För att uppgradera sådana system kan en ny stage3 användas. Instruktioner ges i avsnittet Uppdatera gamla system.

Instruktioner för profiluppdatering

Allmänna instruktioner

Important
Säkerställ att Gentoo-arkivet (Portage-trädet) har synkroniserats innan du utför några profiländringar.

Först, kör emerge eselect. eselect-verktyget gör det enkelt att överskåda och välja profiler, utan att man behöver skapa eller radera symboliska länkar för hand.

root #eselect profile list
root #eselect profile set <siffra>

Det går också att manuellt byta mellan profiler:

root #rm /etc/portage/make.profile
root #cd /etc/portage
root #ln -s ../../usr/portage/profiles/<vald profil> make.profile
Note
Det finns desktop och server underprofiler för de flesta arkitekturerna. Granska dessa försiktigt, eftersom de kan uppfylla kraven bättre än de extremt minimala standardprofilerna.
Note
Developer-underprofilen är specifikt för Gentoo Linux-utveckling. Den används inte för att sätta upp allmänna utvecklingsmiljöer.

Uppdatera till 2008.0, 2007.0, eller 2006.1

Tänk på att om en uppgradernig från dessa profiler är valda, förväntar de sig att systemet är inställt till en Unicode locale som standard; specifikt att UNICODE="yes" sätts i /etc/rc.conf. För att detta ska fungera måste ett Unicode locale skapas för systemet. Vänligen läs UTF-8 artikeln för hur man skapar den rätta locale.

Annars, om en locale inte är att föredra, måste man specifiera UNICODE="no" i /etc/rc.conf, och omkompilera sys-apps/baselayout (eller vänta tills nästa baselayout-uppdatering) med -unicode USE-flaggan. Detta kan åstadkommas genom att:


root #echo "sys-apps/baselayout -unicode" >> /etc/portage/package.use
root #emerge --ask sys-apps/baselayout
  • eller ställa in det globalt för alla paket genom att lägga till det i USE-variablen i /etc/portage/make.conf:
FILE /etc/portage/make.confStäng av Unicode-stöd globalt
USE="-unicode"
root #emerge --ask sys-apps/baselayout
Note
Användare som uppgraderar till en 2007.0-profil på SPARC-arkitekturen måste följa Uppgradera GCC-guiden, eftersom gcc-4 är standardkompilatorn.

Till sist, följ de allmänna uppgraderingsinstruktionerna för att uppdatera profilen.

Uppdatera till 2006.0

För att byta till 2006.0-profilen, peka den symboliska länken /etc/portage/make.profile till den nya platsen. Se till att Portage är uppdaterad innan du ändrar profilen.

root #rm /etc/portage/make.profile
root #ln -s ../usr/portage/profiles/<vald profil> /etc/portage/make.profile

alpha - de som använder en 2.4-kärna eller som inte vill använda NPTL borde använda default-linux/alpha/no-nptl-profilen. Mer information finns tillgänglig i alpha utgivningsnoter.

ppc - The merge of the ppc32 and ppc64 profiles went forward. The ppc32 profile has been changed in a way that offers a minimalistic generic profile for all purposes, located in default-linux/ppc/ppc32. The release-dependent profile is optimized for desktop-usage and located in default-linux/ppc/ppc32/2006.0. There are some subprofiles available for G3 and G4 processors, and G3/Pegasos and G4/Pegasos for the Pegasos Open Desktop Workstation. Make sure to choose the correct subprofile for the system when migrating to a 2006.0 profile.

sparc - Upgrading to the 2.4 -kernel based 2006.0/2.4 profile requires manual user intervention (unmerging Java stuff) and an emerge -e @world because of the GCC upgrade. Upgrading to the 2.6 -kernel based 2006.0 profile which is not considered stable also requires an entry in /etc/portage/package.unmask to unmask a 2.6 version of sys-kernel/gentoo-sources and a full rebuild.

All other archs - There are no fundamental changes in this profile. No specific action needs to be performed.

Updating to 2005.1

To switch to the 2005.1 profile, point the /etc/portage/make.profile symlink to the new location. Make sure Portage is updated before changing the profile.

root #rm /etc/portage/make.profile
root #ln -s ../usr/portage/profiles/<selected profile> /etc/portage/make.profile

All archs - There are no fundamental changes in this profile. No specific action needs to be performed.

ppc - With the 2005.1 release, the ppc and ppc64 profiles were merged and a number of subprofiles for specific subarchitectures were created. Make sure to choose the correct subprofile for the system when migrating to a 2005.1 profile.

Updating to 2005.0

With the introduction of 2005.0, several architectures have decided to define additional profiles. Make sure to read the description of said profiles before deciding to migrate to one of them. Most architectures now also default to the 2.6 kernel tree where 2.4 was chosen previously.

Some architectures require a bit more actions to be completed in order to convert from one profile to another. If that is the case, the step-by-step guides are linked from the table.

Profile Description Specific upgrade guide
default-linux/alpha/2005.0 Default Alpha 2005.0 profile for 2.6 kernels
default-linux/alpha/2005.0/2.4 Alpha 2005.0 profile for 2.4 kernels
default-linux/amd64/2005.0 Default AMD64 2005.0 profile for 2.6 kernels
default-linux/amd64/2005.0/no-multilib AMD64 2005.0 profile for multilib-disabled system installations
default-linux/arm/2005.0 Default ARM 2005.0 profile for 2.6 kernels
default-linux/hppa/2005.0 Default HPPA 2005.0 profile for 2.6 kernels
default-linux/hppa/2005.0/2.4 HPPA 2005.0 profile for 2.4 kernels
default-linux/mips/2005.0 Default MIPS 2005.0 profile
default-linux/mips/cobalt/2005.0 Cobalt specific MIPS 2005.0 profile
default-linux/mips/mips64/n32/2005.0 2005.0 profile for n32-supporting MIPS platforms
default-linux/mips/mips64/ip28/2005.0 Indigo2 Impact specific 64-bit 2005.0 profile
default-linux/mips/mips64/2005.0 64-bit MIPS 2005.0 profile
default-linux/ppc/2005.0 Default PPC 2005.0 profile for 2.6 kernels
default-linux/ppc64/2005.0 Default PPC64 2005.0 profile for 2.6 kernels
default-linux/s390/2005.0 Default S390 2005.0 profile
default-linux/sparc/sparc32/2005.0 Default SPARC 32-bit 2005.0 profile
default-linux/sparc/sparc64/2005.0 Default SPARC 64-bit 2005.0 profile
default-linux/x86/2005.0 Default x86 2005.0 profile for 2.6 kernels
default-linux/x86/2005.0/2.4 x86 2005.0 profile for 2.4 kernels

To switch to the selected profile, point the /etc/portage/make.profile symlink to the new location. Make sure Portage is updated before changing the profile!

root #rm /etc/portage/make.profile
root #ln -s ../usr/portage/profiles/<selected profile> /etc/portage/make.profile

When an upgrade is planned from a Linux 2.4-based system to a 2.6 kernel, make sure to read our Gentoo Linux 2.6 Migration Guide.

Updating to 2004.3

With the introduction of the 2004.3 profiles, users are not going to see huge modifications of their systems (see below for details). However, Gentoo developers decided to push out this new profile and to deprecate quite a few of the old ones to speed up the adoption of stacked profiles, that is, the profiles that follow the new layout of the /usr/portage/profiles directory, for instance /usr/portage/profiles/default-linux/x86/2004.3 (supported by Portage 2.0.51 or later).

To switch to the 2004.3 profile, point the /etc/portage/make.profile symlink to the new location:

Warning
Don't forget to upgrade Portage before changing the profile!
root #rm /etc/portage/make.profile
root #ln -s ../usr/portage/profiles/default-linux/<arch>/2004.3 /etc/portage/make.profile

All archs - As said above, there are no big changes introduced in this profile. However, it should be noted that sys-apps/slocate (deprecated) and net-misc/dhcpcd are no longer considered system packages. This means that during a emerge --depclean, Portage will try to remove them from the system. If any of those packages are needed, add them to /var/lib/portage/world after the profile switch, or manually emerge them.

ppc - sys-fs/udev is now the default instead of sys-fs/devfs (deprecated) for newly installed machines. This has no effect on already installed machines, though.

Updating Portage to support cascading profiles

Although this section does not seem to integrate well in this upgrading guide, it is quite important. Any profile listed above this section requires a Portage version that supports cascading profiles. However, some obsoleted profiles don't allow the user to upgrade Portage or the user is using a profile that isn't available anymore - any attempt to upgrade Portage will result in a failure.

To work around this problem, users can set a temporary symbolic link to the obsolete profile, allowing them to upgrade their Portage after which they can continue with the upgrade procedure set forth in this guide. Please substitute <arch> with the respective system architecture:

root #rm /etc/portage/make.profile
root #cd /etc/portage
root #ln -sf ../usr/portage/profiles/obsolete/<arch> make.profile
root #emerge -n '>=sys-apps/portage-2.0.51'

Updating to 2004.2

To switch to the 2004.2 profile, point the /etc/portage/make.profile symlink to the new location:

Warning
Don't forget to upgrade Portage before changing the profile!
root #rm /etc/portage/make.profile
root #ln -s ../usr/portage/profiles/default-linux/<arch>/2004.2 /etc/portage/make.profile

x86 - This profile changes the default X11 implementation from x11-base/xfree (deprecated) to x11-base/xorg-x11. This change only touches the default value, and is only relevant for those who have not installed an X server yet. If one is already installed, then it will not affect the system at all; users are free to switch from one X server to the other exactly as before.

amd64 - There are no fundamental changes from previous profiles, no specific action needs to be performed.

Updating to 2004.0

To switch to the 2004.0 profile, point the /etc/portage/make.profile symlink to the new location:

root #rm /etc/portage/make.profile
root #ln -s ../usr/portage/profiles/default-<arch>-2004.0 /etc/portage/make.profile

All archs - There are no fundamental changes from previous profiles, no specific action needs to be performed.

Updating from profiles older than 1.4 to 1.4

The instructions for this upgrade are quite complex, and can be found here.

Updating old systems

Idea of the upgrade

The idea with this upgrade approach is that we create an intermediate build chroot in which a recent stage3 is extracted. Then, using the tools available in the stage3 chroot we upgrade the packages on the live system.

Warning
The commands below might be incomplete and serve more as a guidance rather than work instructions. Unless the approach is clear, it might be faster to just backup the important files and re-install Gentoo.

Preparing the intermediate build chroot

Let's first create the intermediate build chroot location, say /mnt/build, and extract a recent stage3 archive into it.

root #mkdir -p /mnt/build
root #tar -xf /path/to/stage3-somearch-somedate.tar.bz2 -C /mnt/build
root #mount --rbind /dev /mnt/build/dev
root #mount --rbind /proc /mnt/build/proc
root #mount --rbind /sys /mnt/build/sys

Next, we create a mount point inside this chroot environment, on which we then bind-mount the live (old) environment.

root #mkdir -p /mnt/build/mnt/host
root #mount --rbind / /mnt/build/mnt/host

So now the live (old) system is also reachable within /mnt/build/mnt/host. This will allow us to reach the live (old) system and update the packages even when chrooted inside the intermediate build chroot.

Network, chroot, and update

The new install needs to access the network, so copy over the network related information:

root #cp -L /etc/resolv.conf /mnt/build/etc/

Now chroot into the intermediate build location, and start updating vital packages on the live system, until the live system can be updated from within the live system (rather than through the intermediate build chroot):

root #chroot /mnt/build
root #source /etc/profile
root #export PS1="(chroot) ${PS1}"
(chroot) root #emerge --sync


Now start building packages into the (old) live system. If Portage is old or missing, it is a good idea to start with that:

(chroot) root #emerge --root=/mnt/host --config-root=/mnt/host --verbose --oneshot sys-apps/portage

Keep this chrooted session open and try to update the (old) live system. When failures occur, use this chrooted session to update packages using the build tools available in the intermediate build chroot (which includes recent sys-libs/glibc, sys-devel/gcc, etc.). Tools can be added as needed to the build chroot.

Important
Do not forget to add --root=/mnt/host --config-root=/mnt/host to all emerge commands executed within the chroot! Otherwise the chroot itself is updated rather than the (old) live system.

For some installations it may be necessary to update configuration files in order to install new software. Make the changes in the chroot environment.

To get the system fully up-to-date before exiting the root, build the @world set (all packages) into the (old) live system:

(chroot) root #emerge --root=/mnt/host --config-root=/mnt/host --update --newuse --deep --ask @world

Once finished the system should now be up to date!


This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Gregorio Guidi, Chris Gianelloni, Joshua Saddler
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.