databases/mysql41-* から databases/mysql50-* へ移行

MySQL4.1 を使っていたのだが、MySQL5.0 がリリースされて久しいので置き換えました。
データベースの中身をダンプしてから置き換えて、ダンプから復元。

$ # あとで復元するためにデータをダンプ
$ mysqldump -AicFxp -u root –create-options > mysql.dump
$ su
# # 4.1 の停止処理
# /usr/local/etc/rc.d/mysql-server.sh stop
# mv /var/db/mysql{,_old}; mkdir /var/db/mysql # 一応退避。終われば古いものは不要になります。
# # 4.1 -> 5.0 へのバージョンアップ
# portupgrade -o databases/mysql50-client “mysql-client-4.1.16_1”
# portupgrade -o databases/mysql50-script “mysql-script-4.1.16”
# portupgrade -o databases/mysql50-server “mysql-server-4.1.16”
# portupgrade -fo databases/p5-DBD-mysql50 p5-DBD-mysql41-3.0002
# pkgdb -F # 念のため依存関係確認。
 
# # DB の初期化
# mysql_install_db –log-bin=hostname-bin # hostname-bin のところは任意の名前。
# # サーバを起動してここで復元。
# /usr/local/etc/rc.d/mysql-server.sh start
# mysql < mysql.dump # 復元
# /usr/local/etc/rc.d/mysql-server.sh restart # 変更の適用

参考:
MySQL 5.0 で一挙に増加 さまざまな特徴を持つストレージエンジン(日経BP ITPro)
 直接関係ないけど、5.0 の新機能について書いてあります。

portupgrade で Bus Error

FreeBSD 4.x を使っていて portupgrade, portversion, portinstall, portsdb などを使うと ruby の portsdb.rb で BUG Bus Error となる不具合に遭遇した。

[Updating the portsdb <format:bdb1_btree> in /usr/ports … – 11728 port entries
 found ………1000………2000………3000………4000………5000……..
.6000………7000………8000…./usr/local/lib/ruby/site_ruby/1.8/portsdb.rb:
587: [BUG] Bus Error
ruby 1.8.2 (2004-07-29) [i386-freebsd4]

原因は ruby18-bdb1-* で、かつ強制削除しても問題ないようなので、

pkg_deinstall -f ruby18-bdb1-*

として対処。
– 参考
http://blade.nagaokaut.ac.jp/ruby/ruby-list/40012

FreeBSD で java/linux-sun-jdk14 を使っていると "Can’t detect initial thread stack location" が出る原因

– make で表示されるインフォメーション通りにやっていないと jar で出たりする。

FreeBSD JDK, in ports/java/jdk14.
 
This Java VM will attempt to obtain some system information by
accessing files in linux’s procfs. You must install the Linux
emulation procfs filesystem for this to work correctly. The JVM
will exhibit various problems otherwise. This can be accomplished
by adding the following line to your /etc/fstab file:
 
linprocfs /compat/linux/proc linprocfs rw 0 0
 
and then, as root, executing the commands:
 
kldload linprocfs
mount /compat/linux/proc

説明通り、 /etc/fstab に

linprocfs /compat/linux/proc linprocfs rw 0 0

を追加して
$ mount /compat/linux/proc
を実行すればよい。