別にたいしたもんではありませんが、livedoor clipで、見ている画面をclipするブックマークレットが以下の公式なところでも紹介されていますが、これだと画面自体が遷移してしまうので、微妙に使いづらかったりします。

http://clip.livedoor.com/bookmarklet/

例えば、遷移してきた画面が気に入ったのでclipしたが、前のページに戻りたいときに、一度livedoor clipのページを経由して戻らなければならなくなってしまいます。
なので、window.openにしたというだけです。


javascript:void(window.open('http://clip.livedoor.com/clip/add?link='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title)));

ブックマークレット
clip!

単に、リンクを void(window.open(~));で囲むだけなのでいろいろ使い勝手があると思います。

IE7とか、ポップアップブロックを入れていると、アラートが出ちゃいます。
Firefox2使ってるので問題ないけど。

mirさんの記事の「GNU Autotools で Hello World !」をやってみました。
Autotoolsというのを使って、Makeファイルを作っちゃおうというものです。
そもそも、Linux上でCを書いた経験もないので、ほとんど記事のまんまですが。。

環境は、Windows上のVMwareにCentOS4.4の環境です。

ページを参考に、ファイルを作ってみます。


# ll
-rw-rw-r--  1 maruta maruta 45 11  3 16:58 Makefile.em
-rw-rw-r--  1 maruta maruta 70 11  3 16:59 configure.in
-rw-rw-r--  1 maruta maruta 75 11  3 16:58 hello.c

ここでよく見ると Makefile.emになってます。。 Makefile.amじゃないとダメなのですがタイポしてます。
行った作業のままに書いてみます。

記事を参考に autoconfを実行


$ autoconf
-bash: autoconf: command not found

どうやら入っていないようです。。


$ yum list | grep autoconf
autoconf.noarch                          2.59-5                 base
autoconf213.noarch                       2.13-9                 base

どちらを入れればいいのかわからないのですが。。
とりあえず実行。


# yum install autoconf
Setting up Install Process
Setting up repositories

update                    100% |=========================|  951 B    00:00     

base                      100% |=========================| 1.1 kB    00:00     

addons                    100% |=========================|  951 B    00:00 ETA
addons                    100% |=========================|  951 B    00:00     

extras                    100% |=========================| 1.1 kB    00:00
Reading repository metadata in from local files

primary.xml.gz            100% |=========================| 150 kB    00:12     

update    : ################################################## 483/483
Added 13 new packages, deleted 0 old in 2.04 seconds

primary.xml.gz            100% |=========================|  61 kB    00:00     

extras    : ################################################## 252/252
Added 9 new packages, deleted 0 old in 0.82 seconds
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for autoconf to pack into transaction set.

autoconf-2.59-5.noarch.rp 100% |=========================|  17 kB    00:00
---> Package autoconf.noarch 0:2.59-5 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 autoconf                noarch     2.59-5           base              628 k

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 628 k
Is this ok [y/N]: y
Downloading Packages:

(1/1): autoconf-2.59-5.no  87% |=====================    | 552 kB    00:00 ETA
(1/1): autoconf-2.59-5.no 100% |=========================| 628 kB    00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction

  Installing: autoconf                     ######################### [1/1] 

Installed: autoconf.noarch 0:2.59-5
Complete!

ちゃんと入ったようなので続き。


$ autofonfconf
configure.in:2: error: possibly undefined macro: AM_INIT_AUTOMAKE
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.

なんか、大丈夫そうです。
次に、aclocal


$ aclocal
-bash: aclocal: command not found
$ yum list  | grelp aclocal

同じく入っていないようです。。
しかも、yumにもそれらしいパッケージはありません。

困ったときのGoogleさん。
「aclocal インストール」でぐぐったらビンゴです。
http://www.linux.or.jp/JF/JFdocs/LFS-BOOK/chapter06/automake.html
どうやら、Automakeと一緒に入るようです。


# yum install automake
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for automake to pack into transaction set.

automake-1.9.2-3.noarch.r 100% |=========================|  23 kB    00:00
---> Package automake.noarch 0:1.9.2-3 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 automake                noarch     1.9.2-3          base              442 k

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 442 k
Is this ok [y/N]: y
Downloading Packages:

(1/1): automake-1.9.2-3.n 100% |=========================| 442 kB    00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction

  Installing: automake                     ######################### [1/1] 

