2008年6月22日日曜日

OpenVZで移行準備

環境はetch上のvzctl(3.0.11-13).これがやってみたらえらい簡単で拍子ぬけした次第.というわけで今その他の作業をしているのだが忘れるまえにメモ

etchにminimalからイメージをつくる

$ sudo vzctl create 1002 --ostemplate debian-4.0-i386-minimal --hostname araki2
Creating VPS private area: /var/lib/vz/private/1002
Performing postcreate actions
VPS private area was created

IPアドレスを設定.bridgeを手で用意したりトンネル設定する必要もない.



$ sudo vzctl set 1002 --ipadd 210.157.x.y --nameserver 210.157.x.z --save

おわったら vzctl start 1002して,vzctrl enter 1002ではいり,apt-get update.(sshが例の穴いりのやつなので..)

/homeをmountする.
vzctl start 1002時に/homeがmountされるように,/etc/vz/conf/1002.mountを

 
#!/bin/sh
mount --bind /home /var/lib/vz/root/1002/home

とする.おわったらこれに+xをしておく.

uid,gidをvipwとvigwしてhostにあわせた.



/etc/vz/conf/1002.umountも用意してみたんだが,どうもいらんようであります.

2008年6月17日火曜日

rails2.0.2+ruby1.8.7でtestを通らなくなった.

donrailsがうごいてるdonrails.araki.netではruby1.8.5で動いているので問題ないのだが,ノートの上のsidではrubyが1.8.7にあがったようで,rails2.0.2+ruby1.8.7でtestを通らなくなった.

まずひとつ目はtruncate(/var/lib/gems/1.8/gems/actionpack-2.0.2/lib/action_view/helpers/text_helper.rb)を見てみる.

      def truncate(text, length = 30, truncate_string = "...")
if text.nil? then return end
l = length - truncate_string.chars.length
(text.chars.length > length ? text.chars[0...l] + truncate_string : text).to_s
end

どうやらtext.chars.lengthというのを中で使っていて,ruby1.8.7ではtext.chars.lengthがつかえない.これはので,text.chars.to_a.lengthとすれば回避できた.1.8.7で,Enumerable::Enumerator を返すようになったのが問題なのかな.

irb(main):001:0> "hoge".chars.length
NoMethodError: undefined method `length' for #<enumerable::enumerator:0xb7be8c70>
from (irb):1
irb(main):002:0> "hoge".chars.to_a.length
=> 4
irb(main):003:0> "hoge".length
=> 4

というかんじ.はて.etchではどうかとおもったが,

irb(main):001:0> "hoge".chars.length
NoMethodError: undefined method `chars' for "hoge":String
from (irb):1
irb(main):002:0> "hoge".chars.to_a.length
NoMethodError: undefined method `chars' for "hoge":String
from (irb):2
from :0
irb(main):003:0> "hoge".length
=> 4
irb(main):004:0> RUBY_VERSION
=> "1.8.5"

あれれ.しかしどっちにしろ"hoge".lengthですむのになんでString.charsなってんだろ.国際化対応のせいなのかなあ..よーわからん.世にはこんなパッチを出している人もいるようで. http://www.ruby-mine.de/assets/2007/12/31/ruby-19-on-rails-fixes.diff

手元ではrails2.1.0 + ruby1.8.7でやる時期がきたのかもしれない.

debian etchにdb2をいれる話update

こないだのDebian etchにdb2をいれる話をちょいとupdate.
  • libstdc++.so.5がないと動かないので,apt-get install libstdc++5 した.
  • ibaio.so.1がないとうごかないので apt-get install libaio-dev
  • javaはわざわざいれなくてもinstallerは動いた.
  • いい記事があった.

2008年6月8日日曜日

DB2をDebian etchにインストールする

今回は古いLets note CF-T1にいれてみた.

Debian Etchのインストール

こいつはUSB bootとかしないし,専用のCDROMドライブじゃないとbootしてくれないので,今回はPXEブートさせることにした.
今回はじめてwindowsにtftpdサーバおいてみたけど異様に簡単だった.とりあえずdebian etchをnetinstallしたのでそのzipをおいとく.これを展開して起動するだけ.この設定だと192.168.100.ほげほげ のIPを取得してインストールするので,必要なら設定する.

Java入れ.

Software/Java - Debian GNU/Linux スレッドテンプレを見てやった.
non-free の apt-line を追加した後で、
etch の場合は

# aptitude install sun-java5-jdk sun-java5-demo sun-java5-source sun-java5-doc sun-java5-plugin sun-java5-fonts
Sunにつないでdocをとってくるのが微妙に面倒ではある.

IBMからdb2をとってくる.
  • db2exc_950_LNX_x86.tar.gz
  • db2_v95_linuxia32_nlpack.tar.gz
うしろのをとってこないと日本語がナニなことになる(未確認)ようだ.で,展開したら,nlpackとexpというdirの下にfileがわらわらできる.
とりあえず
export LANG=C をしてから expの下で sudo ./db2setup.
Installation Prerequisites > DB2 Disk and Memory Requirementsを見ようとしたら
Cannot display the web page, because a supported web browser cannot be found.

Ensure that one of the following browsers is installed and located in a directory in the PATH environment variable:
- firefox
- mozilla
- opera
ということでEpiphanyでは見れないようだ.まああんまりなので,
/usr/local/bin/firefox -> /usr/bin/epiphany
という設定をしこむ.

log抜粋.
New instances:
Instance name: db2inst1
Start instance on reboot: Yes
TCP/IP configuration:
Service name: db2c_db2inst1
Port number: 50000
Instance user information:
User name: db2inst1
Group name: db2iadm1
Home directory: /home/db2inst1
Fenced user information:
User name: db2fenc1
Group name: db2fadm1
Home directory: /home/db2fenc1

DB2 Administration server:
Instance user information:
User name: dasusr1
Group name: dasadm1
Home directory: /home/dasusr1



Contact specification:
New contacts:
Name: db2inst1
Instance: db2inst1
E-mail address: db2inst1@cft1
E-mail address is for a pager: No


Response file name: /root/db2exp.rsp

Command to be run: "cd /opt/ibm/db2/V9.5/;/opt/ibm/db2/V9.5/instance/db2icrt -a server -s wse -u db2fenc1 -p db2c_db2inst1 db2inst1".
The instance "db2inst1" has been created successfully.

こんどは nlpack下で db2setup
さてどうなるか.あっさりいった.
db2インストール