mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Cygwin - Ruby で OpenSSL!

[ サーバ構築, プログラミング ] [ Cygwin, Ruby ]

こんばんは。

Cygwin 上の Ruby で ‘openssl’ を require しているスクリプトを実行すると以下のようなエラーが発生する場合があります。

1
2
3
4
$ 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 を導入済みなら以下のようにしてインストールします。

1
$ apt-cyg install openssl-devel

2.Ruby 再ビルド・インストール

Ruby をソースからビルド・インストールしている場合は、上記の openssl-devel を有効にさせるために Ruby を再度ビルド・インストールする必要があるようです。 ソースからのビルド・インストールは過去記事参照。

※但し、インストールに使用したソースディレクトリは次項で使用するので削除しないこと。

3.extconf.rb の実行

さらに、Ruby で ‘openssl’ を使用可能にするために、Ruby インストールの際に使用したソースを利用します。

1
2
$ cd ruby-1.9.2-p290/ext/openssl
$ ruby extconf.rb


これで ‘openssl’ の require でロードエラーにはならないはずです。

以上です。

Comments