このセクションでは、glibc2をメインのCライブラリとしてインストールする方法を 説明します。新しくコンパイルされるプログラムは、オプション指定をしない 限り、このライブラリにリンクされるようになります。
RedhatかDebianを使っていて、適切なebファイルをダウンロードしたのであれ ば、RedhatかDebianのインストールインストラクションをご覧下さい。その 場合、このセクションは読み飛ばしてかまいません。
この節では、ソースからglibc2とアドオンをコンパイルする方法を説明します。 最適化レベルや設定を変更したい場合、およびバイナリパッケージのない場合、 ライブラリのコンパイルが必要になります。
i586@133, 64 MB RAMのシステムでは、全ライブラリとアドオンのコンパイルに 約3時間かかります。フル装備のi686@200では、約30分です。
コンパイルするためには、アーカイブを展開してソースを取り出す必要があり ます。最良の方法は次の通りです。
 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
 
glibc-2.0.6ディレクトリ内にcompileというディレクトリを作成し、そこへ
cdして、全ての作業をこの中で行います。これにより、インストール後の
消去作業が楽になります。(プログラム開発者が、'make clean'をまだ完全に
働くようにはしていないからです。)
mkdir compile
cd compile
../configureを実行します。アドオンパッケージを使うためには、
--enable-add-ons=linux-threads,crypt,localedataのようにしてオプション
指定する必要があります。インストールするパスを指定する必要もあるかも
しれません。標準的なlinuxディストリビューションに合わせるには、
--prefix=/usrを指定します。(linuxシステムで/usrがprefixとして指定さ
れるとconfigureはlibc.soやほかの重要なライブラリを/libに格納し、ほかの
pathを適切に調整します。)最終的なコマンドラインは次のようになるで
しょう。
 ../configure --enable-add-ons=linuxthreads,crypt,localedata --prefix=/usr
コンパイルとチェックは次の通りです。
 make
 make check
 
ソースからインストールする場合にせよ、バイナリからインストールする場合 にせよ、新しいライブラリの準備のために、いくつかのファイルを待避する 必要があります。新しくコンパイルされるプログラムは、glibcにリンクされ ますが、古いプログラムのうち、動的にリンクされたものはlibc5に依存している ため、単に古いバージョンを上書きするわけには行かないのです。
 mkdir -p /usr/i486-linuxlibc5/lib
 
/usr/includeから待避させます。
 mv /usr/include /usr/i486-linuxlibc5/include
 
 mkdir /usr/include
 ln -s /usr/src/linux/include/linux /usr/include/linux
 ln -s /usr/src/linux/include/asm /usr/include/asm
 ln -s /usr/X11R6/include/X11 /usr/include/X11
 ln -s /usr/lib/g++-include /usr/include/g++
 
/usr/includeに置いています。
そういったライブラリを適切に使用するためには、それらのファイル
やリンクの設定を適切が行われている必要があるのです。
/usr/i486-linuxlibc5/lib)を
/etc/ld.so.confファイルの先頭に加えます。
glibcがインストールされたあと奇妙なメッセージが出るのを避けるためには、
ld.so 1.8.8以降を使った方がよいでしょう。
 mv /usr/lib/libbsd.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libc.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libgmon.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libm.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libmcheck.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libc.so /usr/i486-linuxlibc5/lib
 mv /usr/lib/libm.so /usr/i486-linuxlibc5/lib
 cp /lib/libm.so.5.* /usr/i486-linuxlibc5/lib
 cp /lib/libc.so.5.* /usr/i486-linuxlibc5/lib
 
/usrが/とは別のパーティションにある場合、
libm.so.5とlibc.so.5は、移動せずにコピーしてください。
これらはlinuxを起動する際に使われるプログラムが必要とするファイルであり、
ルートドライブパーティションになくてはならないからです。
/usr/lib/*.oファイルを新しいディレクトリに移動します。
 mv /usr/lib/crt1.o /usr/i486-linuxlibc5/lib
 mv /usr/lib/crti.o /usr/i486-linuxlibc5/lib
 mv /usr/lib/crtn.o /usr/i486-linuxlibc5/lib
 mv /usr/lib/gcrt1.o /usr/i486-linuxlibc5/lib
 
 ldconfig -v
 
glibcをコンパイル済バイナリを使ってインストールするときは、次のように する必要があります。
 cd /
 gzip -dc glibc-2.0.bin.i386.tar.gz | tar tvvf -
 gzip -dc glibc-crypt-2.0.bin.i386.tar.gz | tar tvvf -
 ldconfig -v
 
ライブラリをソースからインストールするには次のようにします。
 make install
 ldconfig -v
 
インストールの最終段階は、バイナリからの場合もソースからの場合も、 リンクが適切に行われるようにするためのgcc specsファイルの更新です。 gccがどのspecsファイルを使っているかを調べるには、次のようにして ください。
 % gcc -v
 reading specs from /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2/specs
 gcc version 2.7.2.2
 
 cd /usr/lib/gcc-lib/
 cp -r i486-unknown-linux i486-linuxlibc5
 
 cd /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2
 
インストール完了を確認するために、次のプログラムをファイルとして 作成してください。
 #include <stdio.h>
 main()
 {
     printf("hello world!\n");
 }
そして、コンパイルします。
 % gcc glibc.c -o glibc
 
 % ldd glibc
 libc.so.6 => /lib/libc.so.6 (0x4000e000)
 /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
 
(訳注)make を使用してコンパイルする場合、設定にも因りますが、 /usr/bin/ccが呼ばれてリンクがうまく行かないことがあります。 この場合、gccを/usr/bin/ccにコピーするか、環境変数(またはmakeマクロ)CCを gccを指すように変更してください。