Návod na aktualizaci Gentoo

Návod na aktualizaci Gentoo

Last modified by Jakub Jirůtka on 2013-06-01, 20:02

Tato stránka obsahuje doporučený postup pro aktualizaci Gentoo.

Příprava

  1. Zkontrolovat, zda v /etc nejsou necommitnuté změny a pokud jsou, tak vše commitnout:
    • /etc # git status
    • /etc # etckeeper commit "Before update world"
  2. Přepnout se do screenu:
    • ~ # screen
  3. Aktualizovat Portage repositář:
    • ~ # eix-sync
  4. Aktualizovat Portage balík:
    • ~ # emerge --oneshot portage
  5. Zkontrolovat seznam balíčků k aktualizaci, zda neobsahuje konflikty nebo se do něj nedostala nějaká nežádoucí závislost.
    • ~ # emerge -uDpv world

TODO doplnit řešení potíží

Vlastní aktualizace

Spustit aktualizaci a jít spát…
~ # emerge -uDav world

Po zkompilování všech balíčků

Pročíst postinst zprávy, zda neobsahují nějaká důležité upozornění.

Detekovány starší verze instalovaných knihoven

Symptom: v _postinst_ se objeví zpráva podobná této:

Old versions of installed libraries were detected on your system. …
revdep-rebuild –library '/lib64/libudev.so.0' && rm '/lib64/libudev.so.0'

Řešení:

Zkontrolovat, zda neexistují balíčky závisející na staré verzi knihovny, a příp. je překompilovat. Následně smazat starou verzi knihovny. Například:
~ # revdep-rebuild -v --library '/lib64/libudev.so.0' -- -a && rm '/lib64/libudev.so.0'

Byla nainstalovaná novější verze balíčku do nového slotu

Symptom: V seznamu balíčků k aktualizaci označeny jako „NS“ (new slot).

Řešení:

  1. Podívat se, jaké jsou v systému sloty (název modulu bývá napsaný v postinst zprávě, příp. lze najít ve výpisu eselect --help):
    • ~ # eselect <module> list
  2. Přepnout na nový slot:
    • ~ # eselect <module> set <number>
  3. Najít balíčky, které závisí na staré verzi, a příp. překompilovat:
    • ~ # revdep-rebuild -v -- -a

Pozor u PostgreSQL, po přepnutí na nový slot je většinou nutné přemigrovat databáze!

TODO nutné upřesnit a doplnit

Pročištění nepotřebných balíčků a kontrola

Následující příkaz najde balíčky, na kterých už nic nezávisí a nejsou uvedené ve world ani system:
emerge -av --depclean

Seznam balíčků navržených na odstranění je nutné pozorně pročíst, občas se tam vyskytnou balíčky, které odstranit nechceme (souvisí se změnami profilu)! Pokud emerge navrhne balíček, který chceme ponechat, tak ho přidáme do world příkazem: emerge --noreplace <package>.

Poté je nutné spustit kontrolu dynamických závislostí knihoven:
revdep-rebuild -v -- -a

Aktualizace konfiguračních souborů

  1. Commitnout všechny změny v /etc:
    • /etc # etckeeper commit "Update world"
  2. Aktualizovat konfigurační soubory:
    • ~ # etc-update
  3. Commitnout všechny změny v /etc:
    • /etc # etckeeper commit "Merge config files after world update"
Created by Jakub Jirůtka on 2013-05-18, 12:02

My Recent Modifications


This wiki is licensed under a Creative Commons BY-SA 3.0 license
XWiki Enterprise 5.4.1 - Documentation