戻る

libpng-1-2-33.tgz 作成

” 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 を作成する留意点

tgz を作成を 作成するのですが 二通りで 作成した後に 纏める方法を 取り ます。 つまり ./configure [--prefix=/path] を 行って それから make そ うして make install する方法で 作成します。それで 作成されたものを tgz に まとめておきます。

もう一つは 展開した ディレクトリが出来ます それに 移動して その下の scripts にある makefile.linux を コピーして それの一部を 修正して Makefile として make check を 行って make installを 行います それで 出来たファイルを tgz に まとめておきます。

本来何方でも十分に機能する筈なのですが 今回 epson の プリンター PM-A890 を 動作させるのに際しては 両方の 方法で作成した ものが 必要 になるという結果に なったので。重複するファイルを除いて 二通りで作成 された ファイルを 纏めて tgz にしました これを インストール する事に より 動作した ということです。

tgz を作成 その1

まず configure 、make 、 make install で作成します

./configure

最初は

# ./configure

を行います

make

へたら

# make

を行います

make install

”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 が 重要で す 本来は削除するのです。

tgz を作成 その2

さて 一度 展開したディレクトリを 削除します。

# rm -r libpng-1.2.33

展開(伸長)

展開します

# tar zxvf libpng-1.2.33.tar.gz 

今回は ”./configure ” は 行わずに 展開したディレクトリの その下の scripts/ ディレクトリの makefile.linux を 使用します。

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 test

さて make ですが make test を 行います。

# make test
...
libpng passes test

さて make install するのですが、 その前に 同じような処理をして tgz 作 成の 前準備を してから make install を 行います。

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 が 二つ出来たのですが 今回は その二つは使用しないで新しく 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 作成


戻る

Copyright © 2006.-2008. nyantarou All Rights Reserved.