Installed: automake.noarch 0:1.9.2-3
Complete!

確認してみると、ちゃんと入ってます。


$ which aclocal
/usr/bin/aclocal

aclocal、autoconfを実行。

次にautomakeを実行します。


$ automake
configure.in: required file `./install-sh' not found
configure.in: required file `./missing' not found
automake: no `Makefile.am' found for any configure output

なんか変です。。記事の内容とエラーのコメント数が違います。

まぁ環境の違いだろうーぐらいの軽い気持ちで先に進んでみます。


$ automake -c -a -c
configure.in: installing `./install-sh'
configure.in: installing `./missing'
automake: no `Makefile.am' found for any configure output
$ ls -CF
Makefile.em  aclocal.m4  autom4te.cache/  configure*  configure.in  hello.c  install-sh*  missing*

確実に変です。。
COPYING、INSTALL、depcomp、install-sh、missingとかが出来るはずですが、出来ていません。

よくよく見比べてみると・・・・・・・・なんか、ファイル名が違う・・
というわけで、リネームして再実行


$ mv Makefile.em Makefile.am
$ automake
Makefile.am: required file `./INSTALL' not found
Makefile.am: required file `./NEWS' not found
Makefile.am: required file `./README' not found
Makefile.am: required file `./AUTHORS' not found
Makefile.am: required file `./ChangeLog' not found
Makefile.am: required file `./COPYING' not found
Makefile.am: required file `./depcomp' not found
$ automake -a -c
Makefile.am: installing `./INSTALL'
Makefile.am: required file `./NEWS' not found
Makefile.am: required file `./README' not found
Makefile.am: required file `./AUTHORS' not found
Makefile.am: required file `./ChangeLog' not found
Makefile.am: installing `./COPYING'
Makefile.am: installing `./depcomp'
$ ls -CF
COPYING  Makefile.am  autom4te.cache/  configure.in  hello.c      missing*
INSTALL  aclocal.m4   configure*       depcomp*      install-sh*

おぉ、こんどはばっちりですね。

続き


$ touch NEWS README AUHAUTHORS ChangeLog
[maruta@vmmaruta works]$ automake
Makefile.am: required file `./README' not found
Makefile.am: required file `./AUTHORS' not found

ん?? なんか変だ。。というわけで確認するとタイポが


$ ll
 252
-rw-r--r--  1 maruta maruta  17992 11  3 17:09 COPYING
-rw-rw-r--  1 maruta maruta      0 11  3 17:10 ChangeLog
-rw-r--r--  1 maruta maruta   9273 11  3 17:09 INSTALL
-rw-rw-r--  1 maruta maruta     45 11  3 16:58 Makefile.am
-rw-rw-r--  1 maruta maruta      0 11  3 17:10 NEWS
-rw-rw-r--  1 maruta maruta      0 11  3 17:10 READMEAUTHORS
-rw-rw-r--  1 maruta maruta  38499 11  3 17:08 aclocal.m4
drwxr-xr-x  2 maruta maruta   4096 11  3 17:08 autom4te.cache
-rwxrwxr-x  1 maruta maruta 121589 11  3 17:08 configure
-rw-rw-r--  1 maruta maruta     70 11  3 16:59 configure.in
-rwxr-xr-x  1 maruta maruta  15205 11  3 17:09 depcomp
-rw-rw-r--  1 maruta maruta     75 11  3 16:58 hello.c
-rwxr-xr-x  1 maruta maruta   9206 11  3 17:09 install-sh
-rwxr-xr-x  1 maruta maruta  10587 11  3 17:09 missing
$ rm READMEAUTHORS
$ touch README ATUTHORS
$ automake
Makefile.am: required file `./AUTHORS' not found
$ mv ATUTHORS AUTHORS
$ automake
$ ll
 272
-rw-rw-r--  1 maruta maruta      0 11  3 17:10 AUTHORS
-rw-r--r--  1 maruta maruta  17992 11  3 17:09 COPYING
-rw-rw-r--  1 maruta maruta      0 11  3 17:10 ChangeLog
-rw-r--r--  1 maruta maruta   9273 11  3 17:09 INSTALL
-rw-rw-r--  1 maruta maruta     45 11  3 16:58 Makefile.am
-rw-rw-r--  1 maruta maruta  16586 11  3 17:10 Makefile.in
-rw-rw-r--  1 maruta maruta      0 11  3 17:10 NEWS
-rw-rw-r--  1 maruta maruta      0 11  3 17:10 README
-rw-rw-r--  1 maruta maruta  38499 11  3 17:08 aclocal.m4
drwxr-xr-x  2 maruta maruta   4096 11  3 17:08 autom4te.cache
-rwxrwxr-x  1 maruta maruta 121589 11  3 17:08 configure
-rw-rw-r--  1 maruta maruta     70 11  3 16:59 configure.in
-rwxr-xr-x  1 maruta maruta  15205 11  3 17:09 depcomp
-rw-rw-r--  1 maruta maruta     75 11  3 16:58 hello.c
-rwxr-xr-x  1 maruta maruta   9206 11  3 17:09 install-sh
-rwxr-xr-x  1 maruta maruta  10587 11  3 17:09 missing

なんかミスしまくってますが、なんとか出来ました。

続いて configure!


$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
configure: creating ./config.status
config.status: creating Makefile
config.status: executing depfiles commands

無事通りました!

rootにsuしてから make install


# make install
if gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"hello\" -DVERSION=\"0.1\"  -I. -I.     -g -O2 -MT hello.o -MD -MP -MF ".deps/hello.Tpo" -c -o hello.o hello.c; \
then mv -f ".deps/hello.Tpo" ".deps/hello.Po"; else rm -f ".deps/hello.Tpo"; exit 1; fi
gcc  -g -O2   -o hello  hello.o
make[1]: Entering directory `/home/maruta/works'
test -z "/usr/local/bin" || mkdir -p -- "/usr/local/bin"
  /usr/bin/install -c 'hello' '/usr/local/bin/hello'
