2009年7月4日土曜日

【フムフム本】付録C Kahuaインストール


* 付録C Kahuaインストール
- 頭痛が酷い。。。
- メモを取りながら。
** C.1 準備
- 環境確認。

scheme $ gosh -V
Gauche scheme interpreter, version 0.8.14 [utf-8,pthreads]

scheme $ getconf GNU_LIBPTHREAD_VERSION
NPTL 2.8.90

scheme $ uname -a
Linux adonis 2.6.27-14-generic #1 SMP Wed Apr 15 19:29:46 UTC 2009 x86_64 GNU/Linux

scheme $

- いけるかな?

scheme $ which make
/usr/bin/make

scheme $ which autoconf

- autoconfがいない。調査してインストールする。

scheme $ aptitude search autoconf
p autoconf - automatic configure script builder
p autoconf-archive - The Autoconf Macro Archive
p autoconf-doc - automatic configure script builder documen
p autoconf2.13 - automatic configure script builder (obsole

scheme $ aptitude show autoconf
パッケージ: autoconf
状態: インストールされていません
バージョン: 2.61-7ubuntu1
優先度: 任意
セクション: devel
メンテナ: Ubuntu Core Developers
展開サイズ: 1716k
依存: perl (> 5.005), m4 (>= 1.4.8), debianutils (>= 1.8)
推奨: automake | automaken
提案: autoconf2.13, autobook, autoconf-archive, gnu-standards, autoconf-doc,
libtool, gettext
競合: autoconf2.13 (< 2.13-47), gettext (< 0.10.39)
説明: automatic configure script builder
The standard for FSF source packages. This is only useful if you write your
own programs or if you extensively modify other people's programs.

For an extensive library of additional Autoconf macros, install the
`autoconf-archive' package. For a book that explains how to use Autoconf,
Automake, and Libtool in conjunction, install the `autobook' package.

The Debian project regards the full documentation for autoconf to be non-free,
so it is not included in Debian. Nevertheless, the non-free distribution that
accompanies Debian includes the manual in its `autoconf-doc' package.

This version of autoconf is not compatible with scripts meant for Autoconf 2.13
or earlier. If you need support for such scripts, you must also install the
autoconf2.13 package.

scheme $ sudo aptitude -s install autoconf
[sudo] password for aka:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています... 完了
以下の新規パッケージがインストールされます:
autoconf automake{a} autotools-dev{a} m4{a}
0 個のパッケージを更新、 4 個を新たにインストール、 0 個を削除予定、14 個が更新されていない。
1294kB のアーカイブを取得する必要があります。 展開後に 4243kB のディスク領域が新たに消費されます。
先に進みますか? [Y/n/?] Y
パッケージのダウンロード・インストール・削除をおこないます。

scheme $ sudo aptitude install autoconf
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています... 完了
以下の新規パッケージがインストールされます:
autoconf automake{a} autotools-dev{a} m4{a}
0 個のパッケージを更新、 4 個を新たにインストール、 0 個を削除予定、14 個が更新されていない。
1294kB のアーカイブを取得する必要があります。 展開後に 4243kB のディスク領域が新たに消費されます。
先に進みますか? [Y/n/?] Y
拡張状態情報を書き込んでいます... 完了
取得:1 http://jp.archive.ubuntu.com intrepid/main m4 1.4.11-1 [263kB]
取得:2 http://jp.archive.ubuntu.com intrepid/main autoconf 2.61-7ubuntu1 [449kB]
取得:3 http://jp.archive.ubuntu.com intrepid/main autotools-dev 20080123.1 [62.6kB]
取得:4 http://jp.archive.ubuntu.com intrepid/main automake 1:1.10.1-3 [519kB]
1294kB を 0s 秒でダウンロードしました (2466kB/s)
debconf: フロントエンドの初期化に失敗しました: Dialog
debconf: (Dialog フロントエンドはダムターミナル、emacs のシェルバッファ、もしくはユーザが制御しているターミナルではない場合には動作しません。)
debconf: フロントエンドをフォールバックします: Readline
未選択パッケージ m4 を選択しています。
(データベースを読み込んでいます ... 現在 173292 個のファイルとディレクトリがインストールされています。)
(.../archives/m4_1.4.11-1_amd64.deb から) m4 を展開しています...
未選択パッケージ autoconf を選択しています。
(.../autoconf_2.61-7ubuntu1_all.deb から) autoconf を展開しています...
未選択パッケージ autotools-dev を選択しています。
(.../autotools-dev_20080123.1_all.deb から) autotools-dev を展開しています...
未選択パッケージ automake を選択しています。
(.../automake_1%3a1.10.1-3_all.deb から) automake を展開しています...
Processing triggers for man-db ...
Processing triggers for doc-base ...
Processing 1 added doc-base file(s)...
Registering documents with scrollkeeper...
m4 (1.4.11-1) を設定しています ...

autoconf (2.61-7ubuntu1) を設定しています ...

autotools-dev (20080123.1) を設定しています ...
automake (1:1.10.1-3) を設定しています ...

パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています... 完了
拡張状態情報を書き込んでいます... 完了

scheme $ which autoconf
/usr/bin/autoconf

scheme $ autoconf --version
autoconf (GNU Autoconf) 2.61
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software. You may redistribute copies of it under the terms of
the GNU General Public License .
There is NO WARRANTY, to the extent permitted by law.

Written by David J. MacKenzie and Akim Demaille.

scheme $

- OK.

- 続いてKahuaのDLからインストールへ。

scheme $ cd /tmp

tmp $ curl -O http://www.kahua.org/download/kahua/Kahua-1.0.7.3.tgz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 485k 100 485k 0 0 128k 0 0:00:03 0:00:03 --:--:-- 129k

tmp $ cd ~/local/var

var $ mkdir kahua

var $ cd kahua

kahua $ tar xzf /tmp/Kahua-1.0.7.3.tgz

kahua $ cd Kahua-1.0.7.3/

Kahua-1.0.7.3 $ ./configure --prefix=/usr/local/kahua --with-site-bundle=$HOME/local/var/kahua/site
checking for gosh... /usr/local/bin/gosh
checking for gauche-config... /usr/local/bin/gauche-config
checking for gauche-package... /usr/local/bin/gauche-package
checking for gauche-install... /usr/local/bin/gauche-install
checking for gauche-cesconv... /usr/local/bin/gauche-cesconv
checking for a BSD-compatible install... /usr/bin/install -c
checking for makeinfo... makeinfo
checking for gzip... gzip
checking check Gauche version and thread type... seem good
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating doc/Modules/Makefile
config.status: creating cgi/Makefile
config.status: creating emacs/Makefile
config.status: creating plugins/Makefile
config.status: creating test/Makefile
=== configuring in examples (/home/aka/local/var/kahua/Kahua-1.0.7.3/examples)
configure: running /bin/bash ./configure --disable-option-checking '--prefix=/usr/local/kahua' '--with-site-bundle=/home/aka/local/var/kahua/site' --cache-file=/dev/null --srcdir=.
checking for gosh... /usr/local/bin/gosh
checking for gauche-config... /usr/local/bin/gauche-config
checking for gauche-package... /usr/local/bin/gauche-package
checking for gauche-install... /usr/local/bin/gauche-install
checking for gauche-cesconv... /usr/local/bin/gauche-cesconv
checking for a BSD-compatible install... /usr/bin/install -c
checking for makeinfo... makeinfo
checking for gzip... gzip
configure: creating ./config.status
config.status: creating Makefile

Kahua-1.0.7.3 $ make
cd src; make all
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/src' に入ります
/usr/local/bin/gosh ../src/make-script.scm "/usr/local/bin/gosh" "/usr/local/kahua/lib/kahua" kahua-spvr
/usr/local/bin/gosh ../src/make-script.scm "/usr/local/bin/gosh" "/usr/local/kahua/lib/kahua" kahua-admin
/usr/local/bin/gosh ../src/make-script.scm "/usr/local/bin/gosh" "/usr/local/kahua/lib/kahua" kahua-install
/usr/local/bin/gosh ../src/make-script.scm "/usr/local/bin/gosh" "/usr/local/kahua/lib/kahua" kahua-shell
/usr/local/bin/gosh ../src/make-script.scm "/usr/local/bin/gosh" "/usr/local/kahua/lib/kahua" kahua-httpd
/usr/local/bin/gosh ../src/make-script.scm "/usr/local/bin/gosh" "/usr/local/kahua/lib/kahua" kahua-dbutil
/usr/local/bin/gosh ../src/make-script.scm "/usr/local/bin/gosh" "/usr/local/kahua/lib/kahua" kahua-config
/usr/local/bin/gosh ../src/make-script.scm "/usr/local/bin/gosh" "/usr/local/kahua/lib/kahua" kahua-package
/usr/local/bin/gosh ../src/make-script.scm "/usr/local/bin/gosh" "/usr/local/kahua/lib/kahua" kahua-user
test ! -f kahua.conf || chmod +w kahua.conf
sed -e "s@##SOCKET_BASE_DIR##@/usr/local/kahua/tmp/kahua@" \
-e "s@##localstatedir##@/usr/local/kahua/var/kahua@" \
-e "s@##KAHUA_STATICDIR##@/usr/local/kahua/var/kahua/static@" \
kahua.conf.sample > kahua.conf
chmod -w kahua.conf
/usr/local/bin/gosh ./make-testconf.scm .. ..
test ! -f kahua/config.scm || chmod +w kahua/config.scm
sed -e "s@##sysconfdir##@/usr/local/kahua/etc/kahua@" \
-e "s@##localstatedir##@/usr/local/kahua/var/kahua@" \
-e "s@##SOCKET_BASE_DIR##@/usr/local/kahua/tmp/kahua@" \
-e "s@##KAHUA_STATICDIR##@/usr/local/kahua/var/kahua/static@" \
-e "s@##package##@kahua@" \
-e "s@##KAHUA_VERSION##@1.0.7.3@" \
kahua/config.scm.in > kahua/config.scm
chmod -w kahua/config.scm
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/src' から出ます
cd cgi; make all
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/cgi' に入ります
../cgi/fix-shebang.sh "/usr/local/bin/gosh" "/usr/local/kahua/lib/kahua" "/usr/local/kahua/var/kahua" \
"/usr/local/kahua/tmp/kahua" "/usr/local/kahua/var/kahua/cgilog" no kahua.cgi.in kahua.cgi
chmod -w kahua.cgi
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/cgi' から出ます
cd emacs; make all
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/emacs' に入ります
sed "s@##bindir##@/usr/local/kahua/bin@" kahua.el.in > kahua.el.tmp && \
mv kahua.el.tmp kahua.el
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/emacs' から出ます
cd plugins; make all
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/plugins' に入ります
make[1]: `all' に対して行うべき事はありません.
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/plugins' から出ます
cd examples; make all
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/examples' に入ります
make[1]: `all' に対して行うべき事はありません.
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/examples' から出ます
cd test; make all
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/test' に入ります
make[1]: `all' に対して行うべき事はありません.
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/test' から出ます
cd doc/Modules; make all
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/doc/Modules' に入ります
/usr/local/bin/gosh ./extract -en -o kahua-refe.texi kahua-ref.texi
if test Xmakeinfo != X -a Xgzip != X; then \
makeinfo --no-warn kahua-refe.texi; \
rm -rf kahua-refe.info*.gz; \
gzip kahua-refe.info; \
fi
/usr/local/bin/gosh ./extract -jp -o kahua-refj.texi kahua-ref.texi
if test Xmakeinfo != X -a Xgzip != X; then \
makeinfo --no-warn kahua-refj.texi; \
rm -rf kahua-refj.info*.gz; \
gzip kahua-refj.info; \
fi
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/doc/Modules' から出ます

Kahua-1.0.7.3 $ make -s check
Testing kahua.test.xml ... passed.
Testing persistence/efs (efs:_tmpefs) ... passed.
Testing index slots (efs) ... passed.
Testing rollback ... passed.
Testing entry-method ... passed.
Testing user ... passed.
Testing kahua.config ... passed.
Testing gsid ... passed.
Testing kahua.session ... passed.
Testing kahua.partcont ... passed.
Testing kahua.server ... passed.
Testing kahua.dbm ... passed.
Testing worker scripts ... passed.
Testing redirect/cont ... passed.
Testing define-method-rule ... passed.
Testing kahua-call-with-current-context ... passed.
Testing lambdabooks test scripts ... passed.
Testing wiki-iki test scripts ... passed.
Testing nqueen test scripts ... passed.
Testing foldlist test scripts ... passed.
Testing supervisor script ... passed.
Testing kahua-httpd script ... passed.
Testing kahua-admin script ... passed.
Testing developer ... passed.
Testing kahua-shell script ... passed.
Testing sandbox test ... passed.
Testing plugin manager ... passed.
Testing query plugin ... passed.

Kahua-1.0.7.3 $ sudo make install
cd src; make install
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/src' に入ります
/usr/local/bin/gauche-install -m 0755 -d /usr/local/kahua/etc/kahua /usr/local/kahua/libexec
/usr/local/bin/gauche-install -m 0775 -d /usr/local/kahua/var/kahua
/usr/local/bin/gauche-install -m 0770 -d /usr/local/kahua/var/kahua/checkout /usr/local/kahua/var/kahua/logs
/usr/local/bin/gauche-install -m 0770 -d /usr/local/kahua/tmp/kahua /usr/local/kahua/var/kahua/tmp
/usr/local/bin/gauche-install -m 0444 -T /usr/local/kahua/lib/kahua -S . kahua-spvr.scm kahua-admin.scm kahua-install.scm kahua-shell.scm kahua-server.scm kahua-keyserv.scm kahua-httpd.scm kahua-dbutil.scm kahua-config.scm kahua-package.scm kahua-user.scm kahua.scm kahua/gsid.scm kahua/persistence.scm kahua/user.scm kahua/config.scm kahua/session.scm kahua/server.scm kahua/developer.scm kahua/partcont.scm kahua/elem.scm kahua/util.scm kahua/test/xml.scm kahua/test/worker.scm kahua/sandbox.scm kahua/plugin.scm kahua/pdf.scm kahua/pdf/interp.scm kahua/pdf/main.scm kahua/pdf/monad.scm kahua/pdf/srfi-48-draft.scm kahua/pdf/srfi-48.scm kahua/pdf/state.scm kahua/pdf/typeset.scm kahua/pdf/util.scm kahua/error-report.scm kahua/thread-pool.scm kahua/persistence/fs.scm kahua/persistence/efs.scm kahua/persistence/dbi.scm kahua/persistence/mysql.scm kahua/persistence/postgresql.scm kahua/protocol/worker.scm kahua/protocol/http.scm kahua/xml-template.scm
/usr/local/bin/gauche-install -m 0555 -T /usr/local/kahua/bin kahua-spvr kahua-admin kahua-install kahua-shell kahua-httpd kahua-dbutil kahua-config kahua-package kahua-user
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/src' から出ます
cd cgi; make install
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/cgi' に入ります
if test "/usr/local/kahua/libexec/kahua" != ""; then \
/usr/local/bin/gauche-install -m 0755 -d /usr/local/kahua/libexec/kahua; \
for f in kahua.cgi ; do \
/usr/local/bin/gauche-install -m 0555 $f /usr/local/kahua/libexec/kahua/$f; \
done; \
fi; \
if test "/usr/local/kahua/var/kahua/cgilog" != ""; then \
/usr/local/bin/gauche-install -m 0750 -d /usr/local/kahua/var/kahua/cgilog; \
fi; \

make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/cgi' から出ます
cd plugins; make install
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/plugins' に入ります
/usr/local/bin/gauche-install -m 0775 -d /usr/local/kahua/var/kahua/plugins
/usr/local/bin/gauche-install -m 444 -T /usr/local/kahua/var/kahua/plugins -S . allow-module.scm sendmail.scm query.scm fileio.scm
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/plugins' から出ます

Kahua-1.0.7.3 $ PARH=/usr/local/kahua/bin:$PATH

Kahua-1.0.7.3 $ which kahua-package
/usr/local/kahua/bin/kahua-package

Kahua-1.0.7.3 $ kahua-package create ~/local/var/kahua/site

Kahua-1.0.7.3 $ find ~/local/var/kahua/site
/home/aka/local/var/kahua/site
/home/aka/local/var/kahua/site/static
/home/aka/local/var/kahua/site/plugins
/home/aka/local/var/kahua/site/logs
/home/aka/local/var/kahua/site/socket
/home/aka/local/var/kahua/site/app-servers
/home/aka/local/var/kahua/site/tmp
/home/aka/local/var/kahua/site/database
/home/aka/local/var/kahua/site/templates
/home/aka/local/var/kahua/site/etc
/home/aka/local/var/kahua/site/etc/kahua.conf
/home/aka/local/var/kahua/site/etc/user.conf
/home/aka/local/var/kahua/site/run
/home/aka/local/var/kahua/site/app

Kahua-1.0.7.3 $ rm ~/local/var/kahua/site/app-servers

Kahua-1.0.7.3 $ make install-examples
cd examples; make install-examples
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/examples' に入ります
/usr/local/kahua/bin/kahua-install -S /home/aka/local/var/kahua/site -t script foldlist/foldlist.kahua lambdabooks/lambdabooks.kahua lambdabooks/lister.kahua lambdabooks/login.kahua lambdabooks/book.kahua lambdabooks/review.kahua lambdabooks/partner.kahua lambdabooks/useradmin.kahua wiki-iki/wiki-iki.kahua login/login.kahua nqueen/nqueen.kahua lazy-nqueen/lazy-nqueen.kahua lambdacalcul/lambdacalcul.kahua
/usr/local/kahua/bin/kahua-install -S /home/aka/local/var/kahua/site -t static lambdabooks/images/lambda-books-logo.png lambdabooks/images/separator.jpg wiki-iki/wiki-iki.css wiki-iki/images/wiki-iki.png
/usr/local/kahua/bin/kahua-install -S /home/aka/local/var/kahua/site -t base -r app-servers --no-overwrite app-servers.sample
/usr/local/kahua/bin/kahua-install -S /home/aka/local/var/kahua/site -t plugin -r allow-module.scm --no-overwrite ../plugins/allow-module.scm
/usr/local/bin/gosh -I. -I/usr/local/kahua/lib/kahua ./lambdabooks.init -S /home/aka/local/var/kahua/site
make[1]: ディレクトリ `/home/aka/local/var/kahua/Kahua-1.0.7.3/examples' から出ます

Kahua-1.0.7.3 $ kahua-spvr -S ~/local/var/kahua/site -H 8088

- お、lambda booksだ!
- Gauche0.8.14とKahua-1.0.7.3でも、本の通りでイン
ストールできた。

** C.4 Emacsの環境
- ~/local/lib/elispに入れる。
Kahua-1.0.7.3 $ cd emacs

emacs $ cp kahua.el ~/local/lib/elisp/

emacs $

- emacs初期化ファイルに追記。
(when (eq system-type 'gnu/linux)
(require 'kahua)
(setq auto-mode-alist
(append '(("\\.kahua$" . kahua-mode)) auto-mode-alist)))
- OK.

こつこつ。

0 件のコメント: