mkpkg を 使用しての パッケージ 作成

次に

httpd-2.0.61.tar.gz の パッケージを 作る

パッケージを 作って行きます。その前に今回は /var/data/www 以下に イン ストールする予定ですのでまず

sv:~# mkdir -p /var/data/www
sv:~# cd /usr/local/src/003_apache/
# ls -l | sed 1d
-rw-------    1 root     root      5888526 Sep 20 10:05 httpd-2.0.61.tar.gz
-rw-r--r--    1 root     root          186 Sep 20 10:05 httpd-2.0.61.tar.gz.asc

材料の準備は完了です

展開

ファイルを展開します。

# tar xvzpf httpd-2.0.61.tar.gz 2>&1 | tee untar_httpd2-0-61

# ls -l | sed 1d
drwxr-xr-x   11 501      20           4096 Sep  5 04:58 httpd-2.0.61/
-rw-------    1 root     root      5888526 Sep 20 10:05 httpd-2.0.61.tar.gz
-rw-r--r--    1 root     root          186 Sep 20 10:05 httpd-2.0.61.tar.gz.asc
-rw-r--r--    1 root     root       109416 Sep 20 18:07 untar_httpd2-0-61

./configure

展開で作成されたディレクトリに移動して ”configure”を行います。 オプションとしては ”./configure --enable-so --prefix=/var/data/www/apache2”

# cd httpd-2.0.61
# ./configure --enable-so --prefix=/var/data/www/apache2 2>&1 | tee httpd_config_log
# mv httpd_config_log ../

make

make を 行います。

# make 2>&1 | tee httpd_make_log
# mv httpd_make_log ../

パッケージを作成しましょう

makepkg

本題の パッケージを作成しましょう

作業ディレクトリの作成

頭となる作業ディレクトリを作成します。

# mkdir -p work/var/data/www/apache2
# ls -R work/
work/:
var/

work/var:
data/

work/var/data:
www/

work/var/data/www:
apache2/

”make install”を 作成したディレクトリを元に 実行します

fake make install

