1

プロジェクト用に作成した gem を提供する LAN で動作する gem サーバーをついに手に入れました。ただし、これらの gem には、相互に、およびサード パーティの gem との依存関係があります。

また、「プライベート」gem はローカルの gem サーバーに存在しますが、サードパーティの gem は ruby​​gems.org などのサイトに存在します。

私たちの LAN はプロキシの背後にあるため、インターネットに接続するには $http_proxy $https_proxy 変数を設定する必要があります。そして、プロキシ経由で解決されるべきではないものについては、 $no_proxy 変数を設定しました。

残念ながら、bundler/ruby は $no_proxy 変数を気にしていないようですか?

私の gemfile では、必要なすべての URL を設定しました。内部のものと外部のもの。しかし、プロキシ (ローカル URL を持つ $no_proxy を含む) が設定されている場合、ローカル gem サーバーのプロキシからゲートウェイ タイムアウトが発生します。

Bundler/Ruby にプロキシの除外に従うように指示する (Bundler/Ruby ソースにパッチを適用することなく) 方法はありますか?

乾杯、ステファン

4

2 に答える 2

1

奇妙なことに、今日も同じ問題にぶつかりました。

回避策として、最終的にCNTLMをインストールしました。上流のプロキシを指していますが、特定のホストでは無視するように (cntlm.conf の NoProxy オプションを介して) 構成されています。

$http_proxyまた、アップストリーム プロキシではなく CNTLM (デフォルトでは http://localhost:3128) を指すように環境変数を設定する必要がありました。

于 2012-08-28T22:30:29.453 に答える
1

もう少し深く掘り下げたところ、Ruby のNet::HTTPSession単なるプレーンには、プロキシ ルックアップからホストを除外するためのコードが含まれていないことがわかりました。Bundler はこのクラスを使用するため、no_proxy変数に従う方法はありません。

私の回避策:

最終的に、Ruby プロジェクトに必要なすべての gem を収集し、それらをローカルの gem サーバーに配置しました。それは間違いなく理想的ではありません。しかし、少なくとも、プロジェクトで使用される Gem をより細かく制御できます。

Ruby バグトラッカーで読んだno_proxyように、Ruby 2.0 には認識が含まれます。これは、当面は回避策を講じる必要があることを意味します。

于 2012-08-30T13:18:52.657 に答える