Frage

Die Firewall, hinter der ich stehe, führt den Microsoft ISA-Server im reinen NTLM-Modus aus.Hat jemand Erfolg damit, seine Ruby-Gems über Ruby SSPI-Gem oder eine andere Methode zu installieren/aktualisieren?

...oder bin ich nur faul?

Notiz:rubysspi-1.2.4 funktioniert nicht.

Dies funktioniert auch für „igem“, Teil des IronRuby-Projekts

War es hilfreich?

Lösung

Ich konnte meine nicht über den Befehlszeilenschalter zum Laufen bringen, aber ich habe es geschafft, indem ich einfach meine eingestellt habe HTTP_PROXY Umgebungsvariable.(Beachten Sie, dass die Groß-/Kleinschreibung wichtig zu sein scheint).Ich habe eine Batch-Datei, die eine Zeile wie diese enthält:

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

Ich habe natürlich die vier referenzierten Variablen festgelegt, bevor ich zu dieser Zeile komme.Wenn mein Benutzername beispielsweise „wolfbyte“ ist, mein Passwort „geheim“ ist und mein Proxy „pigsy“ heißt und auf Port 8080 läuft:

SET HTTP_PROXY=http://wolfbyte:secret@pigsy:8080

Möglicherweise möchten Sie bei der Handhabung vorsichtig sein, da Ihr Kennwort in der Sitzung des Computers im Klartext gespeichert wird. Ich denke jedoch nicht, dass dies ein allzu großes Problem darstellen sollte.

Andere Tipps

Für das Windows-Betriebssystem habe ich Fiddler verwendet, um das Problem zu umgehen.

  1. Installieren/führen Sie Fiddler von www.fiddler2.com aus
  2. Führen Sie gem aus:

    $ gem install --http-proxy http://localhost:8888 $gem_name
    

Das hat total funktioniert:

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

