2008-08-07 21 views
203

私が後にいるファイアウォールは、Microsoft ISA ServerをNTLM専用モードで実行しています。ハッシュ誰かがRubyの宝石をRuby SSPIの宝石や他の方法でインストール/更新することに成功していますか?Ruby Gemsをプロキシ(ISA-NTLM)の背後から更新する方法

...私はただ怠け者ですか?

注:rubysspi-1.2.4は機能しません。

これはまた、IronRubyのプロジェクト

+6

+1私はこれに1日拘束されています。質問してくれてありがとう。 – Gishu

+0

Rubysspiを動作させましたが、多くの手間が必要です。 Git Bashシェルからそれを使いたい場合は、以下のように.bashrcファイルにエイリアスを追加する必要があります: 'alias gem = 'ruby -rspa \' which gem \ '' – iconoclast

+1

プロキシ'sudo -E doSomething'のように' -E'スイッチを追加して 'sudo'があなたの環境変数にアクセスできるようにしてみてください –

答えて

197

は、私は私がコマンドラインスイッチから作業を取得することができませんでしたが、私はちょうど私のHTTP_PROXY環境変数を設定することによって、それを行うことができました。 (大文字小文字が重要であることに注意してください)。

SET HTTP_PROXY=http://%USER%:%PASSWORD%@%SERVER%:%PORT% 

この行に明らかになる前に、4つの参照変数を設定しました。自分のユーザー名は「wolfbyte」であれば、私のパスワードは「秘密」であると私のプロキシは「猪八戒」と呼ばれ、ポート8080上で動作している例として:

SET HTTP_PROXY=http://wolfbyte:[email protected]:8080 

あなたはのでそれことをどのように管理するかに注意することがありますマシンのセッションでパスワードをプレーンテキストで保存していますが、あまり問題にならないとは思いません。

+5

http_proxy env varまたは--http-proxy引数のいずれかによって、 'gem'がプロキシ文字列のバックスラッシュを認識できないようです。例えば私のUbuntuボックスから--http-proxy http:// domain \\ userid @ server:portは私にエラーを与えます: "無効な引数:--http-proxy ...";幸いにも、私のプロキシサーバはドメイン指定を必要とせず、宝石はそれなしで働いた。 – spoulson

+0

ISAでは、管理者は認証のためのデフォルトドメインを指定できます。あなたはドメインを離れて、spoulsonの示唆のようにあなたのユーザー名を使用することができます。あなたのISA管理者が既定のドメインを指定していて、そのユーザーアカウントがそのドメインにある場合、これはあなたのために機能するはずです(ファイアウォールにブロックルールがないと仮定して) – squillman

+0

ありがとうございました!私が-pと--http-proxyコマンドライン引数を試したときになぜそれがうまくいかなかったのか不思議です。 env varがうまくいくようです。 – Gishu

5

の一部は、この問題を回避するには、ローカルマシンにhttp://apserver.sourceforge.netをインストールして構成し、このプロキシ経由で宝石を実行することで、「IGEM」のために働きます。

  • インストール:apserver 097(および実験的な098!)をダウンロードして解凍してください。
  • 設定:server.cfgファイルを編集し、MSプロキシの値をPARENT_PROXYPARENT_PROXY_PORTに設定します。 DOMAINとUSERの値を入力します。 PASSWORDを空白のままにします(コロンの後には何も表示されません)。起動時にプロンプ​​トが表示されます。
  • 実行APSERVER:cd aps097; python main.py
  • ラン宝石は:gem install—http-proxy http://localhost:5865/ library
+5

'apserver'というグーグルグループを読んでください。 NTLM認証サーバーになりました。前者を探すことは後者にリダイレクトされないというのは残念です。 –

+0

こんにちは、Jarin、 あなたのコメントであなたが提供したリンクに行きました、そして、そのダウンロードを見つけることができませんでした。どこからでもダウンロードできる方法はありますか? – Matrich

+1