make[1]: `install-data-am'
make[1]: Leaving directory `/home/maruta/works'

ばっちりですね。


$ which hello
/usr/local/bin/hello
$ hello
Hello World!

ちゃんと入りました~

まぁ、記事見ながらそのまんまやったので、入って当たり前ですが。
やっぱり自分の手を動かしながらやるとタイポも含めて、少しでも身にしみてくるような気がします。
これを踏まえて、MySQLディレクトリの中とか見てみると、違った発見がありそうです。

今回、Linuxのインストール時に開発ツールを選択しなかったためと思われますが、automake、autoconfの2つが必要でした。
また、MySQLのソースコンパイル時に入れた、gcc、なども必要かもしれません。

前回、mkaeがこけてしまうという原因で、いくら調べてもそれらしいソースを眺めてもわからなかったのですが、mirさんに教えてもらった make cleanをしてからという方法で無事インストールが出来ました。

どうやら、g++が入っていない状態でのmakeしたゴミが残っていたようです。
気持ち悪いので、インストール用に解凍したディレクトリをごっそり削除し、tarファイルを再度解凍し、作業を行いました。


# ./configure --prefix=/usr/local/mysql
# make
# make install

今度は、無事に成功しました!

次に、mysqlのデーモンの起動。
今回はテストなので起動スクリプトなどは端折って直接起動します。


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

次に接続できるか確認


$ /usr/local/mysql/bin/mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.45-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

無事に接続完了しました~

次にソースを見るための cscopeというソフトの準備です。
まずは、ファイルのインデックスを作成します。
mysql-5.0.45のディレクトリに移動してから以下を実行


$ cscope-indexer ./
cscope: cannot find file /config.h
cscope: no source files found

ソースファイルが無いといわれます・・・
たしか・・・階層を再帰的に調べる必要があったなというのを思い出して、helpなどを確認し、以下を再実行


$ cscope-indexer -r ./

無事、インデックスファイルを作成できました。
以下のようなファイルが新規作成されていました。


$ ll
合計 34704
(略)
-rw-rw-r--   1 maruta maruta    70386 11月  3 15:40 cscope.files
-rw-rw-r--   1 maruta maruta 32038765 11月  3 15:40 cscope.out
(略)

早速、動かしてみます。

$ cscope

すると、こんな画面になります。

Find this C symbol:
Find this global definition:
Find functions called by this function:
Find functions calling this function:
Find this text string:
Change this text string:
Find this egrep pattern:
Find this file:
Find files #including this file:
Find all function definitions:
Find all symbol assignments:

