OpenBSD 5.1 releaseでruby-buildからのruby 1.9.2-p320, 1.9.3-p194がinstallできない
railsアプリサーバを立ち上げるため、OpenBSD+rbenv+ruby-buildの環境を作る機会が得られた。
取りあえずOpenBSDをinstallして、専用のユーザを立てたのち、そこにrbenvとruby-buildをinstall。
# useradd -m myrails # passwd myrails ... # pkg_add git ... # su - myrails $ git clone https://github.com/sstephenson/rbenv.git .rbenv ... $ mkdir -p .rbenv/plugins && cd .rbenv/plugins $ git clone https://github.com/sstephenson/ruby-build.git ... $ vi ~/.profile ...
あとはruby-buildでrubyをinstallするだけ……だったのだが。
rbenv install ruby 1.9.3-p194
bigdecimalのmake時に../../.ext/のbigdecimal系ディレクトリが生成されなくて死ぬ。
install: install-so install-rb install-so: $(RUBYARCHDIR) install-so: $(RUBYARCHDIR)/$(DLLIB) install-rb: pre-install-rb install-rb-default install-rb-default: pre-install-rb-default pre-install-rb: Makefile pre-install-rb-default: Makefile pre-install-rb-default: $(RUBYLIBDIR)/bigdecimal ... $(RUBYLIBDIR)/bigdecimal: $(Q) $(MAKEDIRS) $@
大体ここら辺のルールらしい。どうみても通るように見えるんですが。
rbenv install ruby 1.9.2-p320
inspect_peercredでucred.pid/uid/gidをアクセスするコードを書いていて、コンパイル時に死ぬ。
This is because we use "struct sockpeercred" instead of "struct
Re: Compiling Ruby 1.9.2 on OpenBSD 5.1
ucred": you need to patch option.c
MLにある出来たてのスレッドによるとどうもバグらしい。
ど、どうするんだ、これは……