<?xml version="1.0" encoding="ISO-8859-2"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" 
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" []>

<book id="Glibc-Install-Mini-Howto" lang="hu">  

<bookinfo>
   <title>Glibc telepítés HOGYAN</title>
   <author>
      <firstname>Kai</firstname>
      <surname>Schlachter</surname>
      <affiliation><address>
<email>linux (at) murphyslantech.de</email>
      </address></affiliation>
   </author>
   <pubdate>2004.03.19</pubdate> 
   <revhistory>
      <revision>
    <revnumber>1.01</revnumber>
    <date>2004.03.19</date>
    <authorinitials>KC</authorinitials>
    <revremark>Első kiadás, az LDP által átnézve.</revremark>
      </revision>
   </revhistory>
</bookinfo>
  
<chapter id="preface">
<title>Előszó</title>

<sect1 id="copyright">
<title>Szerzői jog</title>
<para>Copyright (c) 2004 by Kai Schlachter</para>
<para>Ez a dokumentum másolható, terjeszthető és/vagy módosító a Free Software Foundation (Szabad Szoftver Alapítvány) által kiadott GNU Free Documentation License (Szabad Dokumentációs Licenc) 1.2 vagy későbbi változatának megfelelően, változatlan részek, első és hátsó borítószövegek borítószövegek nélkül. A licenc egy példányát megtalálod a következő címen:
<ulink url="http://www.gnu.org/licenses/fdl.html" />.</para>
</sect1>

<sect1 id="history">
<title>Verziótörténet</title>
<para>
<itemizedlist>
<listitem><para>v1.01: Néhány rossz helyen lévő idézőjel korrigálása.</para></listitem>
</itemizedlist>
</para>
</sect1>

<sect1 id="thanks">
<title>Köszönetnyilvánítás</title>
<para>Különösen szeretném megköszönni Nico Schmoiglnak, hogy segített helyreállítani az összeomlott rendszeremet, miután make install-al telepítettem a glibc-t, miközben a rendszer teljesen funkcionált. Főként emiatt írtam ezt a HOGYANt.</para>
<para>Ugyancsak köszönöm mindenkinek, akik segítettek munka közben a HOGYAN megfelelő formába önteni, a sajtóhibákat megkeresni stb.</para>
</sect1>

<sect1>
    <title>Magyar fordítás</title>
    <para> A magyar fordítást <ulink url="mailto: Dios.Gergely[kukac]stud.u-szeged[pont]hu">Diós Gergely</ulink> készítette (2004.06.09). A lektorálást <ulink url="mailto: dacas[kukac]freemail[pont]hu">Daczi László</ulink> végezte el (2004.06.16). A dokumentum legfrissebb változata megtalálható a <ulink url="http://tldp.fsf.hu/">Magyar Linux Dokumentációs Projekt</ulink> honlapján. A dokumentum fordítása a <ulink url="http://www.u-szeged.hu/">Szegedi Tudományegyetem</ulink> <ulink url="http://www.inf.u-szeged.hu/~havasi/opensource/">nyílt forráskódú szoftverfejlesztés speciálkollégium</ulink>ának segítségével valósult meg.</para>
  </sect1>

</chapter>

<chapter id="introduction">
<title>Bevezetés</title>
<para>Ebben a HOGYANban kifejtem, hogyan telepítsd a <productname>glibc</productname> új változatát a rendszeredre.</para>
<para>Azért írtam ezt a kézikönyvet, hogy a megkíméljek másokat azoktól a problémáktól, amelyekkel én is találkoztam.</para>
<para>Ez a HOGYAN egyfajta irányelv beállításokból és módszerekből, amelyek nálam működtek, ezért a dokumentum tartalmáért semmilyen felelősséget nem vállalok. Saját felelősségedre használd ezeket a példákat, elveket. Erősen ajánlott, hogy a nagyobb telepítések előtt, illetve bizonyos időközönként is készíts biztonsági mentést rendszeredről. </para>
<para>Ha bármilyen javaslatod van a HOGYANnal kapcsolatban, vagy találtál egy bugot valamelyik disztribúcióban és javítását, küldj egy e-mail-t a
<email>linux_at_murphyslantech.de</email> címre.</para>
<sect1 id="why">
<title>Miért?</title>
<para>
Jó kérdés. Miért is kéne egy újabb glibc-t feltelepíteni? Nos, több oka is lehet :
<itemizedlist>
<listitem><para>fejlesztő vagy és szükséged lenne az újabb funkciókra
</para></listitem>
<listitem><para>le akarsz fordítani (compile) egy újabb programot, ami az újabb programkönyvtárat (library) használja
</para></listitem>
<listitem><para>szereted az új változatban lévő hibák okozta izgalmakat ;-)
</para></listitem>
</itemizedlist>
</para>
</sect1>