一行目のFind this C symbol:のところにカーソルがあります。
これを、上下キーで各行に移り、そこで文字を入れて検索できるようです。
とりあえずなにをするか・・・

Find this file: まで上下キーで移動し、「select」と打ってEnterしてみます。
すると、上部の領域に以下のように出ました。


File: select

  File
0 libmysqld/item_subselect.cc
1 libmysqld/sql_select.cc
2 ndb/test/ndbapi/slow_select.cpp
3 ndb/tools/select_all.cpp
4 ndb/tools/select_count.cpp
5 sql/item_subselect.cc
6 sql/item_subselect.h
7 sql/sql_select.cc
8 sql/sql_select.h
9 tests/select_test.c
a /usr/include/sys/select.h
b /usr/include/bits/select.h

どうやら、これがselectと名前の付くファイルのようです。
sql_select.ccという7番のファイルがそれっぽいです。
7の数字キーを押すか、上下キーで移動してからEnterを押すと、viでソースファイルが開きました。

MySQLのソースとご対面です!

何が書いてあるかさっぱり・・・・
結構な長さがありますが、とりあえず下までず~~~と眺めてみました。

次は、なにかお題を決めて取り組んでみたいと思います。
それと、Emacsと連動できるようにしてみたいと思います。

作業終わって、viを閉じた後、cscopeの終了方法がわかりません。。。
とりあえず、Ctrl+d で閉じちゃいました。
その後、ぐぐったらどうやら正しい閉じ方のようです。
http://docs.sun.com/source/806-4836/cscope.html

MySQLにSenna(およびMeCab)を組み込んだTritonnのrpm版をインストールしてみました。

Tritonnプロジェクト
2007/10/31 mysql-5.0.45-tritonn-1.0.7 リリース

環境
 WindowsXP VMware上のCentOS


# cat /proc/version
Linux version 2.6.18-8.el5 (mockbuild@builder4.centos.org) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #1 SMP Thu Mar 15 19:57:35 EDT 2007

公式サイトのインストールページにrpmについての説明も詳しく掲載されているので、そちらを参考にインストールしてみました。
RPMによるインストール方法

まずは、http://sourceforge.jp/projects/tritonn/からファイルを落としてきます。


# ll
合計 34348
-rw-rw-r-- 1 root root   326904 10月 31  2007 MySQL-client-5.0.45-tritonn.1.0.7.i386.rpm
-rw-rw-r-- 1 root root 15670977 10月 31  2007 MySQL-server-5.0.45-tritonn.1.0.7.i386.rpm
-rw-rw-r-- 1 root root  3587159 10月 31  2007 MySQL-shared-5.0.45-tritonn.1.0.7.i386.rpm
-rw-rw-r-- 1 root root   825058 10月 31  2007 mecab-0.96-tritonn.1.0.7.i386.rpm
-rw-r--r-- 1 root root 13432779 10月 31  2007 mecab-ipadic-2.7.0.20070801-tritonn.1.0.7.i386.rpm
-rw-r--r-- 1 root root  1262282 10月 31  2007 senna-1.0.9-tritonn.1.0.7.i386.rpm

次に現状、インストール済のパッケージを調べると、以下が入っていました。


# rpm -qa | grep -i mysql
MySQL-python-1.2.1-1
mysql-server-5.0.22-2.1
mysql-5.0.22-2.1
perl-DBD-MySQL-3.0007-1.fc6
libdbi-dbd-mysql-0.8.1a-1.2.2
mysql-connector-odbc-3.51.12-2.2
php-mysql-5.1.6-12.el5

公式サイトの記述を鵜呑みにしてそのままコマンドを流すとこんなことに。


# rpm -e MySQL-server
エラー: パッケージ MySQL-server はインストールされていません。

インストール済のパッケージは小文字だから大文字じゃだめですね。


# rpm -e mysql-server

なんも帰ってこなかったので削除できたのかと思ってしまいました。
※これでは、削除できていなかったのですが、作業手順のままに書いてみます。

mysql-server-5.0.22-2.1の削除はこれで完了。
※mysql-5.0.22-2.1も削除する必要がありましたが、作業手順のままに書いてみます。(追記:mysql-serverのみ削除したたのを勘違いしてたみたいです)

次にmecabからインストール。
rpm -i だけではちょっとさびしいかなぁと思い、vhを付けてみました。


