スポンサー広告
         
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
 
 

Geek
         
Proxy設定下でgitだのHomebrewだのを利用しようとしていたところ、403エラーが返っていた。
特にセキュリティ的な面でProxyサーバがHTTP,HTTPS以外を制御している環境下では、それぞれのプロトコルがそのProxyサーバを通る設定にしなきゃならない。

当初は、Macでいうなら「System Preference」>「Advanced」>「Proxies」からHTTP,HTTPSの設定を、
Windowsならインターネットエクスプローラーの「設定」>「接続」 からプロキシサーバーとポートを指定することで通ると思っていたがどうにもならない。

外部とやりとりするためには、30分ほどかかったので備忘録。

結論から言うと、Gemコマンドというか、Ruby環境でProxy設定をしていなかったことにある。
せっかくなので各々の環境での設定をざっと書く。

ちなみに、

Rubyの環境下でGemコマンドが通らなかったときは以下のようなエラーがでていた
ERROR: Could not find a valid gem 'モジュール名' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - Errno::ETIMEDOUT:
A connection attempt failed because the connected party did not properly respon
d after a period of time, or established connection failed because connected hos
t has failed to respond. - connect(2) for "api.rubygems.org" port 443 (https://a
pi.rubygems.org/latest_specs.4.8.gz)


プロキシ環境下でシェル(Homebrew),Rubyを利用する場合


$ export http_proxy=http://<プロキシサーバ>:<ポート名>/
$ export https_proxy=$http_proxy
$ export all_proxy=$http_proxy

※ダブルクウォーテーションは利用しない。

http://<プロキシサーバ>:<ポート名>/
の例としては
<プロキシサーバ> → proxy.com
<ポート名> → 8080 など、各自の環境似合わせて設定。
Windows環境下ででは、 SET HTTP_PROXY=プロキシサーバアドレス と、SETコマンドを利用する。

これはあくまでも一度の設定となるので、毎回呼び出したいときは、

$ export http_proxy=http://<プロキシサーバ>:<ポート名>/ >> /etc/profiled.d/
$ export https_proxy=$http_proxy >> /etc/profiled.d/
$ export all_proxy=$http_proxy >> /etc/profiled.d/


といった具合で(やや乱暴だけれども、) /etc/profiled.d/ などに書き込んでおくことで、
bash起動時の環境変数に書いてしまうことが望ましい。
他ユーザが利用する可能性があるサーバであれば
  /etc/profiled.d/ よりも、~/.bash_profile のユーザ環境変数とした方が良いかもしれない。

Windows環境で恒久的に入れるのであれば、「システム環境変数」にHTTP_PROXYという値を作成して、新規にコマンドプロンプトを立ち上げれば反映される。



プロキシ環境下でGitを利用する場合


$ git config --global http.proxy http://<プロキシサーバ>:<ポート名>
$ git config --global https.proxy http://<プロキシサーバ>:<ポート名>
$git config --global url."https://".insteadOf git://


といった具合で幸せになれる。

スポンサーサイト
 
 

トラックバック用URL ;http://gatolynx.blog100.fc2.com/tb.php/245-57bc7e3e

コメントの投稿

非公開コメント

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。