Ich habe cntlm verwendet (http://cntlm.sourceforge.net/) auf Arbeit.Die Konfiguration ist ntlmaps sehr ähnlich.

Funktioniert großartig und ermöglicht mir auch, meine Ubuntu-Box mit dem ISA-Proxy zu verbinden.

Kasse http://cntlm.wiki.sourceforge.net/ für mehr Informationen

Ich habe einige dieser Lösungen ausprobiert, aber keine davon hat funktioniert.Endlich habe ich eine Lösung gefunden, die für mich funktioniert:

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

Verwendung der -p Parameter zum Übergeben des Proxys.Ich verwende Gem Version 1.9.1.

Das hat mein Problem perfekt gelöst:

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

Möglicherweise müssen Sie Ihren Benutzernamen und Ihr Passwort hinzufügen:

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

Erstellen Sie eine .gemrc-Datei (entweder in /etc/gemrc oder ~/.gemrc oder zum Beispiel mit chef gem in /opt/chef/embedded/etc/gemrc), die Folgendes enthält:

http_proxy: http://proxy:3128

Dann kannst du gem install wie gewöhnlich.

Wenn Sie Probleme bei der Authentifizierung über Ihren Proxy haben, stellen Sie sicher, dass Sie die Umgebungsvariablen genau im folgenden Format festlegen:

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

Der user:password@ Die Syntax scheint nicht zu funktionieren und es gibt auch einige schlecht benannte Umgebungsvariablen auf Stack Overflow und verschiedenen Forenbeiträgen.

Beachten Sie auch, dass es eine Weile dauern kann, bis der Download Ihrer Edelsteine ​​beginnt.Zuerst dachte ich, es würde nicht funktionieren, aber mit etwas Geduld begannen sie wie erwartet mit dem Download.

Ich habe alle oben genannten Lösungen ausprobiert, aber keine davon hat funktioniert.Wenn Sie Linux/MacOS verwenden, empfehle ich dringend, Tsocks über einen SSH-Tunnel zu verwenden.Damit dieses Setup funktioniert, benötigen Sie einen Computer, auf dem Sie sich per SSH anmelden können, und außerdem ein installiertes Programm namens tsocks.

Die Idee hier ist, einen dynamischen Tunnel über SSH (einen SOCKS5-Proxy) zu erstellen.Anschließend konfigurieren wir Tsocks so, dass sie diesen Tunnel verwenden und unsere Anwendungen starten, in diesem Fall:

tsocks gem install ...

oder um Rails 3.0 zu berücksichtigen:

tsocks bundle install

Eine ausführlichere Anleitung finden Sie unter:

http://blog.byscripts.info/2011/04/bypass-a-proxy-with-ssh-tunnel-and-tsocks-under-ubuntu/

Obwohl das Verfahren für Ubuntu geschrieben wurde, sollte es für alle Unix-basierten Maschinen anwendbar sein.Eine Alternative zu tsocks für Windows ist FreeCap (http://www.freecap.ru/eng/).Ein funktionsfähiger SSH-Client unter Windows heißt Putty.

Zu diesem Thema gibt es zahlreiche Beiträge. Um anderen zu helfen, stundenlanges Ausprobieren verschiedener Lösungen zu ersparen, ist hier das Endergebnis meiner stundenlangen Tüftelei.

Die drei Lösungen rund um das Internet sind derzeit:RUBYSSPI APSERVER CNTLM

rubysspi funktioniert nur auf einem Windows-Rechner, AFAIK, da es auf der Win32Api-Bibliothek basiert.Wenn Sie also auf einem Windows-Rechner versuchen, über einen Proxy zu laufen, ist dies die Lösung für Sie.Wenn Sie eine Linux-Distribution verwenden, haben Sie Pech.

Apserver scheint ein totes Projekt zu sein.Der in den Beiträgen, die ich gesehen habe, aufgeführte Link führte zur 404-Seite auf SourceForge.Ich suche auf SourceForge nach „apserver“ und erhalte nichts.

Der Sourceforge-Link für cntlm, zu dem ich Weiterleitungen gesehen habe http://cntlm.awk.cz/, aber das läuft ab.Eine Suche auf SourceForge ergibt diesen Link, der funktioniert: http://sourceforge.net/projects/cntlm/

Nach dem Herunterladen und Konfigurieren von cntlm ist es mir gelungen, ein Gem über den Proxy zu installieren, daher scheint dies die beste Lösung für Linux-Distributionen zu sein.

Eine Problemumgehung ist die Installation http://apserver.sourceforge.net Konfigurieren Sie es auf Ihrem lokalen Computer und führen Sie Gems über diesen Proxy aus.

  • Installieren:Laden Sie einfach Apserver 097 herunter (und nicht das experimentelle 098!) und entpacken Sie es.
  • Konfigurieren:Bearbeiten Sie die Datei server.cfg und geben Sie die Werte für Ihren MS-Proxy ein PARENT_PROXY Und PARENT_PROXY_PORT.Geben Sie die Werte für DOMAIN und USER ein.Lassen Sie PASSWORT leer (nichts nach dem Doppelpunkt) – Sie werden beim Starten dazu aufgefordert.
  • Führen Sie apserver aus: cd aps097; python main.py
  • Edelsteine ​​ausführen: gem install—http-proxy http://localhost:5865/ library

Ich arbeite hinter einem Proxy und habe gerade SASS installiert, indem ich es direkt heruntergeladen habe http://rubygems.org.

Ich bin dann gerannt sudo gem install [path/to/downloaded/gem/file].Ich kann nicht sagen, dass dies bei allen Edelsteinen funktioniert, aber es könnte einigen Leuten helfen.

Das hat bei mir in einer Windows-Box funktioniert:

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

Ich habe eine Batchdatei mit diesen Zeilen, die ich verwende, um bei Bedarf Umgebungswerte festzulegen.

Der Trick war in meinem Fall HTTPS_PROXY Sätze.Ohne sie bekam ich immer einen 407-Proxy-Authentifizierungsfehler.

Wenn Sie auf einem *nix-System arbeiten, verwenden Sie Folgendes:

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

und dann versuchen:

gem install ${gem_name}

rubysspi-1.3.1 funktionierte bei mir unter Windows 7 mit den Anweisungen auf dieser Seite:

http://www.stuartellis.eu/articles/installing-ruby/

Wenn Sie den SOCKS5-Proxy verwenden möchten, können Sie rubygems-socksproxy ausprobieren https://github.com/gussan/rubygems-socksproxy.

Bei mir funktioniert es unter OSX 10.9.3.

Wenn Sie sich hinter einem Proxy befinden, können Sie dorthin navigieren Ruby-Downloads, Klicken Sie auf „Herunterladen“, um das angegebene Update (oder Gem) an den gewünschten Speicherort herunterzuladen.

Navigieren Sie anschließend über die Ruby-Befehlszeile zum heruntergeladenen Speicherort, indem Sie Folgendes verwenden: pushd [directory]

z.B : pushd D:\Setups

Führen Sie dann den folgenden Befehl aus: gem install [update name] --local

z.B: gem install rubygems-update --local.

Getestet unter Windows 7 mit Ruby-Update Version 2.4.1.

Verwenden Sie zur Überprüfung den folgenden Befehl: ruby -v

Anstatt Batchdateien zu bearbeiten (was Sie möglicherweise für andere Ruby-Gems tun müssen, z. B.Bundler), ist es wahrscheinlich besser, dies einmal und richtig zu machen.

Unter Windows musste ich hinter meinem Unternehmens-Proxy lediglich das hinzufügen HTTP_PROXY Umgebungsvariable für mein System.

  1. Start -> Rechtsklick auf Computer -> Eigenschaften
  2. Wählen Sie „Erweiterte Systemeinstellungen“
  3. Klicken Sie auf Erweitert -> Umgebungsvariablen
  4. Erstellen Sie eine neue Systemvariable mit dem Namen „HTTP_PROXY", und legen Sie den Wert auf Ihren Proxyserver fest
  5. Starten Sie neu oder melden Sie sich ab und wieder an

Abhängig von Ihren Authentifizierungsanforderungen wird die HTTP_PROXY Der Wert kann so einfach sein wie:

http://proxy-server-name

Oder komplexer, wie andere darauf hingewiesen haben

http://username:password@proxy-server-name:port-number
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top