rpm -ivh mecab-0.96-tritonn.1.0.7.i386.rpm
rpm -ivh mecab-ipadic-2.7.0.20070801-tritonn.1.0.7.i386.rpm
rpm -ivh senna-1.0.9-tritonn.1.0.7.i386.rpm
rpm -ivh MySQL-shared-5.0.45-tritonn.1.0.7.i386.rpm
rpm -ivh MySQL-client-5.0.45-tritonn.1.0.7.i386.rpm
rpm -ivh MySQL-server-5.0.45-tritonn.1.0.7.i386.rpm

すると、以下のような警告がわらわら・・・
まぁ、入ったようなのでOKでしょうか?


# rpm -ivh mecab-0.96-tritonn.1.0.7.i386.rpm
準備中...                ########################################### [100%]
   1:mecab                  警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
########################################### [100%]
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します

続けて次のインストール。


# rpm -ivh mecab-ipadic-2.7.0.20070801-tritonn.1.0.7.i386.rpm
準備中...                ########################################### [100%]
   1:mecab-ipadic           警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
########################################### [100%]
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します

こちらも警告が・・

次に sennaのインストール


# rpm -ivh senna-1.0.9-tritonn.1.0.7.i386.rpm
準備中...                ########################################### [100%]
   1:senna                  警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
########################################### [100%]

インストールできているようですが、始めて見るとちょっとびっくりしちゃいました。

次に MySQL関連のインストール。


# rpm -ivh MySQL-shared-5.0.45-tritonn.1.0.7.i386.rpm
準備中...                ########################################### [100%]
   1:MySQL-shared           ########################################### [100%]

こちらはさくっと入りました。

次に、MySQL-client


