まずはscreen -Rしておこう。
そういえば、 sudo時のaudit_log_user_command(): Connection refusedについてはGoogleるとこんな記事が。
http://d.hatena.ne.jp/tullio/20080930/1222788803
見なかったことにする、もしくは最新のsudoを使うらしい。
sudo新しいのがyumで取れるみたい。
Installed Packages
Name : sudo
Arch : i386
Version : 1.6.9p17
Release : 5.el5
Available Packages
Name : sudo
Arch : i386
Version : 1.6.9p17
Release : 6.el5_4
なので更新。
$ sudo yum update sudo
Updated:
sudo.i386 0:1.6.9p17-6.el5_4
Complete!
どれ、
$ sudo ls /root
audit_log_user_command(): Connection refused
ち、だめか。
さてもさてもコンパイラを。
Name : gcc-c++
Arch : i386
Version : 4.1.2
Release : 46.el5_4.2
$ sudo yum install gcc-c++
Installed:
gcc-c++.i386 0:4.1.2-46.el5_4.2
Dependency Installed:
cpp.i386 0:4.1.2-46.el5_4.2 gcc.i386 0:4.1.2-46.el5_4.2
glibc-devel.i386 0:2.5-42.el5_4.3 glibc-headers.i386 0:2.5-42.el5_4.3
kernel-headers.i386 0:2.6.18-164.15.1.el5 libgomp.i386 0:4.4.0-6.el5
libstdc++-devel.i386 0:4.1.2-46.el5_4.2
Complete!
入れた。次はRuby。
Rubyのソースを取得。1.9は職場でえらい目にあったので、学習して1.8最新版で。
ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p249.tar.bz2
rubyは/usr/local/が初期状態だけど、職場の環境(というかRHELの環境)に合わせて/usr/に入れる。
$ ./configure --prefix=/usr
まぁアレだ。並列コンパイルとかはやめておこうか。一応時間を計測。
$ time make
real 2m17.749s
user 0m51.361s
sys 0m3.532s
これも(むしろこれが)長いよね。
$ time make check
screen使っておけば切断してしまっても処理とかログとか残るので、こういう長い処理のときは有効やね。
てか、今WILLCOMで繋いでいるし! (In 横須賀線グリーン車<疲れたんだよ今日…)
1950 tests, 1343768 assertions, 2 failures, 52 errors
make: *** [test-all] Error 1
real 15m8.793s
user 5m50.252s
sys 0m9.370s
なんかエラー出てるけど、ざっと見ると
53) Error:
test_soapbodyparts(WSDL::SOAP::TestSOAPBodyParts):
Errno::EADDRINUSE: Address already in use - bind(2)
こんなのがいくつか出てるんで、たぶんhttpdが上がっている状態でport 80を奪い合った結果…かしら?
まぁそろそろいったん終了。
自宅にたどり着いたので、続きを。エラーの内容をちゃんと見る。
1) Failure:
test_too_big_to_s(TestBignum) [./test/ruby/test_bignum.rb:103]:
<RangeError> exception expected but was
Class: <NoMemoryError>
Message: <"failed to allocate memory">
---Backtrace---
./test/ruby/test_bignum.rb:103:in `<<'
./test/ruby/test_bignum.rb:103:in `test_too_big_to_s'
./test/ruby/test_bignum.rb:103:in `test_too_big_to_s'
---------------
これはメモリ不足か。あきらめるしかないね。
あとは案の定、port 80関連。
Apache2を止める。
$ sudo /sbin/service httpd stop
Password:
audit_log_user_command(): Connection refused
Stopping httpd: [ OK ]
で、再びテスト。
$ time make check
test_soapbodyparts(WSDL::SOAP::TestSOAPBodyParts):
Errno::EADDRINUSE: Address already in use - bind(2)
エラー再び。Googleで回避策を漁る。
…!そうか、port 80はrootでないと確保できないか?
$sudo bash -c "time make check"
…改善しない。
仕方ないのでいったんrootに降りて、別の環境で.configureからやり直してみる。
今make check中だけど…エラー出てるな…。これで同じモノが出るようなら、もっときちんと状況確認すべきですな。ライブラリとか、足りてないかも知れないしね。
(や、素直にyum install rubyしろ、という噂も…)
…寝るか。明日から二人に分離しないといけないし!
…とか言っていたら、make check終わった。エラー変わらず。SOAPとか使うつもりないし、吐いているのWebrickだし、もうこのままで良いかなぁ…。
あー。エラーログ見直してみたら、なんかインストールする前から「/usr/bin/rubyが無ぇっ」とかやってるのね。
てか、READMEによるとrubyはmake testまで通れば良いんだったか…。make checkがあるとついそっちまで通したくなってしまうのだけど…。面倒だからこのままイクかー。
リモートゆえ、何かトラブった時のリカバリが面倒なので、危ない橋は渡りたくないんだけどなー<ならばyumで1.8.5を入れろよ