nekoie (471) の日記

2002 年 06 月 22 日
午前 02:18

普通の日記

今日(昨日)は待ちに待った『ラブやん』(田丸浩史・講談社)の発売日。
素早くゲット……と思ったものの、大きな本屋には見当たらず。
何故だ!?早速売り切れか!?
とりあえず、近くの小さな本屋に、一冊だけ残っている(?)のを発見。確保。

ううむ、素晴らしい……。感涙しつつ読了。このペド野郎ッ ロリッ 最終日東館壁際ッ!!!

ついでに、英辞郎1800円も購入。おまけ(?)の本が異様に豪華で、中には『英辞郎物語』『英辞郎誕生の舞台裏』といった内容が満載。

酒を呑みつつ、本日の生活も終了の予定。

2002 年 06 月 20 日
午前 01:09

耳祭り

朝の続き

とりあえず、prefixを/var/lib/apache_1.3.26に直してから、構築し直し。
朝にインストールした/usr/local/apache_1.3.26の方は、rm -rf。

httpd.confを新しい方へコピーし、内容に問題がないかどうか確認アンド修正。

シンボリックリンクを貼り直す。

# cd /var/lib
# rm apache
# ln -s apache_1.3.26 apache

そして、古いhttpdを止め、新しいhttpdを動かす。

# apache_1.3.22/bin/apachectl stop
# apache/bin/apachectl start

動く。
これで大丈夫……なのか?

済。

2002 年 06 月 19 日
午前 10:38

全国apache入れ替え祭り

今や、全国各地でapache入れ替え祭りが始まった!!
耳祭り!耳祭り!

今回のapache構築設計:

  • mod_fastcgiを組み込む
  • 自作の怪しげパッチを当てる
  • mod_soには頼らない
  • インストール先は/var/lib/apache-1.3.26。/var/lib/apacheにシンボリックリンク。
  • 今あるhttpd.confを流用

以上。今回はWebDAVは無し(当分利用しそうな場面が無くなってしまった為)。

準備するもの:

構築手順:

$ tar xvfz apache_1.3.26.tar.gz
$ cd apache_1.3.26
$ patch -p1 -i ../apache_1.3.23_nondakure.patch
$ patch -p1 -i ../apache_1.3.23_no404.patch
$ patch -p1 -i ../apache_1.3.23_variableUserDirSuffixForSuExec.patch
$ vi ../aconf.sh

--prefixを「/usr/local/apache_1.3.26」にし、その他色々オンオフ変更。

--prefix=/usr/local/apache_1.3.26 \
--disable-rule=PARANOID \
--server-uid=web \
--server-gid=web \
--suexec-caller=web \
その他色々

$ sh ../aconf.sh
$ cd src/modules
$ tar xvfz ../../../mod_fastcgi-2.2.12.tar.gz
$ mv mod_fastcgi-2.2.12 fastcgi
$ cd -
$ vi ../aconf.sh

以下の行を追加。

--activate-module=src/modules/fastcgi/mod_fastcgi.c \

$ sh ../aconf.sh

mod_fastcgiのMakefileは、なんとなく、so用なのか、パスが変なのか、動かなかったので、libfastcgi.aを作るだけにするように、修正しておく。

$ vi src/modules/fastcgi/Makefile

all: libfastcgi.a

$ make
$ su
# make install

以上でインストールは完了。
自分は/var/lib/apache/htdocsは使わずに、ウェブスペースは全て/home/usernameの中に入れる方針でやっていたので、後はhttpd.confをコピーし、/var/lib/apacheのシンボリックリンク先を1.3.26にし、再起動すればオーケー!

でも、それはまた後で。
とりあえず、今日のapache入れ替え祭りはここまで。
耳祭り!耳祭り!

2002 年 03 月 21 日
午後 09:44

rrdtoolを準備(&無駄gd-2.0.1)。

rrdtoolを導入。
とりあえず、練習として、手元マシンに導入。

まず、zlib, libpng, libjpeg, gdのバージョン確認。

  • libz.so = 1.1.4。吉。
  • libpng.so = 3.1.2.1。???sonameからヴァージョン番号が分からない‥‥。
  • libjpeg.so = 62.0.0。これはどうなのだろうか‥‥。
  • gdは入っていない気がする‥‥。

