”coreutils-5.2.1.tar.bz2” を ビルドしてゆきます。まず 場所を設定
# pwd /home/qpo/proj/staging # mkdir ../1003_Some_Basic_Utilities # cd ../1003_Some_Basic_Utilities/ # pwd /home/qpo/proj/1003_Some_Basic_Utilities # ls -a ./ ../
ソースを入手 展開ビルド
# cp ../../dokoka/hozonnsaki/coreutils-5.2.1.tar.bz2 .
# ls
coreutils-5.2.1.tar.bz2
# tar jxvf coreutils-5.2.1.tar.bz2
# cd coreutils-5.2.1
# export CC="gcc -mcpu=i386"
# { time ./configure --host=i386-pc-linux-gnu 2>&1 | tee log-configure ;}
...
config.status: creating po/Makefile
real 4m16.114s
user 3m7.450s
sys 1m0.770s
# { time make 2>&1 | tee log-make ; }
...
make[1]: Leaving directory `/home/qpo/proj/1003_Some_Basic_Utilities/coreutils-5.2.1'
real 5m18.327s
user 4m52.540s
sys 0m17.880s
作成されたものを 見ておきます。
ファイルは src と言う所に有るので
# pwd /home/qpo/proj/build-tools/coreutils-5.2.1 # ls src/
少なくとも これらが存在しています。他にも有るのですが
cat chgrp chmod chown cp date dd df hostname ln ls mkdir mkfifo mknod mv rm rmdir stty su sync uname
ファイルをコピーします。
# cd src/ # pwd /home/qpo/proj/1003_Some_Basic_Utilities/coreutils-5.2.1/src # ls ../../../staging/bin bash* sh@ # cp cat chgrp chmod chown cp date dd df ../../../staging/bin/ # cp hostname ln ls mkdir mkfifo mknod ../../../staging/bin/ # cp mv rm rmdir stty su sync uname ../../../staging/bin/ # ls ../../../staging/bin bash* chmod* date* hostname* mkdir* mv* sh@ sync* cat* chown* dd* ln* mkfifo* rm* stty* uname* chgrp* cp* df* ls* mknod* rmdir* su*
当然これだけでは 動きません。
ldd で 必要なライブラリを 調査する事が 必要です。
# cd ../../../staging/
# pwd
/home/qpo/proj/staging
# ls
bin/ dev/ home/ mnt/ proc/ sbin/ usr/
boot/ etc/ lib/ opt/ root/ tmp/ var/
# ldd bin/cat
libc.so.6 => /lib/libc.so.6 (0x4001e000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
.,.
# ldd bin/ls
librt.so.1 => /lib/librt.so.1 (0x4001e000)
libc.so.6 => /lib/libc.so.6 (0x40030000)
libpthread.so.0 => /lib/libpthread.so.0 (0x40149000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
# ldd bin/su
libcrypt.so.1 => /lib/libcrypt.so.1 (0x4001e000)
libc.so.6 => /lib/libc.so.6 (0x4004a000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
# ls lib/
ld-linux.so.2* libc.so.6 libdl.so.2
では調べた結果を元に /lib ディレクトリにコピーします。
# pwd /home/qpo/proj/staging # cp /lib/librt.so.1 lib/ # cp /lib/libpthread.so.0 lib/ # cp /lib/libcrypt.so.1 lib/ # ls lib/ ld-linux.so.2* libcrypt.so.1* libpthread.so.0* libc.so.6 libdl.so.2 librt.so.1*
後もう少しです。
にゃんたろう 拝!
2010年 8月23日 (月) 21:15:16 JST 作成