# make install prefix=`pwd`/work/var/data/www/apache2 2>&1 | tee make_install_fake_log
....
Installing man pages and online manual
mkdir /usr/local/src/003_apache/httpd-2.0.61/work/var/data/www/apache2/man
mkdir /usr/local/src/003_apache/httpd-2.0.61/work/var/data/www/apache2/man/man1
mkdir /usr/local/src/003_apache/httpd-2.0.61/work/var/data/www/apache2/man/man8
mkdir /usr/local/src/003_apache/httpd-2.0.61/work/var/data/www/apache2/manual
Installing build system files
libtool: install: warning: \
`/usr/local/src/003_apache/httpd-2.0.61/srclib/apr-util/libaprutil-0.la'\
has not been installed in `/var/data/www/apache2/lib'
libtool: install: warning: \
`/usr/local/src/003_apache/httpd-2.0.61/srclib/apr/libapr-0.la' \
has not been installed in `/var/data/www/apache2/lib'
make[1]: Leaving directory `/usr/local/src/003_apache/httpd-2.0.61'

補足

この場合”work”ディレクトリ以降に 美味く作成しているか確認しておきま しょう 一部分ですが

# ls work/var/data/www/apache2/
bin/    cgi-bin/  error/   icons/    lib/   man/     modules/
build/  conf/     htdocs/  include/  logs/  manual/
# ls work/var/data/www/apache2/bin/
ab*          apu-config*  dbmmanage*   htdbm*     httpd*       rotatelogs*
apachectl*   apxs*        envvars      htdigest*  httxt2dbm*
apr-config*  checkgid*    envvars-std  htpasswd*  logresolve*

つまり ”work/var/data/www/apache2/”以降に 実際にファイルが インストールされて いる事がわかります。

移動

そこで ”work”ディレクトリに移動します

# cd work/

makepkg

本来の目的のパッケージを作成します。

# makepkg httpd-2.0.61-priv.tgz 2>&1 | tee makepkg_httpd-2-0-61_log
パッケージにシンボリックリンクが含まれています。

このパッケージに含まれているシンボリックリンクを "install/doinst.sh" と
いうインストールスクリプト用に変換しますか? 変換する場合、いったんシンボ
リックリンクは削除されますが、パッケージの大元のディレクトリで
    sh install/doinst.sh
とすれば、簡単に復旧できます。

パッケージ化する場合、シンボリックリンクはスクリプトに変換することをお勧
めします。

シンボリックリンクを変換しますか([y]es, [n]o)? y
シンボリックリンクを調べています...

var/data/www/apache2/lib/libapr-0.so.0 -> libapr-0.so.0.9.16
var/data/www/apache2/lib/libapr-0.so -> libapr-0.so.0.9.16
var/data/www/apache2/lib/libaprutil-0.so.0 -> libaprutil-0.so.0.9.16
var/data/www/apache2/lib/libaprutil-0.so -> libaprutil-0.so.0.9.16

インストール用スクリプトを作成しています...

( cd var/data/www/apache2/lib ; rm -rf libapr-0.so.0 )
( cd var/data/www/apache2/lib ; ln -sf libapr-0.so.0.9.16 libapr-0.so.0 )
( cd var/data/www/apache2/lib ; rm -rf libapr-0.so )
( cd var/data/www/apache2/lib ; ln -sf libapr-0.so.0.9.16 libapr-0.so )
( cd var/data/www/apache2/lib ; rm -rf libaprutil-0.so.0 )
( cd var/data/www/apache2/lib ; ln -sf libaprutil-0.so.0.9.16 libaprutil-0.so.0 )
( cd var/data/www/apache2/lib ; rm -rf libaprutil-0.so )
( cd var/data/www/apache2/lib ; ln -sf libaprutil-0.so.0.9.16 libaprutil-0.so )

シンボリックリンクを削除しています:

./var/data/www/apache2/lib/libapr-0.so.0
./var/data/www/apache2/lib/libapr-0.so
./var/data/www/apache2/lib/libaprutil-0.so.0
./var/data/www/apache2/lib/libaprutil-0.so

httpd-2.0.61-priv.tgz を作成中...
# ls -l | sed 1d
-rw-r--r--    1 root     root      5439248 Sep 20 18:48 httpd-2.0.61-priv.tgz
drwxr-xr-x    2 root     root         4096 Sep 20 18:48 install/
-rw-r--r--    1 root     root         1561 Sep 20 18:48 makepkg_httpd-2-0-61_log
drwxr-xr-x    3 root     root         4096 Sep 20 18:33 var/

後は ”pkgtool”を 利用して ”httpd-2.0.61-priv.tgz” を インストールすれば httpd-2.0.61 の インストールは 完了となるでしょう。

事後処理

今作成したものを 別の所に 移動させておきます

今作成したものを 別の所に 移動させておきます

# cp bind-9.4.1-P1-without-oenssl-verch.tgz /home/mm/tgz_dir/
# mv makepkg_log_bind ../../
# cd ../
# mv make_install_fake_log ../
# mv work/httpd-2.0.61-priv.tgz ../
# cd ../
# ls -l | sed 1d
drwxr-xr-x   13 501      20           4096 Sep 20 18:52 httpd-2.0.61/
-rw-r--r--    1 root     root      5439248 Sep 20 18:48 httpd-2.0.61-priv.tgz
-rw-------    1 root     root      5888526 Sep 20 10:05 httpd-2.0.61.tar.gz
-rw-r--r--    1 root     root          186 Sep 20 10:05 httpd-2.0.61.tar.gz.asc
-rw-r--r--    1 root     root        42128 Sep 20 18:13 httpd_config_log
-rw-r--r--    1 root     root       157237 Sep 20 18:29 httpd_make_log
-rw-r--r--    1 root     root        32080 Sep 20 18:43 make_install_fake_log
-rw-r--r--    1 root     root         1561 Sep 20 18:48 makepkg_httpd-2-0-61_log
-rw-r--r--    1 root     root       109416 Sep 20 18:07 untar_httpd2-0-61
# pwd
/usr/local/src/003_apache
# df
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/hda2              9617104   2029428   7091268  23% /
/dev/hda10             8420132    371192   7621212   5% /var/data

後は pkgtool の出番でしょう

にゃんたろう 拝!

2007年 9月20日 (木) 21:21:18 JST 作成


次に

mkpkg を 使用しての パッケージ 作成

Copyright © 2007. nyantarou All Rights Reserved.