メモの日々


2010年10月05日(火) [長年日記]

  • スーツの上着は修理してもらえた。費用は500円だった。
  • 国勢調査回答したー。

[windows][ruby] Ruby-1.9.2-p0 Microsoft Installter Packageをインストールした

[ruby-list:47363]でアナウンスされていたWindows用のRuby 1.9.2をインストールしたんだけど、gem installを実行したら

序数291がダイナミックライブラリSSLEAY32.dllからみつかりませんでした。

というエラーダイアログが出てきてしまった。

調べると、artonさんの日記

RubyGemなどを利用する場合は、お手数ですが、libopenssl-msvcr100をダウンロードして、インストールしたディレクトリ直下のbinディレクトリへコピーしてください。この時、特に管理者権限やインストール先ディレクトリを意識せずにmsiをインストールした場合は、Administrator用コンソールを利用したほうが良いと思います。

とあった。libopenssl-msvcr100.zipをダウンロードするとその中にssleay32.dllがあって、それらをbinにコピーしたら上のエラーは出なくなった。「Administrator用コンソールを利用」というのの意味が分からなかったので普通にエクスプローラからコピーしたんだけど、問題ないのかな。

[ruby][windows] Ruby 1.9だとNet::SSHとPageantの連携が動かない

Ruby 1.9でNet::SSH(net-ssh 2.0.23)を使ってみたら、以前できていたPageantとの連携ができなくなった。

net.ssh.authentication.agent[8f1f06]: connecting to ssh-agent
net.ssh.authentication.agent[8f1f06]: could not connect to ssh-agent

のように、ssh-agentとの接続でエラーになる。原因を調べると、

uninitialized constant Net::SSH::Authentication::Agent::Pageant

というエラーになっているからで、そうなる原因はssh/suthentication/agent.rbの最初に

if File::ALT_SEPARATOR && !(RUBY_PLATFORM =~ /java/) && RUBY_VERSION < "1.9"
  require 'net/ssh/authentication/pageant' 
end

とあるからだ。1.9でもpageantをrequireするようにしてみると

uninitialized constant DL::Importable

というエラーになった。Ruby 1.9ではDL::Importableはなくなっているみたい。

なので、Net::SSHのPageant連携機能はRuby 1.9では動かないようだ。

やること

  • 国勢調査
  • 請書
  • スーツ
  • コンタクト