<sect1 id="what">
<title>Mit?</title>
<para>
Ha még nem tudod mi is az a glibc, ne aggódj! Amikor először voltak ilyen problémáim egy program fordítása során, csak annyit tudtam, hogy a glibc változatom nem megfelelő a fordításhoz. Most, hogy már többet tudok, megpróbálom egyszerűen elmagyarázni, hogy tulajdonképpen mit is csinál a glibc.</para>  
<para>A glibc csomag egy C nyelvben írt programkönyvtárat tartalmaz. A programkönyvtárak rendkívül hasznosak programírás során, ahelyett, hogy rögtönözve kellene írnunk eljárást olyan egyszerűbb műveletek számára, mint például egy szám gyökének meghatározása, sok ilyen és hasonló függvény le van tárolva egy külön fájlban &mdash; az úgynevezett programkönyvtárban. Ha egy programkönyvtár újabb változata megjelenik, gyakran tartalmaz újabb függvényeket, vagy sokkal hatékonyabb algoritmusokat használ már meglévő függvényekben és így tovább.</para>
<para>Ez az oka annak, amiért néhány program panaszkodik a régebbi változatú glibc miatt, az ugyanis nem tartalmazza az összes függvényt, ami szükséges a program futásához.</para>
<para>Tudom, ez így technikailag nem pontos magyarázat, de a lényeget megértheted belőle.</para>
</sect1>
</chapter>
<chapter id="preparations">
<title>Előkészületek</title>
<para>
A glibc telepítése nem könnyű feladat, ezért sok dolgot előre meg kell csinálnod, legfőképp arra az esetre, ha valami tönkremegy. (Mint ahogy velem is történt az első glibc telepítésemkor, mivel nem tettem semmi előkészületet.)</para>

<!-- talán egy todo lisát, hogy mit fogunk csinálni -->

<sect1 id="stuff-you-will-need">
<title>Szükséges dolgok</title>
<para>Alapvetően két dologra lesz szükséged: már meglévő szoftverekre (például előre telepített programok), valamint pár program forráskódjára.</para>
<sect2 id="software-you-will-need">
<title>Szükséges szoftverek</title>
<para>
<itemizedlist>
<listitem><para>egy működő <productname>gcc</productname></para></listitem>
<listitem><para>a <productname>glibc</productname> egy régebbi változata ;-)</para></listitem>
<listitem><para><productname>GNU-binutils</productname></para></listitem>
<listitem><para><productname>GNU-make</productname></para></listitem>
<listitem><para>a <productname>GNU-core-utils</productname></para></listitem>
<listitem><para><productname>GNU-tar</productname></para></listitem>
<listitem><para><productname>bash</productname>, vagy valami más shell</para></listitem>
<listitem><para>jó ha van: <productname>Midnight Commander</productname></para></listitem>
<listitem><para>egy szerkesztő(<productname>vi, jed</productname> stb.)</para></listitem>
</itemizedlist>
</para>
</sect2>
<sect2 id="sources-you-will-need">
<title>Szükséges források</title>
<para>
<itemizedlist>
<listitem><para><productname>a bash</productname>, vagy a kedvenc shell</para></listitem>
<listitem><para><productname>GNU-tar</productname></para></listitem>
<listitem><para><productname>GNU-core-utils</productname></para></listitem>
<listitem><para><productname>GNU-make</productname></para></listitem>
<listitem><para>természetesen a <productname>glibc</productname></para></listitem>
<listitem><para>talán a <productname>gcc</productname> is</para></listitem>
</itemizedlist>
</para>
</sect2>
</sect1>

<sect1 id="special-things-you-need-to-do">
<title>Speciális dolgok</title>
<para>Képzelheted milyen problémákat okozhat, ha eltávolítod az alap-programkönyvtárat, amire egy csomó program épül.</para>
<para>Nálam minden rendben ment, amíg ki nem adtam a <command>make install</command> parancsot. Körülbelül a telepítés felénél hibaüzenetet kaptam, miszerint az <command>rm</command> nem tudott lefutni, aztán észrevettem, hogy még az olyan alapparancsok sem működnek, mint a <command>cp</command>, <command>ls</command>, <command>mv</command>, <command>ln</command>, <command>tar</command> stb. Mind azt írta ki, hogy nem találják a szükséges programkönyvtáruk egy részét.</para>
<para>Viszont erre is van megoldás. Programfordításkor a fordítót (compiler) rá lehet kényszeríteni, hogy a programkönyvtárakból használt függvényeket belefordítsák a programba, így azoknak már nem kell ezeket megkeresni a programkönyvtárból.</para>
<para>Ezért ebben a fejezetben a telepítéshez szükséges segédprogramok statikus változatát készítjük el.</para>

