Windowsでberksコマンドを実行すると発生するエラーの対応
先日インストールしたBerkshelfですが、実行するとエラーが発生しました。 エラー内容は取っていないのですが、ChefにバンドルされているRubyがSSLの証明書を見つけられないような感じでした。 その対応方法です。
使用しようとしている証明書のパスを表示させると
ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_FILE'
と実行すると
"C:/Users/Luis/Code/openknapsack/knap-build/var/knapsack/software/x86-windows/openssl/1.0.0k/ssl/cert.pem"
と表示されます。
まぁ、"Luis"なんてユーザーは存在しないわけで、プログラム内にこの場所がハードコーディングされているのが原因ということでした。
まず、正しい証明書をダウンロードします。
http://curl.haxx.se/ca/cacert.pem
これを適当なフォルダに保存します。
自分はC:\MinGW\sslというフォルダを勝手に作成しましたが、特に意味はありません。
Windowsの環境変数に以下を設定して対応できました。
SSL_CERT_FILE = C:\MinGW\ssl\cacert.pem
これをWindowsの環境変数、自分はユーザー変数として定義して無事にberksを実行することができました。