Hlavní navigace

Jak upgradovat glibc na verzi 2.2 v RH 6.2

Michal Krause

Jakub Skopal nám poslal svůj postup, jak upgradovat glibc v Red Hat Linuxu 6.2 na verzi 2.2.

Celý proces sestává z několik kroků:

  1. Upgrade RPM

    Prakticky všechny balíčky pro glibc 2.2 jsou již baleny v RPM verze 4.0. Standardní Red Hat 6.2 podporu rpm verze 4.0 neobsahuje. Je tedy nejprve nutné ji nainstalovat. Potřebujeme RPM manager ve verzi minimálně 3.0.5. Zároveň ho však potřebujeme zabalený v balíčku verze 3.0. Takový se dá sehnat například zde.
    Pak už stačí jen provést

        rpm -U rpm-3.0.5-7.5x.i386.rpm
    

    Pokud se všechno povedlo, což by mělo, můžete nyní do systému bez problémů instalovat rpm 4.0 balíčky.

  2. Potřebné balíky

    Zvolil jsem si na rpmfind.net distribuci RawHide 1.0. Je to vývojová distribuce, kterou produkuje přímo Red Hat, a na rpmfind k ní mám velmi dobrý přístup. Je pochopitelně možné použít jiné balíky.

    Co tedy budeme potřebovat? Od glibc verze 2.2 již nejsou přímo v glibc obsaženy knihovny libdb.so.*, na kterých závisí spousta programů v systému. Potřebujeme tedy jejich samostatné balíčky. Já jsem použil:

        db1-1.85-5.i386.rpm
        db2-2.4.14-5.i386.rpm
        db3-3.1.17-5.i386.rpm
    

    Dají se najít například na zde.

    Dále budeme potřebovat samotnou glibc 2.2:

        glibc-2.2.2-7.i386.rpm
        glibc-common-2.2.2-7.i386.rpm
    

    k nalezení tamtéž

    Nakonec budeme potřebovat nový package manager, rpm-4.0. Například:

        rpm-4.0.2-7x.i386.rpm
    

    To bude asi tak vše. Doporučuji všechno stáhnout do samostatného adresáře. Nadále budu předpokládat, že jste tak učinili. Pokud jste vše stáhli podle tohoto návodu, máte nyní kolem 13MB rpm balíčků.

  3. 3. řešení závislostí

    Upgrade glibc zapříčiní změnu v celém systému. Možná bude potřeba vyřešit další závislosti. Jaké, to poznáme pokud spustíme příkaz

    rpm -U –test *

    (předpokládám, že jste v onom adresáři, který jste si před chvílí
    založili). Vyžadované knihovny lze s výhodou najít na rpmfind.net.
    Například:

        error: failed dependencies:
        libbz2.so.1   is needed by rpm-4.0.2-7x
    

    značí, že budeme potřebovat ještě libbz2.so.1. Na­lezneme ho například v balíku

        bzip2-1.0.1-3.i386.rpm
    

    přidáme ho do našeho velkého adresáře a zkusíme znovu otestovat závislosti. V ideálním případě by měly původně nesplněné závislosti zmizet a my bychom měli pokročit dále. Někdy tomu tak není. V tom případě nastupují

  4. Brutálnější metody

    Klasickým příkladem nevýhodných závislostí je právě balíček bzip2–1.0.1–3.i386.rpm. Při upgradu smaže svého předchůdce, na kterém závisí jiný software. Při testování závislosti na upgrade napíše

        error: failed dependencies:
        libbz2.so.0 is needed by passwd-0.64.1-1
    

    Jsou dvě možnosti. Buďto upgradovat i passwd, které bude záviset i na dalších balících, a tak pokračovat do aleluja, nebo mít prostě v systému knihovny obě.
    V případě libbz2 to není žádná tragédie. Můžeme také narazit na balík, který upgradovat nechceme nebo nemůžeme. Pokud tedy chceme mít v systému obě knihovny, můžeme samostatně nainstalovat

        rpm -i --nodeps bzip2-1.0.1-3.i386.rpm
    

    V tuto chvíli přestane bzip2 fungovat. Je závislý na knihovnách, které prostě v systému zatím nejsou.

  5. Instalace

    Pokud už testování závislosti proběhne bez jakýchkoliv hlášek a problémů, je na čase připravit si smyčku, nadechnout se a sputit

        rpm -U -h *
    

    Poté, co se tento příkaz vrátí, je systém v dost polovičatém stavu.
    Programy, které běží, jsou stále slinkovány s glibc 2.1. Nové programu
    už ne. Měli byste vyzkoušet funkčnost základních funkcí systému před
    tím, než rebootnete. Mě se například nešlo vůbec k počítači přihlásit.
    Chce to killnout všechny login procesy, inet je znovu nastartuje, ale
    tentokrát již budou dynamicky slinkovány s novou verzí glibc. Obecně je
    dobré vyzkoušet funkčnost co nejvíce věcí před tím, než člověk přikročí
    k restartu počítače.

  6. Závěr

    Není to tak drastické, jak to vypadá. Upgradoval jsem již tři počítače a s žádným z nich nebyl problém. Občas je otravné tahat tu spoustu balíků, které je třeba upgradovat.


Tak, a to je vše. Je nutné podotknout, že upgrade není zcela bez rizika a pokud si na něj netroufáte, je možná jednodušší pořídit si novou verzi distribuce, která již glibc 2.2 obsahuje, a použít funkci upgrade instalačního programu.

Našli jste v článku chybu?