パッケージを 作って行きます。その前に今回は /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 --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 2>&1 | tee httpd_make_log # mv httpd_make_log ../
パッケージを作成しましょう
本題の パッケージを作成しましょう
頭となる作業ディレクトリを作成します。
# 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”を 作成したディレクトリを元に 実行します
# 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 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 作成