<sect2 id="things-you-will-definitely-need">
<title>Amikre mindenképpen szükséged lesz </title>

<sect3 id="the-gnu-binutils">
<title>A GNU-Binutils</title>
<para>
<orderedlist>
<listitem><para>A legújabbat az <ulink url="ftp.gnu.org/gnu/binutils">ftp.gnu.org/gnu/binutils</ulink> webhelyről töltheted le; a dokumentum íráskor ez a 2.14-es változat volt</para></listitem>
<listitem><para>Csomagold ki a forrást: <screen>tar xIvf binutils-2.14.tar.bz2</screen></para></listitem>
<listitem><para>Lépj be a könyvtárba: <screen>cd binutils-2.14</screen></para></listitem>
<listitem><para>Állítsd be a makefile-okat: <screen>./configure</screen></para></listitem>
<listitem><para>Fordítsd le a forrásokat: <screen>make</screen></para></listitem>
<listitem><para>Telepítsd:  <screen>make install</screen></para></listitem>
</orderedlist>
</para>
<para>
Ha a fordítás során valamilyen gettextel kapcsolatos problémába ütköznél (mint például: <quote>undeclared reference to lib_intl</quote> vagy valami hasonló), akkor szedd le és telepítsd a legújabb változatot az <ulink url="ftp.gnu.org/gnu/gettext">ftp.gnu.org/gnu/gettext</ulink> webhelyről.</para>
<para>Ha ez nem segít, akkor próbáld meg kikapcsolni az anyanyelvi támogatást a következőképpen: <screen>./configure --no-nls</screen></para>
<para>A binutils statikus változatát nem muszáj elkészíteni, de nem árt, mert sok régi változatút használó rendszerrel találkoztam, amelyekkel majdnem mindig valamilyen hiba volt, ezért szerintem jó ötlet itt megemlíteni ezeket. </para>
</sect3>

<sect3 id="gnu-make">
<title>GNU make</title>
<para>A <command>make</command> parancs a felelős a források lefordításáért, a gcc és más, a fordításához szükséges programok hívásáért. Ha valami baj történik az új glibc-vel, szükséged lehet valamit lefordítani, ezért nem árt, ha van egy statikus változatod, másként nem menne.</para>
<para>
<orderedlist>
<listitem><para>Töltsd le a forrást az <ulink url="ftp.gnu.org/gnu/make/">ftp.gnu.org/gnu/make/</ulink> webhelyről;  a dokumentum írásakor a legújabb a 3.80 változat volt</para></listitem>
<listitem><para>Csomagold ki: <screen>tar xIvf make-3.80.tar.bz2</screen></para></listitem>
<listitem><para>Lépj be a létrehozott könyvtárba: <screen>cd make-3.80</screen></para></listitem>
<listitem><para>Ügyelj rá, hogy a binárisokat statikusra fordítsd le:<screen>export CFLAGS="-static -O2 -g"</screen></para></listitem>
<listitem><para>Futtasd a beállító szkriptet: <screen>./configure</screen></para></listitem>
<listitem><para>Fordítsd le: <screen>make</screen></para></listitem>
<listitem><para>Telepítsd a binárisokat :  <screen>make install</screen></para></listitem>
<listitem><para>Ellenőrizz: <screen>make -v</screen> Az újonnan telepített változatot kell látnod. Ha nem, keresd meg a régi binárisokat, és cseréld ki őket egy szimbolikus hivatkozással (link) az új változatra.</para></listitem>
</orderedlist>
</para>
<para>
Gratulálok! Ismét elkészítetted egy program statikus változatát.
</para>
</sect3>

<sect3 id="gnu-core-utils">
<title>A GNU core-utils</title>

<para>A core-utils a <command>cp</command>, <command>rm</command>, <command>ln</command>, <command>mv</command> stb alapparancsokból áll. Ha valami hiba történik a telepítés során, ezekre mindenképp szükség van a hiba helyrehozatalához, tehát itt a statikus változat igazán fontos.</para>
<para>
<orderedlist>
<listitem><para>Megint csak töltsd le a forrást az <ulink url="ftp.gnu.org/gnu/coreutils/">ftp.gnu.org/gnu/coreutils/</ulink> webhelyről; a dokumentum íráskor a legújabb az 5.0 változat volt.</para></listitem>
<listitem><para>Csomagold ki:  <screen>tar xIvf coreutils-5.0.tar.bz2</screen></para></listitem>
<listitem><para>Lépj be a könyvtárba: <screen>cd coreutils-5.0</screen></para></listitem>
<listitem><para>Ügyelj rá, hogy a binárisokat statikusra fordítsd:
<screen>export CFLAGS="-static -O2 -g"</screen></para></listitem>
<listitem><para>Futtasd a beállító szkriptet: 
<screen>./configure</screen></para></listitem>
<listitem><para>Fordítsd le:  <screen>make</screen></para></listitem>
<listitem><para>És telepítsd: <screen>make install</screen></para></listitem>
<listitem><para>Ellenőrizd, hogy az új változat-e az aktuális:<screen>cp --version</screen> Az új változat számát kell látnod, ha nem, akkor cseréld ki az összes régit egy szimbolikus hivatkozással az új változatra.</para></listitem>
</orderedlist>
</para>
<para>
Most, hogy ezeknek az alapcsomagoknak a statikus változatát használod, biztos lehetsz benne, hogy minden körülmény közt működni fognak.
</para>
</sect3>

