Uaktualnianie Gentoo do wersji 1.4
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
|
Listing 2.7: Zmiana profilu gcc |
# gcc-config --list-profiles
# gcc-config i686-pc-linux-gnu-3.2.2
|
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.
|
Zawartość tego dokumentu jest rozpowszechniana na podstawie licencji Creative Commons -
Attribution / Share Alike.
|