” libpng-1.2.33.tar.gz ” を 入手しました。場所は
http://www.libpng.org/pub/png/libpng.html
です MD5 checksums: を 確認するのを忘れないように
# md5sum libpng-1.2.33.tar.gz 38b174a0eef727eaccc3e5a3cb03b85f libpng-1.2.33.tar.gz /* 比較しておきましょう */ 38b174a0eef727eaccc3e5a3cb03b85f libpng-1.2.33.tar.gz /* MD5 checksums: */
展開します
# tar zxvf libpng-1.2.33.tar.gz # ls -l | sed 1d drwxr-xr-x 5 1004 101 4096 Oct 31 22:42 libpng-1.2.33/ -rw-r--r-- 1 fdopstm users 800321 Nov 8 22:08 libpng-1.2.33.tar.gz
tgz を作成を 作成するのですが 二通りで 作成した後に 纏める方法を 取り ます。 つまり ./configure [--prefix=/path] を 行って それから make そ うして make install する方法で 作成します。それで 作成されたものを tgz に まとめておきます。
もう一つは 展開した ディレクトリが出来ます それに 移動して その下の scripts にある makefile.linux を コピーして それの一部を 修正して Makefile として make check を 行って make installを 行います それで 出来たファイルを tgz に まとめておきます。
本来何方でも十分に機能する筈なのですが 今回 epson の プリンター PM-A890 を 動作させるのに際しては 両方の 方法で作成した ものが 必要 になるという結果に なったので。重複するファイルを除いて 二通りで作成 された ファイルを 纏めて tgz にしました これを インストール する事に より 動作した ということです。
まず configure 、make 、 make install で作成します
最初は
# ./configure
を行います
へたら
# make
を行います
”make install”するのですが後で tgz に するために
# touch /tmp/20081111mark ; sleep 1
というファイルを作成してから ”make install”を 行います。
# make install
こうする事で ”make install”を 行い ました。その後 今回の場合は ”/tmp/20081111mark”より後で作成されたファイルの 一覧を ”find ” を 使って 探します
find / -cnewer /tmp/20081111mark ! -type d -print >/tmp/file-list_01 find: /proc/3718/fd/4: No such file or directory
但し、このファイルには /proc ディレクトリの ファイルも また 他に 生成 された 関係の無いファイルも 含まれるので整理をしないといけません。 上記の場合 ”/proc/3718/fd/4” が 生成されて消滅しているので 無いよ といっ ているようです。
# sed -e '/^\/proc/d' /tmp/file-list_01 >list_01 # vi list_01
整理した ファイル list_01 を 元に tar を 使って tgz を 作成します。
# tar -T list_01 -czvf libpng-1.2.33.tgz
これだけの ものを とりあえず 保管しておきます。
-rw-r--r-- 1 root root 638 Nov 11 22:34 list_01 -rw-r--r-- 1 root root 807024 Nov 11 22:36 libpng-1.2.33.tgz
本来は libpng-1.2.33.tgz で 十分なのですが 今回は list_01 が 重要で す 本来は削除するのです。
さて 一度 展開したディレクトリを 削除します。
# rm -r libpng-1.2.33
展開します
# tar zxvf libpng-1.2.33.tar.gz
今回は ”./configure ” は 行わずに 展開したディレクトリの その下の scripts/ ディレクトリの makefile.linux を 使用します。
修正する場所は 2箇所です 以下のような場所を修正しました。
# cd libpng-1.2.33 # cp scripts/makefile.linux . # vi makefile.linux # diff -s makefile.linux scripts/makefile.linux 38,39c38,39 < ZLIBLIB=/usr/lib /* where libz.a */ < ZLIBINC=/usr/include --- > ZLIBLIB=../zlib > ZLIBINC=../zlib # mv makefile.linux Makefile
これで ”./configure ”はおこないませんが、 ”Makefile”が作成された 事になります。
さて make ですが make test を 行います。
# make test ... libpng passes test
さて make install するのですが、 その前に 同じような処理をして tgz 作 成の 前準備を してから make install を 行います。
それでは
# rm /tmp/20081111mark # touch /tmp/20081111mark ; sleep 1
時間をリセットしておきます。
# make install
収集リストを 作成します
# find / -cnewer /tmp/20081111mark ! -type d -print >/tmp/file-list_02 find: /proc/1208/fd/4: No such file or directory
先程と同じように 修正して ”list_02”を 作成します。
# tar -T list_02 -cvzf libpng-1.2.33.tgz
出来上がりました
# ls -l | sed 1d -rw-r--r-- 1 root root 598 Nov 11 23:01 list_02 -rw-r--r-- 1 root root 398644 Nov 11 23:05 libpng-1.2.33.tgz
さて tgz が 二つ出来たのですが 今回は その二つは使用しないで新しく tgz を 作成します
そのために リストを 使用します
# ls -l | sed 1d -rw-r--r-- 1 root root 638 Nov 11 22:34 list_01 -rw-r--r-- 1 root root 598 Nov 11 23:01 list_02 # cat list_01 list_02 >total-col # wc -l total-col 41 total-col # sort total-col | uniq | wc -l 27 # mv qqqqq total-col
そんでもって
# tar -T total-col -cvzf libpng-1.2.33.tgz # ls -l | sed 1d -rw-r--r-- 1 root root 782198 Nov 11 23:18 libpng-1.2.33.tgz -rw-r--r-- 1 root root 820 Nov 11 23:15 total-col
これで libpng-1.2.33.tgz が 出来ました。
にゃんたろう 拝!
2008年11月11日 (火) 23:52:34 JST 作成