<sect3 id="gnu-tar">
<title>A GNU tar</title>
<para>Már használtad a GNU tar programot, amikor kicsomagoltad és telepítetted a programokat. De talán szükséged lehet majd újabb programokat fordítani, ha az új glibc miatt a rendszer összeomlik, tehát nem árt, ha ebből is van egy statikus változat (ezt személyesen tapasztaltam). Szükséged lesz a <command>tar</command> mellett a bz2 tömörítési algoritmusra, amely nincs benne a tar hivatalos forrásában.</para>
<para>
<orderedlist>
<listitem><para>Töltsd le a tar forrását az <ulink url="ftp.gnu.org/gnu/tar">ftp.gnu.org/gnu/tar</ulink> webhelyről; a dokumentum írásakor a legújabb az 1.13 változat volt.</para></listitem>
<listitem><para>Mivel sok forrás bz2 algoritmussal van tömörítve, szükséged lesz a beépített támogatásra, mert jobb mint csövekkel (pipe) dolgozni. Tehát töltsd le a foltot az 
    <ulink url="ftp://infogroep.be/pub/linux/lfs/lfs-packages/4.1/tar-1.13.patch">ftp://infogroep.be/pub/linux/lfs/lfs-packages/4.1/tar-1.13.patch</ulink> webhelyről.
    </para></listitem>
<listitem><para>Csomagold ki: <screen>tar xzvf tar-1.13.tar.gz</screen></para></listitem>
<listitem><para>Másold át a foltot a tar forráskönyvtárába: <screen>cp tar-1.13.patch tar-1.13/</screen></para></listitem>
<listitem><para>Foltozd a forráskódot: <screen>patch -Np1 -i tar-1.13.patch</screen></para></listitem>
<listitem><para>Állítsd be a fordító kapcsolóit a statikus fordításhoz: <screen>export CFLAGS="-static -O2 -g"</screen></para></listitem>
<listitem><para>Most már beállíthod: <screen>./configure</screen></para></listitem>
<listitem><para>Fordítsd le: <screen>make</screen></para></listitem>
<listitem><para>Végül telepítsd a csomagot: <screen>make install</screen></para></listitem>
<listitem><para>Egy gyors ellenőrzés, hogy feltelepült-e az új változat: <screen>tar --version</screen> Az új változatnak kell megjelennie, ellenkező esetben keresd meg a régieket és cseréld ki az újra mutató szimbolikus hivatkozásokkal.</para></listitem>
</orderedlist></para>
<para>Ha valami hibát észlelsz a make futtatásakor, próbáld meg kikapcsolni az anyanyelvi támogatást (nls). Ezt a következő kapcsolókkal érheted el: <screen>--disable-nls</screen></para>
<para><emphasis>Megjegyzés: </emphasis> A tar ezen új változatában a <option>-j</option> kapcsolót kell használnod a .bzip2 fájlok kicsomagoláshoz, tehát a következő helyett:
<screen>tar xIvf anyfile.tar.bz2</screen> így kell: <screen>tar xjvf anyfile.tar.bz2</screen> Nem tudom, hogy ez miért változott meg, mindenesetre így szépen működik.</para>
</sect3>

<sect3 id="the-bash">
<title>A Bash shell</title>
<para>
Én a Bash shell-t részesítem előnyben, ha másikat használsz, ügyelj arra, hogy a statikus változatát telepítsd, a glibc telepítése előtt.</para>
<para>
<orderedlist>
<listitem><para>Töltsd le a Bash forrástt az <ulink url="ftp.gnu.org/gnu/bash/">ftp.gnu.org/gnu/bash/</ulink> webhelyről; a dokumentum írásakor a legújabb a 2.05b változat volt.</para></listitem>
<listitem><para>Csomagold ki:  <screen>tar xzvf bash-2.05b.tar.gz</screen>amely egy <filename>bash-2.05b</filename> könyvtárat hoz létre, benne a forrásokkal.</para></listitem>
<listitem><para>Lépj be a könyvtárba: <screen>cd bash-2.05a</screen></para></listitem>
<listitem><para> Állíts be mindent a statikus programkészítéshez:  <screen>export CFLAGS="-static -O2 -g"</screen></para></listitem>
<listitem><para>Állítsd be a makefile-okat:  <screen>./configure</screen> Ha valami extrát szeretnél a Bash-hoz, nézd meg a súgót: <screen>./configure --help</screen>
 az összes kapcsolóról.</para></listitem>
