require ’poppler’ が Cannot open display で止まるのを回避する


ssh でログインした先の debian lenny で libpoppler-glib-ruby を入れて、 require 'poppler' とすると RuntimeError: Cannot open display: となって止まってしまいました。今回は rcairo と組み合わせて CUI のスクリプトを作るだけなので、display は開けなくても問題はないはず。

ということでざっと調べてみると

http://dolphin.c.u-tokyo.ac.jp/~nori1/w/?cmd=view;name=Log200711

にヒントがありました。深く追いかけてはいませんが、これを参考にして

begin
  require 'poppler'
rescue RuntimeError
  raise unless $!.message =~ /^Cannot open display:/
  retry
end

とすると問題を回避できました。ということでメモしておきます。