ダーレンのコメントによると@Matrich。 apserverの名前が変更され、ここに見つかりました:http://ntlmaps.sourceforge.net/ – atomicules

46

私は職場でcntlm(http://cntlm.sourceforge.net/)を使用しています。設定はntlmapsと非常によく似ています。

は素晴らしい作品をインストールし、また私はISAプロキシに私のUbuntuボックスを接続することができます。

+2

これはすべての試みの中で最も痛みのない方法です。 Ubuntu/Debianでは、私はapt-get install cntlmを実行し、configを編集してhttp_proxy = "http:// localhost:3128"をエクスポートします。作品! – Konrads

+0

窓にも完全に機能します。ありがとう! –

7

記事は、このトピックに関するたくさんあるし、他の人がさまざまなソリューションをしようとの時間を節約するために詳細はhttp://cntlm.wiki.sourceforge.net/をチェックし、ここでの工夫の私の時間の最終的な結果です。現時点ではインターネットのまわり

3の解決策は以下のとおりです。それはWin32APIのライブラリに依存しているよう ruby​​sspi APSERVER cntlm

ruby​​sspiは、私の知る限り、Windowsマシンから動作します。したがって、プロキシを実行しようとしているWindowsのボックスにいる場合は、これが解決策です。あなたがLinuxのディストリビューションであれば、あなたは運が悪いです。

apserverは死んだプロジェクトのようです。私が見た記事のリンクは、sourceforgeの404ページにつながっています。 sourceforgeで "apserver"を検索すると何も返されません。

私はhttp://cntlm.awk.cz/にリダイレクトを見てきましたcntlmためsourceforgeのリンク、それがタイムアウト。 sourceforgeで検索すると、次のようなリンクが表示されます。http://sourceforge.net/projects/cntlm/ cntlmをダウンロードして設定した後、私はプロキシを通して宝石をインストールすることができました。これはLinuxディストリビューションにとって最適なソリューションです。

186

Windows OSの場合、私はこの問題を回避するためにFiddlerを使用しました。 www.fiddler2.com

  • ラン宝石から/実行フィドラーをインストール

    1. $ gem install --http-proxy http://localhost:8888 $gem_name 
      
  • +3

    ntlmapsとcntlmよりはるかに簡単な処理を行いました。 – atomicules

    +30

    これは私のために働いた。 Fiddlerはすべての状況で必要というわけではありません。 'gem install --http-proxy http://COMPANY.PROXY.ADDRESS $ gem_name'だけが私にとって必要なものです。 – Polaris878

    +2

    魔法は爆弾のように機能し、私たちの大部分は既にそれを持っています... – Jim

    10

    あなたは環境変数を設定してください、あなたのプロキシを介して認証取得に問題がある場合以下の正確なフォーマットで:

    set HTTP_PROXY=some.proxy.com 
    set HTTP_PROXY_USER=user 
    set HTTP_PROXY_PASS=password 
    

    user:[email protected]構文が動作するようには思えないし、スタックオーバーフローや様々なforuに漂っいくつかのひどいという名前の環境変数もありますmの投稿。

    また、宝石のダウンロードを開始するまでに時間がかかることに注意してください。最初は私はそれが動作していないと思ったが、少しの忍耐で彼らは期待どおりにダウンロードを開始した。

    +0

    Benjamin Woottonのヒントは、企業LANに接続されたWindows 7のノートパソコンでうまくいきました。 DOSプロンプトのコマンドラインウィンドウで、http:// localhost:8888(スペースを無視)としてHTTP_PROXYを設定し、HTTP_PROXY_USERとHTTP_PROXY_PASSにそれぞれLANのユーザー名とパスワードを使用しました。 – raycarr

    +0

    他の解決策のどれも私のために働いたことはありません。これは治療になりました。ベンジャミンありがとう! – thegreendroid

    112

    全く働いていたこの:

    gem install --http-proxy http://COMPANY.PROXY.ADDRESS $gem_name 
    
    +14

    これは最新の回答です.Windowsでも動作します。 gem install --http-proxy http:// [_user_]:[_password_] @ [_server_]:[_port_] – Geronimo

    +0

    私のユーザ名とパスワードを追加する必要がありました。短くて簡単な解決策を愛してください。 – Urchin

    +0

    私はjekyllをインストールできませんでした。 'SSL_connect SYSCALL returned = 5 errno = 0 state = unknown state(https://rubygems.global.ssl.fastly.net/quick/Marshal.4.8/jekyll-3.0.0.gemspec .rz) 'です。これは 'gem install --http-proxy http://127.0.0.1:8580 jekyll'と私のために働いた –

    35

    は、私はこれらのソリューションの一部を試みたが、それらのどれも働きました。プロキシを渡すために-pパラメータを使用して

    gem install -p http://proxy_ip:proxy_port rails 
    

    :私は最終的に私の作品解決策を見つけました。私はGemバージョン1.9.1を使用しています。

    +1

    プロキシ部分をhttp:// username:password @ proxy_ip:proxyportに置き換えてインストールしました –

    +0

    'https'接続に使用する' proxy_ip'を追加する必要がありました!偉大な:D(宝石版2.0.14) – madlymad

    4

    私はプロキシの背後で働いており、http://rubygems.orgから直接ダウンロードすることでSASSをインストールしました。

    その後、sudo gem install [path/to/downloaded/gem/file]を実行しました。私はこれがすべての宝石のために働くとは言えませんが、それは一部の人々を助けるかもしれません。

    +0

    ありがとう、他の何も働いていないが、私のためのルビー2.xのため – catrapture

    2

    あなたは* nixのシステム上にある場合は、この使用:

    export http_proxy=http://${proxy.host}:${port} 
    export https_proxy=http://${proxy.host}:${port} 
    

    してから試してみてください。

    gem install ${gem_name} 
    
    14

    をこれは完全に私の問題を解決しました:

    あなたが必要な場合があります
    gem install -p http://proxy_ip:proxy_port compass 
    

    をユーザー名とパスワードを追加する:

    gem install -p http://[username]:[password]@proxy_ip:proxy_port compass 
    
    +0

    ちょうどそれをテストし、窓8のこの仕事 – disklosr

    +0

    この1つの答えは答えです。緑色の旗で囲まれた答えはまったく機能しません。 – nottinhill

    +0

    これはMac OSX 10.9.4での認証で私の仕事をしました。 –

    1

    を指摘しています。

    OSX 10.9.3で動作します。

    1

    プロキシの背後にある場合は、Ruby downloadsに移動し、ダウンロードをクリックすると、指定したアップデート(またはGem)が目的の場所にダウンロードされます。

    次に、Rubyのコマンドラインを介して、使用してダウンロードした場所に移動します。pushd [directory]

    例えば:pushd D:\Setups

    次のコマンドを実行します。gem install [update name] --local

    例:gem install rubygems-update --local

    Windows 7でRubyのアップデートバージョン2.4.1でテストされています。

    コマンド以下の使用を確認するには:ruby -v

    3

    これは、Windowsのボックスに私の仕事:

    set HTTP_PROXY=http://server:port 
    set HTTP_PROXY_USER=username 
    set HTTP_PROXY_PASS=userparssword 
    set HTTPS_PROXY=http://server:port 
    set HTTPS_PROXY_USER=username 
    set HTTPS_PROXY_PASS=userpassword 
    

    を、私は私がそれを必要とするとき、私は環境値を設定するために使用し、これらの線でバッチファイルを持っています。

    トリックは、私の場合には、HTTPS_PROXYセットでした。それらがなければ、私はいつも407のプロキシ認証エラーを持っています。

    11

    (は/ opt /シェフ/組込みの/ etc/gemrcでシェフの宝石とは/ etc/gemrcまたは〜/ .gemrcまたは例えばいずれか).gemrcファイルを作成します含む:

    http_proxy: http://proxy:3128 
    

    を次にあなたがいつものようにgem installできます。

    +1

    仕事、感謝:) –

    関連する問題