<listitem><para>Fordítsd le: <screen>make</screen></para></listitem>
<listitem><para>Telepítsd fel a binárisokat:  <screen>make install</screen> Ez az <filename>/usr/local/bin/</filename>könyvtárba másolja a binárisokat.</para></listitem>
<listitem><para>Ügyelj arra, hogy ne legyen más változat elérhető (mint a SuSE Linuxnál a <filename>/bin/</filename> könyvtárban). Egyszerűen másold a binárist a <filename>/bin/</filename> könyvtárba is:

  <screen>cp /usr/local/bin/bash /bin/</screen> Itt nem használunk szimbolikus hivatkozásokat, mivel a rendszerbetöltésnél és a bash indításakor ebből problémák adódhatnak. </para></listitem>
</orderedlist>
</para>
<para>Már van egy telepített statikus változatú Bash a rendszeren, ami így ugyan nagy, de legalább minden körülmény közt működik.</para>
<para>
Ha másik shell-t szeretsz, használhatod azt is, csak ügyelj arra, hogy  statikusan fordított változatot használj. Nyugodtan írd meg hogyan készítetted az általad használt shell statikus változatát, valószínűleg a HOGYAN következő változatában már szerepelni is fog.
</para>
</sect3>
</sect2>

<sect2 id="software-that-may-come-in-handy">
<title>Szoftverek, amelyek jól jöhetnek</title>

<sect3 id="midnight-commander">
<title>Midnight Commander</title>
<para>
A Midnight Commander egy nagyon hasznos kis fájlkezelő, sok extrával, például tömörített fájlok kicsomagolása, beépített általános parancsok, mint másolás, áthelyezés, és egy szerkesztő.</para>
<para>Lefordításához, fent kell lennie glib programkönyvtárnak. Néhány disztribúcióban alapból fent van, ha esetleg a <command>make</command> során olyan hibaüzenetet kapsz, hogy az ld nem találja a glibet, akkor először fel kell telepítened ezt a programkönyvtárat. A forrásokat az  <ulink url="ftp.gnome.org/pub/gnome/sources/glib/2.2/">ftp.gnome.org/pub/gnome/sources/glib/2.2/</ulink> webhelyről töltheted le, a telepítés egyértelmű.</para>
<!-- talán eg ykis rövid leírás a feltelepített glibről-->
<para>A Midnight Commander elkészítésének lépései:</para>
<para>
<orderedlist><listitem><para>Töltsd le a forrást a 
    <ulink url="http://www.ibiblio.org/pub/Linux/utils/file/managers/mc/">http://www.ibiblio.org/pub/Linux/utils/file/managers/mc/"</ulink> webhelyről; a dokumentum írásakor a legújabb a 4.6.0 változat volt. volt.</para></listitem>
<listitem><para>Csomagold ki: <screen>tar xzvf mc-4.6.0.tar.gz</screen></para></listitem>
<listitem><para>Lépj be az imént létrehozott könyvtárba: <screen>cd mc-4.6.0</screen></para></listitem>
<listitem><para>Állítsd be a konfigurációs fájlokat: <screen>./configure</screen></para></listitem>
<listitem><para>Fordítsd le:  <screen>make</screen></para></listitem>
<listitem><para>Telepítsd: <screen>make install</screen></para></listitem>
</orderedlist>
</para>
</sect3>
</sect2>
</sect1>
</chapter>

<chapter id="the-install-of-glibc-itself">
<title>A glibc telepítése</title>
<para>Elérkeztünk a legfontosabb részhez, a glibc telepítéséhez.</para>
<sect1 id="obtaining-and-compiling-the-source">
<title>A forrás letöltése és fordítása</title>
<para>A glibc számos változata elérhető, de nem biztos, hogy a legújabb változat jobb, mint egy régebbi. A legjobb, ha utánanézel különböző internetes fórumokon, melyiket érdemes használni és melyiket nem. Vagy ha ismersz valakit, aki járatos a témában, kérdezd meg tőle, hátha tudja melyik változat mennyire jó. </para>
<para>Én a glibc-2.2.4-et telepítettem, mivel azt mondták, ez elég szépen működik, de más változatot is feltehetsz, ha az jobban tetszik.</para>
<para>Akkor munkára fel: </para>