# rpm -ivh MySQL-client-5.0.45-tritonn.1.0.7.i386.rpm
準備中...                ########################################### [100%]
 ファイル /usr/bin/msql2mysql (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
 ファイル /usr/bin/mysql (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
 ファイル /usr/bin/mysql_find_rows (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
 ファイル /usr/bin/mysql_waitpid (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
 ファイル /usr/bin/mysqlaccess (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
 ファイル /usr/bin/mysqladmin (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
 ファイル /usr/bin/mysqlbinlog (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
 ファイル /usr/bin/mysqlcheck (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
 ファイル /usr/bin/mysqldump (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
 ファイル /usr/bin/mysqlimport (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
 ファイル /usr/bin/mysqlshow (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
 ファイル /usr/share/man/man1/mysql.1.gz (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
 ファイル /usr/share/man/man1/mysqlaccess.1.gz (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
 ファイル /usr/share/man/man1/mysqladmin.1.gz (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
 ファイル /usr/share/man/man1/mysqldump.1.gz (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
 ファイル /usr/share/man/man1/mysqlshow.1.gz (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して

エラーです。
なぜ??と思ったら、どうやら元から入っているのが削除できていなかったようです。

再度、パッケージ調査。


# rpm -qa | grep -i mysql
MySQL-python-1.2.1-1
mysql-5.0.22-2.1
perl-DBD-MySQL-3.0007-1.fc6
libdbi-dbd-mysql-0.8.1a-1.2.2
mysql-connector-odbc-3.51.12-2.2
php-mysql-5.1.6-12.el5

やっぱり削除できていません。

パッケージをバージョンまで指定して rpm -eしてみる。


# rpm -e mysql-5.0.22-2.1
エラー: 依存性の欠如:
 mysql は (インストール済み)MySQL-python-1.2.1-1.i386 に必要とされています
 mysql は (インストール済み)libdbi-dbd-mysql-0.8.1a-1.2.2.i386 に必要とされています

なんか依存関連のエラーです。とりあえず、pythonとか使ってないので、何も考えずに削除。


# rpm -e MySQL-python-1.2.1-1 libdbi-dbd-mysql-0.8.1a-1.2.2 mysql-5.0.22-2.1

で、確認


# rpm -qa | grep -i mysql
perl-DBD-MySQL-3.0007-1.fc6
mysql-connector-odbc-3.51.12-2.2
MySQL-shared-5.0.45-tritonn.1.0.7
php-mysql-5.1.6-12.el5

無事削除できたようです。


# rpm -ivh MySQL-client-5.0.45-tritonn.1.0.7.i386.rpm
準備中...                ########################################### [100%]
   1:MySQL-client           ########################################### [100%]

続いてserver


# rpm -ivh MySQL-server-5.0.45-tritonn.1.0.7.i386.rpm
準備中...                ########################################### [100%]
   1:MySQL-server           ########################################### [100%]
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h marudev.fact password 'new-password'
See the manual for more instructions.
Please report any problems with the /usr/bin/mysqlbug script!

The latest information about MySQL is available on the web at

http://www.mysql.com

Support MySQL by buying support/licenses at http://shop.mysql.com
Starting MySQL.[  OK  ]
Thank you for installing the MySQL Community Server! For Production
systems, we recommend MySQL Enterprise, which contains enterprise-ready
software, intelligent advisory services, and full production support with
scheduled service packs and more.  Visit www.mysql.com/enterprise for more
information.

無事、インストール完了したみたいです。
次に動作確認


# /etc/init.d/mysql start
Starting MySQL                                             [  OK  ]

# mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.45-modified MySQL Community Server (GPL) (portions (c) Tritonn Project)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

ちゃんと「portions (c) Tritonn Project」と出てました。

show senna statusの確認もOKでした。


mysql> show senna status\\G
*************************** 1. row ***************************
                  Table: t1
               Key_name: fulltext_index
            Column_name: body
               Encoding: utf8
             Index_type: NGRAM
           Sectionalize: OFF
              Normalize: ON
            Split_alpha: OFF
            Split_digit: OFF
           Split_symbol: OFF
     Initial_n_segments: 512
        Senna_keys_size: 2
   Senna_keys_file_size: 8462336
     Senna_lexicon_size: 14
Senna_lexicon_file_size: 8462336
     Senna_inv_seg_size: 2265088
   Senna_inv_chunk_size: 135168
1 row in set (0.00 sec)

mysql>

初めてのTritonn(チュートリアル)を見ながら、少しいじってみました。
ちゃんと動いているみたいです。

全文検索というぐらいですから、データ元が無いと威力が発揮できません。
今後、仕事でも個人でも使う場面が出てくると思いますので、いろいろデータぶちこんで試していきたいと思います。

追記(2007-11-06)
Twitterで他の方が話していた内容ですが、日本語ではない場合には以下のようなエラーが起きるみたいです。


warning: user mir does not exist - using root warning: group mir does not exist - using root

追記2(2007-11-06)
rpmを作った時のユーザ情報等が入ってしまっているそうです。
回避方法がtritonn-dev MLで流れていましたので、リビルド版を追加/置換リリースするかもとのことでした。

2007年11月2日に行われた、「The Future of JavaScript」を聞いてきました。
http://www.mozilla-japan.org/events/2007/javascript/

上記ページで、John Resigさんが講演に使用したプレゼン資料が公開されています。

細かいことは、もっと詳しい方がBlogなどに書いてくれると思うので、私が思った感想のみ。

そもそも、VBあがりのphp使いのWeb屋なので、言語の細かい仕様は、なんとなくわかる程度ですが、非常に興味深く聞けました。
個々の言語仕様がどうこうというのはまったくついて行けませんが、いい刺激になりました。
やっぱ、そういうところまで理解出来るようになりたい。

JavaScript2のECMA Script4ですが、各ブラウザに実装され、普及するのが2009年ぐらいではないかとQ&Aで答えていました。
仕様的に現行のJSがほぼ全て動くようにするとも言っていました。

それを聞いて思ったことは、きっとギークな人たちはどんどん新しいものをおっかけていくと思いますが、仕事で対応する場合、つい数ヶ月まえまでNetscape4系をMac IEを(追記:さすがにネスケはねーわ)サポートせざるを得ないこともあったことから、JavaScript1.x系のブラウザをサポートしなければならない会社的な状況もずいぶん長引くような気がします。
そうなると、せっかく追加された新機能がまったく使えず、結局はいまと同じ書き方をしているか、ブラウザごとに実行されるプログラムを書き分けるなどの後付けの対応をしていそうです。。。

なにはともあれ、プログラム言語の仕様とかもうちょっと理解できるように調べてみたいと思います。
勉強したいことがいっぱいで、あちこちつまみ食い状態にならないようにしていきたいな。

そうそう、隣の席にmalaさんが座ってました。
他にも有名な見たことある方々が何人も。