という訳で、過去の日記を見つつ、適当にlibpng, linjpeg, gdの最新版の構築を行った。
詳細はgd以外省略。

gd-2.0.1。

$ wget http://www.boutell.com/gd/http/gd-2.0.1.tar.gz
$ tar xvfz gd-2.0.1.tar.gz
$ cd gd-2.0.1
$ lv readme.jpn

コンパイルオプションに「-DJISX0208」を付けるか否かで、UTF-8の日本語文字列を使うか、普通にjis, sjis, eucな日本語文字列を使うかが分かれるらしい。とりあえずは、EUCを流し込むと勝手に仮定し、「-DJISX0208」を付ける事にした。
更に、iconv()を使って文字列をどうにかする場合は、更に「-DHAVE_ICONV -DHAVE_STDARG_H -DHAVE_ERRNO_H」も付けておくと良いらしい。手元マシンのglibcは新し目なので、iconv()が使えるので、付けておく事に(しかし、遠隔マシンの方のglibcは古目。一応libiconvは入れてあるが、どうしたものか?)。

$ vi Makefile

CFLAGS=-O3 -march=i686 -DHAVE_LIBPNG -DHAVE_LIBJPEG -DHAVE_LIBFREETYPE -DJISX0208 -DHAVE_ICONV -DHAVE_STDARG_H -DHAVE_ERRNO_H
INCLUDEDIRS=-I. -I/usr/X11R6/include/freetype2 -I/usr/include/X11 -I/usr/X11R6/include/X11 -I/usr/local/include -I/usr/include
LIBDIRS=-L/usr/local/lib -L/usr/lib/X11 -L/usr/X11R6/lib -L/usr/lib