<para><orderedlist>
<listitem><para>Töltsd le a forrást az <ulink url="ftp.gnu.org/gnu/glibc/">ftp.gnu.org/gnu/glibc/</ulink> webhelyről; amint említettem, a 2.2.4-es változatot használtam.
</para></listitem>
<listitem><para>Csomagold ki:  <screen>tar -xzvf glibc-2.2.4.tar.gz</screen></para></listitem>
<listitem><para>Még szükséged lesz a <quote>linuxthreads</quote> csomagra is, amelyet a linuxthreads könyvtárban megtalálsz az 
    <ulink url="ftp.gnu.org">ftp.gnu.org</ulink> szerveren. A fájl neve: 
<screen>glibc-llinuxthreads-2.2.4.tar.gz</screen>Ügyelj arra, hogy a linuxthreads változatszáma  megegyezzen a glibc-ével.</para></listitem>
<listitem><para>Másold a linuxthreads csomagot a glibc forrás-könyvtárába: <screen>cp glibc-linuxthreads-2.2.4.tar.gz glibc-2.2.4</screen></para></listitem>
<listitem><para>Lépj be a glibc könyvtárába: <screen>cd glibc-2.2.4</screen></para></listitem>
<listitem><para>Csomagold ki a linuxthreads forrás	t: <screen>tar xzvf linux-threads-2.2.4.tar.gz</screen></para></listitem>
<listitem><para>Állítsd be:<screen>./configure --enable-add-ons=linuxthreads</screen> Ez a kapcsoló úgy állítja be a csomagot, hogy fordításkor vegye figyelembe a linuxthreads csomagot is. Ez a más Linux rendszerekkel való kompatibilitás miatt szükséges. E nélkül például nem biztos, hogy az általad fordított programok futni fognak más gépeken.</para></listitem>
<listitem><para>Majd indítsd el a glibc fordítását: 
    <screen>make</screen> Ez eltart egy darabig (körülbelül fél óráig tartott a 1.5 GHz-es Duron XP gépen).</para></listitem>
</orderedlist>
</para>
<para>
Most, hogy a programkönyvtár is le lett fordítva, minden készen áll a telepítéshez, de az már nem lesz ilyen könnyű feladat.
</para>
</sect1>

<sect1 id="the-installation">
<title>A telepítés</title>
<para>A glibc telepítéséhez egy olyan rendszerre van szükség, amin semmi sem fut, mivel számos folyamat (például a sendmail) mindig megpróbálja használni a programkönyvtárat, így megakadályozza annak lecserélését. Tehát egy <quote>lecsupaszított</quote> rendszerre van szükségünk, amin tényleg csak a legszükségesebb dolgok futnak. Ezt úgy tudod elérni, hogy a boot opcióknál beállítod az
<screen>init=/bin/bash</screen>
értéket a rendszermaghoz. A rendszerbetöltőtől függően még meg kell tenned pár dolgot. A következőkben ezt fejtem ki, a két legelterjedtebb rendszerbetöltő, a LILO (LInux LOader) és a GNU grub esetére.</para>

<sect2 id="lilo">
<title>LILO</title>
<para>Egy <quote>alap</quote> rendszer használatához indítsd újra a számítógépet, és a LILO prompt-nál válaszd ki a neked megfelelő kernel-image nevet, és fűzd hozzá a
<screen>init=/bin/bash</screen>
sort, mielőtt <keycap>Enter</keycap>-t nyomsz. Ha gyakrabban akarsz glibc-t cserélni, célszerű egy külön beállítást adni a <filename>/etc/lilo.conf</filename> fájlba. 
A részletekért nézd meg a LILO man oldalát.</para>
</sect2>

