Nästa Föregående Innehållsförteckning

4. Installera som ett test-bibliotek.

Detta avsnitt tar upp installeringen av glibc 2 som ett test-bibliotek. Allt du kompilerar kommer länkas med dina existerande bibliotek om du inte ger några extraparametrar för att länka med de nya biblioteken. Det verkar som att sökvägarna kompileras in i en hel del filer, så du gör antagligen bäst i att installera biblioteket från källkod.

4.1 Kompilera och installera.

Förutsättningar.

På en i586@133 med 64 MB RAM tar det runt 3 timmar att kompilera med fullständiga bibliotek och tillägg. På en laddad i686@200 tar det runt en halvtimme.

Packa upp källkoden.

Du måste packa upp källkoden från arkivet så att du kan kompilera den. Det bästa sättet att göra detta på är:

 tar xzf glibc-2.0.6.tar.gz
 cd glibc-2.0.6
 tar xzf ../glibc-linuxthreads-2.0.6.tar.gz
 tar xzf ../glibc-crypt-2.0.6.tar.gz
 tar xzf ../glibc-localedata-2.0.6.tar.gz
 
Detta kommer att placera linuxthreads-, crypt- och localedata-katalogerna i glibc-2.0.6-katalogen där configure kan hitta dessa tillägg.

Konfigurering.

I glibc-2.0.6-katalogen ska du skapa en katalog som heter compile och cd-a till den. Allt arbete kommer göras i denna katalog, vilket förenklar städningen. (Utvecklarna har inte brytt sig speciellt mycket om att göra 'make clean' perfekt än.)

 mkdir compile
 cd compile
 
Kör ../configure. För att använda tilläggspaketen måste du ange dessa med --enable-add-ons, t.ex. --enable-add-ons=linuxthreads,crypt,localedata. Du måste även välja en katalog att installera i. /usr/i486-linuxglibc2 är ett bra val. configure-raden för detta blir:
 ../configure --enable-add-ons=linuxthreads,crypt,localedata --prefix=/usr/i486-linuxglibc2
 

Kompilera och installera.

För att kompilera och verifiera, kör:

 make
 make check
 
Om 'make check' går bra så kan du installera biblioteket:
 make install
 

4.2 Uppdatera den dynamiska laddaren.

  1. Skapa en länk från den nya ls.so till /lib/ld-linux.so.2:
     ln -s /usr/i486-linuxglibc2/lib/ld-linux.so.2 /lib/ld-linux.so.2
     
    
    Detta är det enda biblioteket vars position är fast då ett program länkas, och att använda en länk i /lib gör det lättare att uppgradera till glibc som ditt primära C-bibliotek när den stabila versionen ges ut.
  2. Editera /etc/ld.so.conf. Du måste, i slutet av filen, lägga till sökvägen till lib-katalogen där det nya biblioteket finns, vilket blir <prefix>/lib, alltså /usr/i486-linuxglibc2/lib i exemplet ovan. Då du modifierat /etc/ld.so.conf kan du köra
     ldconfig -v
     
    

4.3 Konfigurering för gcc.

Det sista steget i installeringen är att uppdatera /usr/lib/gcc-lib, så att gcc vet hur det ska använda de nya biblioteken. Först måste du ta en kopia av de existerande inställningarna. För att ta redan på vilken konfigurering du har för tillfället kan du använda parametern -v till gcc:

 % gcc -v
 Reading specs from /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2/specs
 gcc version 2.7.2.2
 
I detta fall är i486-unknown-linux systemet och 2.7.2.2 är versionen. Du måste kopiera /usr/lib/gcc-lib/<system> till den nya test-systemkatalogen:
 cd /usr/lib/gcc-lib/
 cp -r i486-unknown-linux i486-linuxglibc2
 
Gå till din nya test-systemkatalog och versionskatalog:
 cd /usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2
 
och editera filen specs. I denna fil ska du byta ut /lib/ld-linux.so.1 mot /lib/ld-linux.so.2. Du måste också radera alla uttryck %{...:-lgmon} i filen, eftersom glibc inte använder gmon-biblioteket för "profiling". Ett exempel på en specs-fil kan du hitta i avsnittet Exempel på specs-fil.

4.4 Uppdatera länkar till header-filer

Du måste skapa länkar i din nya include-katalog till andra include-kataloger:

 cd /usr/i486-linuxglibc2/include
 ln -s /usr/src/linux/include/linux
 ln -s /usr/src/linux/include/asm
 ln -s /usr/X11R6/include/X11
 
Det kan också hända att du har andra bibliotek, såsom ncurses, som behöver ha sina header-filer i denna katalog. Du bör kopiera eller länka filerna från /usr/include. (Vissa bibliotek kan behöva kompileras om med glibc2 för att fungera med det. I dessa fall är det bara att kompilera och installera paketen i /usr/i486-linuxglibc2.)

4.5 Testa din installering.

För att testa installeringen, skapa följande program i filen glibc.c:

 #include <stdio.h>

 main()
 {
     printf("hej världen!\n");
 }
 
och kompilera det med parametrarna "-b <bas-installerings-katalog> -nostdinc -I<installerings-katalog>/include -I/usr/lib/gcc-lib/<ny system-katalog>/<gcc version>/include":
 % gcc -b i486-linuxglibc2 -nostdinc -I/usr/i486-linuxglibc2/include -I/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include glibc.c -o glibc
 
Använd ldd för att verifiera att programmet länkades med glibc2 och inte med ditt gamla libc:
 % ldd glibc
 libc.so.6 => /usr/i486-linuxglibc2/lib/libc-2.0.6.so (0x4000d000)
 /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
 
Om det kompilerar, länkarna stämmer och det visar "hej världen!" när det körs så har installeringen lyckats.


Nästa Föregående Innehållsförteckning