以下の方法は お薦めしません このような事をする 猫 もいるようです とい うことだけです。
これらは LFS を 参考にしました、参考です同じでは有りません。良い子は まねしては いけません。(まねきねこ)
へたら
# ./configure --shared --prefix=/usr/local 2>&1 |tee log-conf-share-usr-local Checking for gcc... Checking for shared library support... Building shared library libz.so.1.2.3 with gcc. Checking for unistd.h... Yes. Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf() Checking for vsnprintf() in stdio.h... Yes. Checking for return value of vsnprintf()... Yes. Checking for errno.h... Yes. Checking for mmap support... Yes.
ほんでもって
# make 2>&1 | tee log_make gcc -fPIC -O3 -DUSE_MMAP -c -o example.o example.c gcc -fPIC -O3 -DUSE_MMAP -c -o adler32.o adler32.c gcc -fPIC -O3 -DUSE_MMAP -c -o compress.o compress.c gcc -fPIC -O3 -DUSE_MMAP -c -o crc32.o crc32.c gcc -fPIC -O3 -DUSE_MMAP -c -o gzio.o gzio.c gcc -fPIC -O3 -DUSE_MMAP -c -o uncompr.o uncompr.c gcc -fPIC -O3 -DUSE_MMAP -c -o deflate.o deflate.c gcc -fPIC -O3 -DUSE_MMAP -c -o trees.o trees.c gcc -fPIC -O3 -DUSE_MMAP -c -o zutil.o zutil.c gcc -fPIC -O3 -DUSE_MMAP -c -o inflate.o inflate.c gcc -fPIC -O3 -DUSE_MMAP -c -o infback.o infback.c gcc -fPIC -O3 -DUSE_MMAP -c -o inftrees.o inftrees.c gcc -fPIC -O3 -DUSE_MMAP -c -o inffast.o inffast.c gcc -shared -Wl,-soname,libz.so.1 -o libz.so.1.2.3 adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o zutil.o inflate.o infback.o inftrees.o inffas t.o rm -f libz.so libz.so.1 ln -s libz.so.1.2.3 libz.so ln -s libz.so.1.2.3 libz.so.1 gcc -fPIC -O3 -DUSE_MMAP -o example example.o -L. libz.so.1.2.3 gcc -fPIC -O3 -DUSE_MMAP -c -o minigzip.o minigzip.c gcc -fPIC -O3 -DUSE_MMAP -o minigzip minigzip.o -L. libz.so.1.2.3
網を仕掛けます。
# touch /tmp/20081107mark ; sleep 1
そんでもって
# make install 2>&1 | tee log_install cp zlib.h zconf.h /usr/local/include chmod 644 /usr/local/include/zlib.h /usr/local/include/zconf.h cp libz.so.1.2.3 /usr/local/lib cd /usr/local/lib; chmod 755 libz.so.1.2.3 cd /usr/local/lib; if test -f libz.so.1.2.3; then \ rm -f libz.so libz.so.1; \ ln -s libz.so.1.2.3 libz.so; \ ln -s libz.so.1.2.3 libz.so.1; \ (ldconfig || true) >/dev/null 2>&1; \ fi cp zlib.3 /usr/local/share/man/man3 chmod 644 /usr/local/share/man/man3/zlib.3
えんや とっとえんや とっと 本当は もっと 絞りこめるようですが 個猫 は 吝嗇なので 小魚 一匹 逃しません ”/proc ”さえ 手にしようとします。 笑えよ!
# find / -cnewer /tmp/20081107mark ! -type d -print >/tmp/colectionfileall find: /proc/1551/fd/4: No such file or directory
大漁かな!
# cp /tmp/colectionfileall . # wc -l colectionfileall 1936 colectionfileall # sed -e '/^\/proc/d' colectionfileall >qqqqq # wc -l qqqqq 11 qqqqq # mv qqqqq colectionfileall # vi colectionfileall # cat colectionfileall /usr/local/lib/libz.so.1.2.3 /usr/local/lib/libz.so /usr/local/lib/libz.so.1 /usr/local/include/zlib.h /usr/local/include/zconf.h /usr/local/share/man/man3/zlib.3
ううーーんん これだけ?
”/usr/lib/libz.a”というものが 既に インストールされているものには 存在 するのですが 今回は 逃したようです なんでか?
考えても わからないのですから とりあえず 固めておきます。
# pwd /usr/local/src/105_zlib-1-2-3/zlib-1.2.3 # cd ../ # mkdir tgz-first # cd tgz-first/ # mv ../zlib-1.2.3/colectionfileall . # ls -l total 4 -rw-r--r-- 1 root root 163 Nov 7 23:02 colectionfileall # tar -T colectionfileall -cvzf zlib-1.2.3.tgz 2>&1 | tee log_gather tar: Member names contain `..' tar: Removing leading `/' from member names usr/local/lib/libz.so.1.2.3 usr/local/lib/libz.so usr/local/lib/libz.so.1 usr/local/include/zlib.h usr/local/include/zconf.h usr/local/share/man/man3/zlib.3 # ls -l | sed 1d -rw-r--r-- 1 root root 163 Nov 7 23:02 colectionfileall -rw-r--r-- 1 root root 232 Nov 7 23:26 log_gather -rw-r--r-- 1 root root 66746 Nov 7 23:26 zlib-1.2.3.tgz
まあ なにか出来たようです。それにしても ”libz.a” は 何処?
にゃんたろう 拝!
2008年11月 8日 (土) 22:04:07 JST 作成