<sect2 id="grub">
<title>Grub</title>
<para>A Grub egy újabb rendszerbetöltő, amely támogat többféle operációs- és fájlrendszert (például támogatja a reiser fájlrendszerű partíciókról való rendszerbetöltést). Ha többet akarsz megtudni róla, látogass el a <ulink url="http://www.gnu.org/software/grub/">http://www.gnu.org/software/grub/</ulink> webhelyre, ahol minden szükséges dolgot megtalálsz.</para>
<para>Ha már van egy telepített Grub a gépen, akkor valószínűleg szöveges felületet használsz a megfelelő rendszer kiválasztására. A Grub-nak van egy szép jellegzetessége &mdash; ahelyett, hogy kézzel kéne beírnod mindent, egyszerűen kiválasztod a menüből a bejegyzést, és nyomsz egy <keycap>e</keycap>-t, amely megjelenít egy opciók menüt. Ebben a menüben látod a parancsokat, amelyeket a Grub a rendszerbetöltést megelőzően hajt végre. Válaszd ki a következő sort :
<screen>kernel="/ahol/a-kerneled-van és az-opcióid-vannak"</screen>
és nyomj újra egy <keycap>e</keycap>-t. Most szerkesztheted a sort. Itt add hozzá az
<screen>init=/bin/bash</screen>
sort, eztán nyomj <keycap>Entert</keycap>-t, hogy a változtatások érvényesüljenek, és nyomj <keycap>b</keycap>-t a rendszerbetöltéshez.</para>
</sect2>
</sect1>
<sect1 id="after-the-kernel-is-booted">
<title>Miután a rendszer betöltődött</title>
<para>
... Egy abszolút minimális bash környezetben találod magad.</para>
<para>Még a felhasználónevet és a jelszót sem kellett begépelned! Most te vagy az egyetlen szuper-felhasználó minden hatalommal, mivel a rendszer egyfelhasználós üzemmódban működik, tehát gondold végig mit csinálsz. Még fájl-elérési jogok és hasonlók sincsenek!</para>
<para>A prompt körülbelül így néz ki: <screen>init-x.y#</screen>
A gyökérkönyvtár most csak olvashatóként van felcsatolva, így nem tudod ráírni az új programkönyvtárat sem. Az írhatóvá (<varname>r/w</varname>) tételhez, elég kiadni ezt a parancsot:
<screen>mount -o remount,rw /</screen>
Ha a forrásod más partíción van, akkor azt is fel kell csatolni (nálam a raid rendszert kell):
<screen>mount -t reiserfs /dev/md0 /usr/src</screen>
Amint látod, megadtam a fájlrendszer típusát is, mivel a <command>mount</command> nem nézi meg az <filename>/etc/fstab</filename> fájlban.</para>
<para>Most már beléphetsz a forrás-könyvtárába, és elkezdheted a fordítást:
<screen>make install</screen></para>
<para>Ha akarsz, imádkozhatsz, hogy minden működjön... ;-)</para>
<para>Ha minden jól ment, akkor telepítés után mindenféle hibaüzenet nélkül visszakapod a promptot. Ha mégsem, akkor olvasd el az <xref linkend="troubleshooting" />et.</para>
<para>Ha nem volt semmi hiba, írd be ezt a parancsot: <screen>ldconfig -v</screen> a programkönyvtáraid frissítéséhez.</para>
<para>Gratulálok! A programkönyvtárat sikeresen telepítetted. Most írd be:
<command>mount -o remount,ro /</command> biztosítékképpen, hogy minden adat a merevlemezre íródott.</para>
<para>Indítsd újra a rendszert: <screen>exit</screen>
Ez egy hibaüzenetet fog eredményezni, miszerint rendszermag-pánikot okoztál. Ha lehet, <keycombo><keycap>CTRL</keycap><keycap>ALT</keycap><keycap>DEL</keycap></keycombo>-el próbáld meg újraindítani a számítógépet, ha nem megy, akkor csak a reset gomb marad.</para>
<para>Próbáld meg a rendes rendszermagot betölteni. Ha minden jól megy, már használhatod is az új programkönyvtáradat.</para>
</sect1>
</chapter>
<chapter id="troubleshooting">
<title>Hibakeresés &mdash; valami nem sikerült ...</title>
<para>Ha annak ellenére, hogy pontosan követted az összes utasítást és ehhez a részhez érkeztél, valószínűleg a különböző Linux kiadások miatt van valami probléma, némelyikük nem ott tárol bizonyos dolgokat, ahol azt elvileg kéne. A Suse Linux a leghíresebb az ilyen buta dolgokról, de a többivel is előfordulhat hasonló probléma. Ha ilyesmivel találkozol, és megtalálod a hiba okát &mdash; és remélhetőleg a megoldását is &mdash; tudasd velem, én hozzá fogom adni ehhez a HOGYANhoz.</para>
<para>Azt hiszem ez a rész sosem lesz teljesen kész, de leírok majd pár lehetséges hibát és megoldásukat.</para>

