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インストール

2008年5月22日木曜日

今日は大学でmeeting2本

ひとつはいつものGMでちょっとばかりDebian OpenSSH事件の話をする.
B4にubuntu使いもいたようなのが収穫か.そしてやはり他OSに波及する件は知られていなかった.
[googleapps domain="docs" dir="EmbedSlideshow" query="docid=dhmbcn2n_1hb8sndfm" width="410" height="342" /]
もうひとつは正直まとまりないがインターネットアーキテクチャ話といいつついろんな話.23時ちょい前に池ノ上を出る電車で帰る.

2008年5月18日日曜日

土曜の夜は勉強会に参加していた

東京エリアDebian勉強会報告からは落ちているけど(宴会君にいれなかったせいだなきっと),参加してました.
吉藤さんに会うのは実は大学を出て以来はじめてでありました.

2008年5月13日火曜日

rubygems 1.1.1-1の謎

noteとdesktop両方にsidいれてて,desktopは今朝apt-get dist-upgradeしたわけです.

そしてそのdesktopでgem list をしてみると 何もインストールされていない,と出ます.
/var/lib/gems/1.8/gems にはいっぱいインストールされているのに.

noteのほうは快調に/var/lib/gems/1.8/gems 以下にあるものを表示しています.

はいっている rubygemsとlibgems-ruby1.8はどちらも1.1.1-1なんだがな..

まあどこかで何かがおこったようで,そのおかしいほうであらためて gem install railsとかしてみると,
/usr/lib/ruby/gems/1.8/gems以下に展開されるようになっていました.

まあ何がただしいのかわからないので単なる記録でした.


とおもってたら田郷さんのアドバイスをもらっていろいろ見てみたら,rubygems/default.rbにそのpathはハードコードされている,という話をいただいた.locateしてみたらなんと /usr/local/lib/site_ruby/1.8/rubygems/defaults.rb が存在していたので,,消してみた.

うまくいきました... ゴミには注意しましょう.動いていたために気がつかなかった.