概要
- conda/pip/gemのネットにあるProxy設定の情報方法を試してもダメな場合、NTLM認証だからかもしれません。
- cntlmをローカルに入れて、そこを通すことでconda/pip/gemが使えるようになります。
環境
- Windows 7 - 64bit
- gem 2.5.1
- pip 9.0.1
- conda 4.3.24
手順
まず、Cntlmを使いNTLM proxy環境下でもnpmを使いたい_OPC Diaryを読んで、cntlmを設定します。「npmの設定」の部分は飛ばしてOKです。
Cntlmとは
Cntlmはオープンソースで提供されているNTLM認証Proxy環境下で、各種ツールに変わりNTLM認証の代行を行うProxyサーバーです。今回はWindowsで動かしますが、Linux、Mac版もあります。(事実上NTLM認証Proxy環境下でLinuxやMacのHomebrew使うなら必須じゃないかな。。。)
まとめ
という事で、npmに限らずproxy設定できるツールならCntlmを使えば有利な戦いがで切るんじゃないかな!
conda
Proxy下のWindowsでPython(Anaconda)環境を整える - Qiitaを読み、.condarcのプロキシ設定を以下のようにする。
proxy_servers:
http: http://[プロキシアドレス]:[ポート番号]
https: https://[プロキシアドレス]:[ポート番号]
cntlm.iniのデフォルトを使うならば、ポート番号は3128なので以下です。
proxy_servers:
http: http://localhost:3128
https: https://localhost:3128
pip
pythonメモ proxy下でのpip、easy_install - Qiitaを参考に、コマンドpip installする前に以下を実行します。
set HTTP_PROXY=http://localhost:3128
set HTTPS_PROXY=https://localhost:3128
プロセス固有の環境変数(PATH)を設定したコマンドプロンプトを立ち上げる-Qiitaの応用例1を使って、
set env = shell.Environment("Process")
env.Item("HTTP_PROXY") = "http://localhost:3128"
env.Item("HTTPS_PROXY") = "https://localhost:3128"
のように設定してコマンドプロンプトを立ち上げておくといいかもしれません。
gem
gem installは、-pでプロキシを指定できるので、以下のようにします。
> gem install serialport -r -p https://localhost:3128
gem install時にcertificate verify failed が発生したら - Qiitaで証明書を入れ替える必要があるかもしれません。
> gem install serialport -r -p http://localhost:3128
RROR: Could not find a valid gem 'serialport' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)
「certificate verify failed 」が発生したら、
C:\Ruby23-x64\lib\ruby\2.3.0\rubygems\ssl_certs\AddTrustExternalCARoot-2048.pem
のバックアップを取ったあと、テキストエディタで開いて、
View in Base64で見れる証明書
の内容をコピーして保存すればいけると思います。
httpでなんとかするという方法もあるようですが、「セキュリティ上httpsを推奨するとメッセージが出る」ようなので、こちらの方が若干クリーンかなと。
参考
Cntlmを使いNTLM proxy環境下でもnpmを使いたい_OPC Diary
[Windows]Forefront TMGのNTLM認証プロキシをCntlmでなんとかする_エンジニ屋
gem install時にcertificate verify failed が発生したら - Qiita
プロセス固有の環境変数(PATH)を設定したコマンドプロンプトを立ち上げる-Qiita