<sect1 id="errors-with-configure-or-make-while-trying-to-compile-the-glibc">
<title>Hibák a <command>configure</command> vagy a <command>make</command> 
futásakor a glibc fordítása közben</title>
<para>Néha találkozhatsz olyan beállítási hibával, amely szerint valamely kellék hiányzik &mdash; általában valamilyen szoftver, vagy a programkönyvtárak túl régiek. Ezzel egy csomó programnál találkoztam, különösen a statikus fordítások során. Általában semmi baj, szerezd be a szükséges szoftvereket, vagy programkönyvtárakat, azután fordítsd le őket a forrásban található leírásoknak megfelelően (általában <filename>README</filename>, <filename>INSTALL</filename>, vagy valami hasonló a nevük).</para>
<para>Viszont van néhány eset, amikor ez így nem működik. Például, az újabb változatú binutils fordításakor, amely szükséges a glibc fordításához (ezért is említettem a szükséges dolgok között), problémák adódtak. A binutils configure szkriptje azt írta, hogy <quote>A glibc túl régi</quote>. Tehát azt hittem, <emphasis>a kígyó itt a saját farkába harap</emphasis>. Szerencsére erre a problémára is van megoldás, ha nem tudsz egyszerre megtenni egy nagy lépést, próbálj több, kisebb lépésben haladni.</para>
<para>A disztribúciómban egy 2.1.1-es változatú glibc volt. A probléma megoldásához először megpróbáltam lefordítani a 2.1.3-as glibc-t, ami sikerült is. Ezután feltelepítettem ezt az újabb változatot. Mikor újra megpróbáltam a binutils-t lefordítani, ezúttal mindent rendben talált.</para>
<para>Ha egy hasonló <quote>ördögi körrel</quote> találkoznál, nézz utána, hogy minimum milyen változatú szoftverre van szükség, aztán töltsd le azt. (Azt hiszem ezért is tartanak az FTP szervereken olyan sok régi változatot). A sikeres fordítás és telepítés után próbáld meg fordítani azt a szoftvert, ami panaszkodott az előbbi szoftver változata miatt, a legtöbb esetben már le tudod fordítani. Lehetséges, hogy ezt a lépést többször is meg kell ismételned egy hiányzó, vagy régi szoftver fordításánál. Ez az amit úgy hívok, hogy <quote>a patkány hosszú farka</quote> vagy <quote>dominó effektus</quote>. 
Valami megtételéhez több dolgot meg kell tenned. Ez elég idegesítő lehet, de a jó oldala a dolognak, hogy utána már biztos lehetsz benne, az igazán régi programok frissítve lesznek a telepítés végére.
</para>
</sect1>

<sect1 id="something-goes-wrong-during-make-install">
<title>Ha a <command>make install</command> során történik valami baj</title>
<para>A legáltalánosabb hiba, hogy nincsenek meg a statikus alapkellékek; ebben az esetben csak a <command>cd</command> parancsot tudod használni, semmi mást. Ezért írtam le  a HOGYANban részletesen, hogyan tegyük azokat a kellékeket statikussá.</para>
<para>Az egyetlen nem statikus kellék a <command>mount</command>, amely a linux-utils csomagban van (véleményem szerint nagyon helyesen), amely tartalmazza még többek között a <command>login</command>, <command>passwd</command> stb. programokat. Mivel nem lehet statikus változatokat használni PAM vagy más biztonsághoz kapcsolódó szoftverekkel keverve, elég ésszerűtlen dolog lenne bármilyen körülmények közt is statikussan fordítani őket. Természetesen megteheted, ha tényleg tudod mit csinálsz.</para>

<sect2 id="going-back-to-a-working-configuration">
<title>Visszatérés egy működő rendszerhez</title>
<para>Visszaállítani egy működő rendszert elég egyszerű, ha megvannak a statikus kellékek: lépj be a <filename>/usr/local/lib/</filename>  könyvtárba, 
és tedd át az összes újonnan telepített fájlt egy másik könyvtárba (például 
<filename>/usr/local/lib/eltarolva</filename>). Könnyen azonosíthatod őket a változatszámuk alapján, amely ugyanaz, mint a telepített glibc programkönyvtáré, valamint a létrehozási dátum alapján. Elég ritka, hogy két különböző programkönyvtárnak azonos a változatszáma és létrehozási ideje &mdash; én személy szerint sosem láttam ilyet &mdash; de a biztonság kedvéért ellenőrizd a dátum/időt, hogy semmi fontosat ne törölj le. Ehhez jó segítséget nyújt a Midnight Commander, ha telepítve van.</para>
<para>Megpróbálhatod letörölni a <filename>ld-2.2.4.so</filename> és a <filename>libc-2.2.4.so</filename> fájlokat, majd kiadni egy <command>ldconfig -v</command> parancsot, mielőtt eltávolítanád az összes tönkrement fájlt. Ezzel lehetővé válik a legtöbb program használata, a Midnight Commander-t minden esetben tudod használni.</para>
<para>Ne felejts el legalább egy <command>ldconfig -v</command> parancsot kiadni, miután eltávolítottad az összes fájlt.</para>

<sect3 id="removing-the-causes-for-the-crashing-of-the-installation">
<title>A sikertelen telepítés okának megszüntetése</title>
<para>Gyakori oka a problémáknak, hogy a disztribúciód az összes programkönyvtárat egy másik helyen tárolta, mint ahol az újonnan  telepített rutin keresné, valamint gyakran több változat is fut párhuzamosan, zavarva egymást. Nálam sok problémát okozott a <filename>libc6.so</filename> egy második példánya a <filename>/lib</filename> könyvtárban. Egy szimbolikus hivatkozás az <filename>/usr/local/lib</filename> könyvtárban lévő megfelelő fájlra megoldja ezt a problémát.</para>
</sect3>
</sect2>
</sect1>
</chapter>
</book>
