Gentoo Logo

Uaktualnianie Gentoo do wersji 1.4

Spis treści:

1.  Przed rozpoczęciem

Przygotowania

Jakiekolwiek większe uaktualnienie rdzenia systemu Gentoo może przynieść nieprzewidziane problemy. Rozwaga nakazuje zatem utworzenie kopii zapasowej wszystkich ważnych danych. Jeżeli to możliwe, na ten proces należy zarezerwować sobie większą ilość wolnego czasu, nie trzeba wtedy działać pod presją. Całe oprogramowanie zostanie skompilowane ponownie.

Inne możliwości

Nie jest to jedyny sposób na uaktualnienie Gentoo. Można zainstalować Gentoo 1.4 na osobnej partycji i ponownie użyć niektórych plików konfiguracyjnych ze starego systemu. Metoda ta ma tę zaletę, że można zawsze wrócić do starego systemu gdyby coś poszło nie tak.

Ogólne uwagi

Gdy listing podpowiada uruchomienie komendy emerge, zawsze dobrym pomysłem jest przeprowadzenie testu i uruchomienie tego samego polecenia z opcją -p lub --pretend, aby upewnić się, że zostanie zrobione to czego się spodziewamy.

2.  Uaktualnianie systemu

Uaktualnianie portage do najnowszej wersji

Część aktualnej składni plików ebuild jest nieczytelna dla starszych wersji Portage. Jeżeli posiadana wersja jest wcześniejsza niż 2.0.44, należy dokonać uaktualnienia.

Listing 2.1: Uaktualnianie portage

# emerge --sync
# emerge -u portage

Uwaga: Jeżeli posiadana wersja Portage jest bardzo stara, może pojawić się błąd o treści: "unscriptable object". W pliku /usr/portage/sys-apps/portage/files/README.RESCUE zostało opisane co należy w takim przypadku zrobić. W tym momencie Portage powinno być już aktualne.

Przygotowanie GCC do współistnienia z innymi wersjami

Podczas uaktualniania systemu zostanie zainstalowana nowsza wersja kompilatora GCC.Wersje GCC starsze niż 2.95.3-r8 nie zostały zaprojektowane w sposób umożliwiający zainstalowanie więcej niż jednej wersji na tym samym systemie. W związku z tym najpierw musi zostać ono uaktualnione co najmniej do wersji 2.95.3-r8. Pozytywnym efektem ubocznym będzie zainstalowanie pakietu gcc-config, który służy do przełączania się pomiędzy różnymi wersjami GCC.

Listing 2.2: Aktualizacja gcc

# emerge -u gcc

Poniższe polecenia sprawdzi czy gcc-config działa poprawnie:

Listing 2.3: Pozyskiwanie bieżącego profilu gcc

# gcc-config --get-current-profile

Powinno ono zwrócić i686-pc-linux-gnu-2.95.3 na większości systemów x86. Na starszych systemach może pojawić się i586-pc-linux-gnu-2.95.3.

Instalacja GCC 3

Teraz można przystąpić do instalacji nowszej wersji GCC bez obawy o uszkodzenie aktualnego kompilatora. W katalogu /usr/portage/sys-devel/gcc należy poszukać ebuildu GCC w wersji co najmniej 3.2.1-r6. Należy wybrać najwyższą wersję oznaczoną jako stabilną (dla danej architektury). Aby sprawdzić czy dany ebuild jest uznany za stabilny należy sprawdzić linię KEYWORDS w pliku. Jeżeli dla sprawdzanej architektury nie jest ona poprzedzona znakiem ~ to ten ebuild został uznany za stabilny. W dalszej części tekstu zakładamy, że wersja 3.2.2 jest najwyższą stabilną wersją. Najpierw należy usunąć zależność pakietu gcc od glibc.

W tym celu należy otworzyć plik /usr/portage/sys-devel/gcc/gcc-3.2.2.ebuild i poszukać linii zawierającej DEPEND. Z zapisanych zależności należy usunąć glibc i zapisać ebuild.

Listing 2.4: Edycja pliku gcc-3.2.2.ebuild

# vim /usr/portage/sys-devel/gcc/gcc-3.2.2.ebuild

Instalacja najnowszej wersji GCC w systemie:

Listing 2.5: Instalowanie najnowszego gcc

# USE="-java" emerge /usr/portage/sys-devel/gcc/gcc-3.2.2.ebuild

Zmiana profili

Kolejnym krokiem jest zmiana dwóch zestawów profili: profilu gcc-config i profilu Portage.

Listing 2.6: Zmiana profilu portage

# cd /etc
# rm make.profile
# ln -s ../usr/portage/profiles/default-x86-1.4 make.profile (Należy zastąpić "x86" używaną architekturą)

Listing 2.7: Zmiana profilu gcc

# gcc-config --list-profiles (Należy wybrać wersję instalowaną poprzednio)
# gcc-config i686-pc-linux-gnu-3.2.2 (i686-pc-linux-gnu-3.2.2 należy zastąpić wersją wybraną w poprzednim kroku.)

Rekompilacja podstawowego zestawu narzędzi

Podstawowy zestaw narzędzi (binutils, as, ld, itd.) musi zostać ponownie zbudowany przy użyciu nowego kompilatora. Jeżeli całość zadania wykonywano w jednej instancji powłoki, należy wykonać polecenie source /etc/profile zgodnie z instrukcjami przy instalowaniu pakietu gcc-config. Następnie należy instalować glibc i binutils:

Listing 2.8: Ponowne kompilowanie podstawowych pakietów

# emerge glibc binutils

Ostrzeżenie: Możliwe, że glibc będzie uaktualniane z wersji 2.2 lub starszej do 2.3. Po procesie uaktualniania binutils nie należy instalować starszej wersji glibc, ponieważ każdy program skompilowany z glibc 2.3 przestanie działać, może to również doprowadzić do niestabilności systemu.

Rekompilowanie oprogramowania przy pomocy nowego kompilatora

W tym momencie można już skompilować ponownie wszystkie programy w systemie za pomocą nowego kompilatora:

Listing 2.9: Przebudowa wszystkich programów

# emerge -e world

Uwaga: Jeżeli komenda zawiedzie z powodu błędów, można użyć emerge --resume i kontynuować proces od miejsca gdzie się on zakończył. Do skorzystania z tej możliwości wymagane jest Portage w wersji 2.0.47 lub późniejszej.



Drukuj

Zaktualizowano 2 lipca 2005

Podsumowanie: Opis uaktualniania starych instalacji Gentoo do wersji 1.4.

Robert Coie
Autor

Jon Portnoy
Redaktor

Łukasz Czyżykowski
Tłumacz

Donate to support our development efforts.

Support OSL

Support OSL

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

Global Netoptex Inc.

Global Netoptex Inc.

Linux World Expo

Linux World Expo

Copyright 2001-2008 Gentoo Foundation, Inc. Questions, Comments? Contact us.