Provisioner

Windowsでberksコマンドを実行すると発生するエラーの対応

先日インストールしたBerkshelfですが、実行するとエラーが発生しました。
エラー内容は取っていないのですが、ChefにバンドルされているRubyがSSLの証明書を見つけられないような感じでした。
その対応方法です。

使用しようとしている証明書のパスを表示させると
[bash]
ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_FILE'
[/bash]
と実行すると
[bash]
"C:/Users/Luis/Code/openknapsack/knap-build/var/knapsack/software/x86-windows/openssl/1.0.0k/ssl/cert.pem"
[/bash]
と表示されます。
まぁ、"Luis"なんてユーザーは存在しないわけで、プログラム内にこの場所がハードコーディングされているのが原因ということでした。

まず、正しい証明書をダウンロードします。
http://curl.haxx.se/ca/cacert.pem
これを適当なフォルダに保存します。
自分はC:\MinGW\sslというフォルダを勝手に作成しましたが、特に意味はありません。

Windowsの環境変数に以下を設定して対応できました。
[bash]
SSL_CERT_FILE = C:\MinGW\ssl\cacert.pem
[/bash]
これ、Windowsの環境変数、自分はユーザー変数として定義して無事にberksを実行することができました。

-Provisioner
-

© 2024 ビー鉄のブログ Powered by AFFINGER5