Cygwin - Ruby で OpenSSL!
Updated:
Cygwin 上の Ruby で ‘openssl’ を require しているスクリプトを実行すると以下のようなエラーが発生する場合があります。
$ ruby hoge.rb
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': no such file to load -- openssl (LoadError)
from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from hoge.rb:21:in `<main>'
‘openssl’ がロードできないと言っています。
通常なら openssl-devel というパッケージをインストールするだけでよいのですが、Cygwin の場合はそれだけではなかったので対策を記録として残しておきます。
作業記録
ここで言う Ruby とは RVM(Ruby Version Manager) でインストールした Ruby ではなく、システムにソースからビルド・インストールした Ruby のことです。 ※バージョンは Ruby 1.9.2-p290 です。
1.openssl-devel のインストール
Cygwin の setup.exe から openssl-devel をインストールするか、もしくは、apt-cyg を導入済みなら以下のようにしてインストールします。
$ apt-cyg install openssl-devel
2.Ruby 再ビルド・インストール
Ruby をソースからビルド・インストールしている場合は、上記の openssl-devel を有効にさせるために Ruby を再度ビルド・インストールする必要があるようです。 ソースからのビルド・インストールは過去記事参照。
※但し、インストールに使用したソースディレクトリは次項で使用するので削除しないこと。
3.extconf.rb の実行
さらに、Ruby で ‘openssl’ を使用可能にするために、Ruby インストールの際に使用したソースを利用します。
$ cd ruby-1.9.2-p290/ext/openssl
$ ruby extconf.rb
これで ‘openssl’ の require でロードエラーにはならないはずです。
以上です。
Comments