$ su
# make install
# ldconfig -v
# make test
# exit
$ display test/*

しっかりと動作している様子。アンチエイリアスもバッチリ。

(追記:よくタイムスタンプを見たら、このファイルは最初から入っている品だったガクリ。同じディレクトリに生成されていた各種サンプルプログラムを動かして、動作を確認。)

そして、いよいよ本番のrrdtool。

$ wget http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/rrdtool-1.0.35.tar.gz
$ tar xvfz rrdtool-1.0.35.tar.gz
$ cd rrdtool-1.0.35
$ ls

rrdtoolはデフォルトで、gd-1.3やlibpng-1.0.9やzlib-1.1.4を内蔵で配布されている。
これを、どうやって、システム側のgdやlibpngやzlibを使ってもらうようにすれば良いのか。特にgd。アンチエイリアスな文字を使ってほしい‥‥。

$ ./configure --help
$ CFLAGS="-O2 -march=i686" CXXFLAGS="-O2 -march=i686" ./configure
$ vi Makefile

‥‥よく分からないので、とりあえず、デフォルトのままインストール。
アンチエイリアスな文字にする方法は、あとで考える。あとで。

$ make
$ su
# make install
# make site-perl-install
# ldconfig -v

導入完了。
試す。

$ cd examples
$ ./shared-demo.pl
$ display shared-demo1.gif
$ display shared-demo2.gif

見事に表示される。
‥‥しかし、アンチエイリアスがかかっていない!
私は、アンチエイリアスをかけたいのです。
かかれ!

しかし、どうも簡単にはアンチエイリアスは使えそうに無い気がするので、また今度。

午後 02:56

w3mにmigemo検索。

w3m用にmigemoを導入。

rubyは既に導入済。

Ruby/Romkanを導入。

$ wget http://namazu.org/~satoru/ruby-romkan/ruby-romkan-0.4.tar.gz
$ tar xvfz ruby-romkan-0.4.tar.gz
$ cd ruby-romkan-0.4
$ su -c 'cp romkan.rb /usr/local/lib/ruby/1.6'
$ cd ..

Ruby/Bsearchを導入。

$ wget http://namazu.org/~satoru/ruby-bsearch/ruby-bsearch-1.5.tar.gz
$ tar xvfz ruby-bsearch-1.5.tar.gz
$ cd ruby-bsearch-1.5
$ su -c 'cp bsearch.rb /usr/local/lib/ruby/1.6'
$ cd ..

そして、migemo。

$ wget http://migemo.namazu.org/stable/migemo-0.32.tar.gz
$ tar xvfz migemo-0.32.tar.gz
$ cd migemo-0.32
$ ./configure --help
$ CFLAGS="-O2 -march=i686" CXXFLAGS="-O2 -march=i686" ./configure

しかし、動かない。「先にemacsを入れろ!」と言われて終了。

$ CFLAGS="-O2 -march=i686" CXXFLAGS="-O2 -march=i686" ./configure --without-emacs

しかし、動かない。「emacsが使えない」と言われて終了。

$ CFLAGS="-O2 -march=i686" CXXFLAGS="-O2 -march=i686" ./configure --with-emacs=boeboe

通った‥‥。
これで大丈夫なのか‥‥?

$ make

大丈夫‥‥っぽい。

$ su
# make install
# ldconfig -v

導入完了。
引き続き、w3mの再構築。
以前の日記を見つつ、適当に構築した。

試す。

$ w3m -B

oキーのオプション画面に、「Migemoを使用する」という項目が出来ているので、オンに。
そして、「/」にて検索。

検索にやや時間がかかり、また、便利なインクリメンタルサーチ(と言うのか?文字を少しずつ入力している最中にもメイン画面の検索が徐々に進行していったりするもの‥‥)ではないものの、いちいち日本語入力モードに切替える必要が無いので、非常に便利である。
(追記:インクリメンタルサーチをctrl+sで出来る事を発見。しかしかなり重い‥‥。)

以上。

2002 年 03 月 17 日
午後 05:18

cdparanoiaは素晴らしい。

引き続き、CDリッピングを行うcdparanoiaを導入。

$ wget http://www.xiph.org/paranoia/download/cdparanoia-III-alpha9.8.src.tgz
$ tar xvfz cdparanoia-III-alpha9.8.src.tgz
$ cd cdparanoia-III-alpha9.8
$ ./configure --help
$ ./configure
$ make
$ su
# make install

導入完了。
早速試してみる。
日本語マニュアルが付いているようなので、それを見ながら試してみる。
とりあえず、導入したマシンのCD-ROMドライヴにCDを入れる(このマシンのドライヴは多分IDE。多分)。

$ cdparanoia 1

動かない。

# cdparanoia 1

動いた。

cdda.wavというファイルに保存された。

聴いてみる。

# aplay cdda.wav

隣の部屋から、音楽が聴こえてくる‥‥。
大成功。

ここで、もう一度gogo再挑戦。

$ gogo cdda.wav
$ mpg321 cdda.mp3

今度はノイズ無し。
さっきのファイルとの違いは、レートのみ。
最後にノイズの入った方は22050Hz。
今回リッピングした方は、44100Hz。

‥‥そういうものなのだろうか。
或いは、その辺りは細かくオプションで指定してやる必要があるのだろうか。
しかし、面倒なので、調べたりはしない事に。
gogoはcdparanoia専用とする事にする。

ともあれ、上手く動いたので、全トラックを変換させるようにして、しばらく放っておく。

# cdparanoia -B

そして、あとで回収。

2002 年 03 月 14 日
午前 12:19

slackwareのlhaは過不足無く十分すぎる程に古い

slackwareにデフォルトでインストールされているlhaは1.00等と言う十年近く昔の品であるような気がする、という事に気付く(解凍しようとするとエラーの出るlha書庫ファイルをいただいた)。

ので、入れ替え。

$ wget http://shibuya.cool.ne.jp/lha/Linux/japan/lha-115.tar.gz
$ tar xvfz lha-115.tar.gz
$ cd lha-115
$ su -c 'cp lha /usr/bin/lha'
$ lha

bash: /usr/bin/lha: そのようなファイルやディレクトリはありません

ウボア。動かない!
もしかして、libc5用とかですか。
とりあえず、諦め。
次。

$ wget http://www2m.biglobe.ne.jp/~dolphin/lha/prog/lha-114i.tar.gz
$ tar xvfz lha-114i.tar.gz
$ cd lha-114i
$ vi Makefile

OPTIMIZE = -O2 -march=i686 -DSUPPORT_LH7 -DMKSTEMP

$ make all
$ su
# make install
# rm /usr/bin/lha

構築完了。

$ lha

bash: /usr/bin/lha: そのようなファイルやディレクトリはありません

ううむ、ただ単に削除されたlhaの方を見ているだけではないか‥‥さっきのもこれが原因か。

$ exec /bin/sh
$ lha

ヘルプが表示された。

$ lha x ~/******************.lzh

解凍成功。

2002 年 03 月 12 日
午後 06:54

MySQL勉強準備#2。

Linux

前回インストールしたつもりのperl用MySQLモジュールは、本当にインストールに成功したのか怪しいので、使ってみる前にもう一回インストールを行う事に。
今度は、CPANは使わずに直接インストール。

$ wget http://www.softagency.co.jp/MySQL/Downloads/Contrib/Msql-Mysql-modules-1.2216.tar.gz
$ tar xvfz Msql-Mysql-modules-1.2216.tar.gz
$ cd Msql-Mysql-modules-1.2216
$ perl Makefile.PL -static

質問される。
使うのは、MySQLオンリー。
英語でよく分からないが、なんとなくyと答えてみる。
MySQLのインストール場所には、前回インストールした「/usr/local/mysql」を答える。
テスト用データベース。デフォルト。
接続先。自分自身。
あとは適当。

$ make
$ make test
$ su
# make install

完了。
ついでなので、MySQLが使いやすいように、mysqlクライアントのシンボリックリンクをpathの通っているところに作っておく。

# ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql

あとは、適当に遊ぶ。

午後 06:51

CPAN設定変更。

cpanの設定を変更してみた。

# jvim /usr/local/lib/perl5/5.6.1/CPAN/Config.pm

ftp_proxyとhttp_proxyに、「http://localhost:3128/」を追加。localのsquidを使わせる。

make_install_argに、「UNINST=1」を追加。
これを付けておかないと、perl自身をインストールした時に入っていたモジュールのアップデートをするのが面倒な事になる、らしい。

試してみる。

# perl -MCPAN -e shell

cpan> o conf
cpan> install Bundle::LWP

上手く設定されている様子。完了。

2002 年 03 月 11 日
午後 07:08

MySQL勉強準備。

Linux

MySQLの微妙な設定をマスターする為に、手元マシンにもMySQLを導入する事に。

MySQLのサイトを見てみると、開発版では4.0系列が出ている様子。
後々の事を考え、今の内から4.0系列に移行しておこうかと少し考えたが、α版なのと、開発版では日本語の扱いはぞんざいになっていそうな気がしないでもないので、普通に安定版の3.23.49を導入する事に。

とりあえず、アカウントを用意。

# groupadd mysql
# useradd -d / -g mysql mysql

構築。

$ wget http://prdownloads.sourceforge.net/mysql/mysql-3.23.49.tar.gz
$ tar xvfz mysql-3.23.49.tar.gz
$ cd mysql-3.23.49
$ ./configure --help
$ CFLAGS="-O3 -march=i686" CXXFLAGS="-O3 -march=i686 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static --with-mysqld-user=mysql --without-debug --with-charset=ujis --with-extra-charsets=sjis
$ make
$ su
# make install
# scripts/mysql_install_db

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
This is done with:
/usr/local/mysql/bin/mysqladmin -u root -p password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h tinymetal -p password 'new-password'
See the manual for more instructions.

だそうなので、憶えておく。

mysql/varは、/varパーティション以下に移動しておきたいので、移動させる。

# mkdir -p /var/mysql
# mv /usr/local/mysql/var /var/mysql
# ln -s /var/mysql/var /usr/local/mysql/var
# chown -R root:root /usr/local/mysql
# chown -R mysql:mysql /var/mysql/var

設定ファイルをコピー。

# cp support-files/my-medium.cnf /etc/my.cnf

動かしてみる。

# /usr/local/mysql/bin/safe_mysqld --user=mysql &

とりあえず、起動する事だけ確認して、終了。

# /usr/local/mysql/bin/mysqladmin -u root shutdown

忘れないように、/etc/rc.d/rc.local辺りに、コメントアウトした状態で追記しておく。いや、コメントアウトでは、普段使えないか。勉強の為に、積極的に利用しなくてはならないのだから、多少リソースを食っても、常時起動させておくべきか。
普段起動していないなら、おそらくほとんど使わずに、勉強にならないのは容易に想像できるので。

よって、上記行をrc.localに追記。

引き続き、MySQLのセッティングを行う。

# jvim /etc/my.cnf

一応、この設定を勉強する、という目的なのだが、今のところ、変更したのは、bindするIPアドレスを127.0.0.1にした点のみ。
下記の行を、[mysqld]の後に追加。

bind-address = 127.0.0.1

mysqldを起動。

# /usr/local/mysql/bin/safe_mysqld --user=mysql &

とりあえず、mysqlのrootのパスワードを設定する。
先に、mysqladminコマンドからパスワードを設定する手順が出ていたが、折角なので、mysqladminは使わずに、mysql自身のデータベースに直接接続して設定してみる事にする。

$ /usr/local/mysql/bin/mysql -u root mysql

UPDATE user SET Password=PASSWORD('********')
WHERE user='root';
FLUSH PRIVILEGES;
\q

早速試してみる。

$ /usr/local/mysql/bin/mysql -u root mysql

最早、パスワード無しではrootで接続は出来ない。

$ /usr/local/mysql/bin/mysql -u root mysql -p

-pオプションを使って、パスワードを入力してrootで接続できる事を確認。

新しいデータベースを作り、怪しげなテーブルを作り、データを収め、見てみる。

$ /usr/local/mysql/bin/mysql

CREATE DATABASE test_socrates;
SHOW DATABASES;
USE test_socrates;

CREATE TABLE name2Id (
keyId INT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(64) NOT NULL,
KEY index_key(keyId), # トートロジーを表現する為に、本質は一つ、
PRIMARY KEY (name) # 名前は複数、に、できるようにしてみた(それが良いのかは不明‥‥)。
);

CREATE TABLE knowledge (
keyAId INT UNSIGNED NOT NULL,
keyBId INT UNSIGNED NOT NULL,
relId ENUM('be_included', 'be_excluded'),
PRIMARY KEY (keyAId, keyBId)
);

SHOW TABLES;
SHOW FIELDS FROM name2Id;
SHOW FIELDS FROM knowledge;

# 追加テスト
INSERT INTO name2Id VALUES ( NULL, 'ソクラテス' ); # 1
INSERT INTO name2Id VALUES ( NULL, '人間' ); # 2
INSERT INTO name2Id VALUES ( NULL, 'ミドリムシ' ); # 3

INSERT INTO knowledge VALUES ( 1, 2, 'be_included' ); # ソクラテスは人間である
INSERT INTO knowledge VALUES ( 1, 3, 'be_excluded' ); # ソクラテスはミドリムシではない

# 確認
SELECT * FROM name2Id;
SELECT * FROM knowledge;

# 調査テスト
SELECT keyId FROM name2Id WHERE name = 'ソクラテス';
SELECT keyId FROM name2Id WHERE name = '人間';
SELECT name FROM name2Id WHERE keyId = 3;

# 変更テスト
UPDATE name2Id SET name = '植物' WHERE name = 'ミドリムシ';
SELECT * FROM name2Id;

SELECT keyId FROM name2Id WHERE name = 'ミドリムシ';
SELECT keyId FROM name2Id WHERE name = '植物';

# 以下、少しだけ本番っぽいテスト
SELECT @A:=keyId FROM name2Id WHERE name = 'ソクラテス';
SELECT @B:=keyId FROM name2Id WHERE name = '人間';
SELECT relId FROM knowledge WHERE keyAId = @A and keyBId = @B;
# なんとなく、マトモに動いている気がする‥‥

# 削除テスト
DELETE FROM name2Id WHERE name = 'ソクラテス';
SELECT * FROM name2Id;

# とりあえず、テストは上手くいった気がするので、データを全部消しておく
DROP DATABASE test_socrates;
SHOW DATABASES;

それとなく正常に動作している様子。

あとは、このページを参考に、my.cnfの調整の練習をする予定。

http://www.SoftAgency.co.jp/mysql/TIPS/tune.html

最後に、perlからMySQLを扱えるように、DBI, MySQLそれぞれのモジュールを導入しておく。

# perl -MCPAN -e shell

cpan> install Bundle::DBI
cpan> install Data::ShowTable
cpan> install Bundle::Mysql

何故か、インストールに失敗するので、手動でインストールを試してみる事にする。

cpan> clean Bundle::Mysql
cpan> look Bundle::Mysql

# more README
# perl Makefile.PL
# make
# make test
# make install

上手くいった‥‥気がする。
上手くいっていないのであれば、上手くいかないので、そういう事なのであろう。多分。

しかし、perlの方のテストはまた今度に行う事にする。今度。後で。

アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家

処理中...