玄箱コンパイル祭り(1)

2004/12/18作成



■wgetをコンパイル

そろそろftpコマンドでダウンロードするのも疲れましたので、wgetを導入してみますか。
別にlynxでもよかったんですけど、そこまで必要ないと思いましたので。
リンクはhttpですが、ftpでもダウンロードできます。
# tar zxvf wget-1.9.1.tar.gz
# cd wget-1.9.1
# ./configure
# make
# make install
# which wget
/usr/local/bin/wget
# wget --version
GNU Wget 1.9.1

Copyright (C) 2003 Free Software Foundation, Inc.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

Originally written by Hrvoje Niksic <hniksic@xemacs.org>.
ふつうにインストールできます。
以降は、ftpだろうがhttpだろうがtar玉をwgetで入手することができるようになります。
ところが、NA(P)Tの中の人やhttpのproxyの中の人はいちいちwgetにオプションを付けなければいけません。
でも安心してください。/usr/local/etcにwgetrcという初期設定ファイルがちゃんとあります。
passiveな人は
passive_ftp = on
proxyな人は
http_proxy = http://proxy.example.com:8080/
ftp_proxy = http://proxy.example.com:8080/
use_proxy = on
みたいな感じです。
他の項目の設定方法はwgetrcに詳しく載っているので必要な人は読んでください。

■Rubyをコンパイル

rubyistのはしくれとしては、Rubyを入れなくては話になりません。
wgetが導入できたので
# wget ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.1.tar.gz
# tar zxvf ruby-1.8.1.tar.gz
# cd ruby-1.8.1
# ./configure --enable-shared
# LD_RUN_PATH=/usr/local/lib
# export LD_RUN_PATH
# make
# make install
Linuxの持病なのか、やっぱりLD_RUN_PATHを設定していないとライブラリのリンク切れになってしまいます。
ところで、環境変数のexportをするときに"export LD_RUN_PATH=/usr/local/lib"と一気にやっているのをよく見かけますが、本当はこれダメなのだそうです。
理由は忘れましたが、ひょっとしたら古いshなどでは通らない可能性があるのかもしれません。

■Apache2をコンパイル

Apache2をいれましょう。
モジュールはとりあえずmod_soだけを組み込んでいくことにします。
セキュリティを考えたら他のオプションも設定した方がいいと思いますが、ここでは説明しません。
ここではインストールが目的なので、httpd.confについては特に触れません。
# wget http://www.meisei-u.ac.jp/mirror/apache/dist/httpd/httpd-2.0.52.tar.gz
# tar zxvf httpd-2.0.52.tar.gz
# cd httpd-2.0.52
# ./configure --enable-so
# make
# make install
# /usr/local/apache2/bin/httpd -l
Compiled in modules:
core.c
mod_access.c
mod_auth.c
mod_include.c
mod_log_config.c
mod_env.c
mod_setenvif.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_imap.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.c
# /usr/local/apache2/apachctl configtest
Syntax OK
# /usr/local/apache2/apachctl start
こうやってみるとデフォルトのhttpdって要らないのが多いですね。
ちなみに、ホスト名のFQDN(完全修飾ドメインネーム)がわからないと、configtestに失敗します。
dnsで自分のアドレスが引けるようになっているか、/etc/hostsに書いておいてください。。
デフォルトではListenが*:80になっているので、localhostのFQDNも書かないとエラーが出てしまいます。(localhostは必須では無いようです)
# /etc/hosts
127.0.0.1 localhost.example.com localhost
192.168.11.150 KURO-BOX.example.com KURO-BOX
本格的に設定するときは、httpd.confのListenをbindするIPアドレスのみを書けばOKです。

■PostgreSQLをコンパイル

PostgreSQLを入れます。
以前書いた記事ではSRAとか日本PostgreSQLユーザ会から入手すると書いてありましたが、リンクが遠くて見つけづらいので、本家に行った方が早いです。
SRAといえば、以前はPostgreSQLべったりだった印象がありますが、事業化を進めるうちにだいぶ様変わりしてしまったようです。
それでも日本語ドキュメントを提供し続けてくれるのは素直にありがたいと思います。
ではさっそくwgetで入手しましょう。
1つのIPアドレスから1つのftpセッションしか張れないようなので、Windowsなどで下見をしている場合はセッションを切っておきましょう。
# wget ftp://ftp.jp.postgresql.org/source/v7.4.6/postgresql-7.4.6.tar.gz
# tar zxvf postgresql-7.4.6.tar.gz
# ./configure --enable-multibyte --with-CXX
# make
# make install
とりあえずマルチバイト対応とC++のライブラリを入れてあります。
perlなひとやJavaなひとなどはほかのオプションは自分で調べて入れてください。
C++のライブラリはrubyのために入れました。
FreeBSDに入れたときはgmakeを入れないと入らなかったのですが、玄箱に入っているmakeはgmakeだったらしく、そのまんまでもmakeできました。
それもそのはず。
# make --version
GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
Built for powerpc-hardhat-linux-gnu
Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

Report bugs to <bug-make@gnu.org>.
というオチですか。
これで終わりじゃないですよ。
まだセマフォの変更が残ってます。
FreeBSDではカーネルを再構築しましたが、Linuxでは/procファイルを変更するだけでOKです。
便利な世の中になったものです(違)
# echo 134217728 > /proc/sys/kernel/shmall
# echo 134217728 > /proc/sys/kernel/shmmax
このままだと再起動するとまた元に戻ってしまうので、/etc/sysctl.confにも書いておきます。
# /etc/sysctl.conf
kernel.shmall = 134217728
kernel.shmmax = 134217728
このあとのデータベースの初期化や起動はこっちを読んでください。

もどる