web-dev-qa-db-ja.com

プロキシの背後にある亭

bower installプロキシの背後で、次の設定でタイムアウトに失敗します(一部のセットは役に立たない...):

git config --global http.proxy fr-proxy.example.com:3128
git config --global https.proxy fr-proxy.example.com:3128

export http_proxy=http://fr-proxy.example.com:3128
export https_proxy=http://fr-proxy.example.com:3128

npm config set proxy http://fr-proxy.example.com:3128
npm config set https-proxy http://fr-proxy.example.com:3128

npm config set registry http://registry.npmjs.org/

また、bowerとbower clean cacheのインストール/アンインストールも試しました。

49
benek

.bowerrcファイルを編集して、必要なプロキシ構成を追加します。

{
    "proxy":"http://<Host>:<port>",
    "https-proxy":"http://<Host>:<port>"
}

認証済みプロキシの背後で作業する場合、ユーザーとパスワードは次のように含める必要があります。

{
    "proxy":"http://<user>:<password>@<Host>:<port>",
    "https-proxy":"http://<user>:<password>@<Host>:<port>"
}

通常、.bowerrcはbower.jsonの隣にあります。また、bower.jsonファイルの近くに.bowerrcファイルがない場合は、自分で作成できます。

98
rmic

bower listコマンドに問題があります。これは、bowerがgit:// URLでgitを使用してリモートGitHubリポジトリのリストを取得するが、git://プロトコルは会社のファイアウォールによってブロックされています。環境変数の設定に加えてこの問題を解決するために、gitにも追加の構成を追加する必要があります。ここに私が実行しなければならないコマンドの完全なリストがあります(プロキシのホストとポートをあなたのものに置き換えてください):

# set proxy for command line tools
export HTTP_PROXY=http://localhost:3128
export HTTPS_PROXY=http://localhost:3128
export http_proxy=http://localhost:3128
export https_proxy=http://localhost:3128

# add configuration to git command line tool
git config --global http.proxy http://localhost:3128
git config --global https.proxy http://localhost:3128
git config --global url."http://".insteadOf git://

Bashの標準環境変数は大文字で、プロキシの場合はHTTP_PROXYおよびHTTPS_PROXYですが、一部のツールではそれらが小文字であると想定されているため、bowerはそれらのツールの1つです。これが、2つのケースでプロキシを設定することを好む理由です:下と上。

BowerはGitHubからパッケージを取得するためにgitを使用しているため、構成キーもgitに追加する必要があります。 http.proxyおよびhttps.proxyはプロキシ設定であり、プロキシを指す必要があります。最後になりますが、ファイアウォールでブロックされる可能性があるため、git://プロトコルを使用しないようにgitに指示する必要があります。標準のhttp://プロトコルに置き換える必要があります。誰かがhttps://の代わりにgit://の代わりにgit config --global url."https://".insteadOf git://を使用することを勧めていますが、Connection reset by peerエラーが発生していたので、http://を使用しています。私にとっては大丈夫です。

自宅では、プロキシを使用せず、企業のファイアウォールも持っていないため、「通常の」プロキシなし設定に戻すことを好みます。以下にその方法を示します。

# remove proxy environment variables
unset HTTP_PROXY
unset HTTPS_PROXY
unset http_proxy
unset https_proxy
# remove git configurations

git config --global --unset http.proxy
git config --global --unset https.proxy
git config --global --unset url."http://".insteadOf

私は物事を覚えるのがあまり得意ではないので、それらのコマンドをすべて覚えることは決してないでしょう。これに加えて、私は怠け者で、これらの長いコマンドを手で入力したくありません。これが、プロキシ設定を設定および設定解除する関数を作成していた理由です。以下は、いくつかのエイリアス定義の後に.bashrcファイルに追加した2つの関数です。

set_proxy() {
    export HTTP_PROXY=http://localhost:3128
    export HTTPS_PROXY=http://localhost:3128
    # some tools uses lowercase env variables
    export http_proxy=http://localhost:3128
    export https_proxy=http://localhost:3128
    # config git
    git config --global http.proxy http://localhost:3128
    git config --global https.proxy http://localhost:3128
    git config --global url."http://".insteadOf git://
}
unset_proxy() {
    unset HTTP_PROXY
    unset HTTPS_PROXY
    unset http_proxy
    unset https_proxy
    git config --global --unset http.proxy
    git config --global --unset https.proxy
    git config --global --unset url."http://".insteadOf
}

プロキシを設定する必要があるとき、set_proxyコマンドを実行し、unset_proxyコマンドを設定解除するだけです。 Bashのオートコンプリートの助けを借りて、これらのコマンドを入力する必要はありませんが、Tabでそれらを補完することができます。

30
edufinn

プロキシを設定するためのスクリプト(Windowsではgit bashを使用)は、bowerで使用していたユーザーとは異なるユーザーによって実行されました。環境変数は考慮されませんでした。

したがって、他の回答で指定されているように、次の設定で十分です。

export http_proxy=http://fr-proxy.example.com:3128
export https_proxy=http://fr-proxy.example.com:3128
6
benek

OSがLinuxまたはOS Xの場合、次のコマンドを試してくださいbash http_proxy='proxy server' https_proxy='proxy server' bower

0
tinyproxy