7 Stimmen

Installation von Edelsteinen hinter einer Unternehmensfirewall

Ich vermute, dass die Unternehmensfirewall die Installation von Gems verhindert. Ich habe HTTP_PROXY definiert und bin in der Lage, Remote-Gems über den folgenden Befehl anzuzeigen:

jruby -S gem list -r

Aber wenn ich einen Edelstein installieren will, erhalte ich eine 404:

jruby -S gem install rails

Gibt es einen guten Workaround, um dieses Problem zu beheben, außer ein internes Gem-Repository zu pflegen?

9voto

peter Punkte 41076

Für Ruby-Gems, wenn ich dies in meine gem.bat einfüge, funktioniert es bei mir

@"%~dp0ruby.exe" "%~dpn0" %* --http-proxy http://domainname.ccc.com:8080

für jruby gems funktioniert dies

@"%~dp0jruby.exe" "%~dpn0" %* -p http://domainname.ccc.com:8080

Auch das Setzen der Umgebungsvariablen funktioniert wie

set http-proxy=http://domainname.ccc.com:8080

oder wenn Ihr Proxyserver eine Authentifizierung benötigt

set http-proxy=http://user:password@host:port)

EDIT: Für Leute, die eine sehr restriktive Firewall oder keinen Internetzugang haben (z.B. auf einem Server), können Sie folgendes tun: Installieren Sie das/die Gem(s) auf einem PC mit freiem Internetzugang, danach überprüfen Sie den Ordner C:\Ruby193\lib\ruby\gems\1.9.1\cache und kopieren Sie alle Edelsteine mit einem Änderungsdatum, das nach dem Zeitpunkt der Installation liegt. Auf dem Ziel-PC kopieren Sie sie in denselben Ordner oder, wenn Sie danach aufräumen, in Ihren bin-Ordner und starten die Installation dort mit

c:\ruby193\bin\gem.bat install --local gemname-x.x.x.gem

gemname-x.x.x.gem ist der gem-Dateiname des Basis-Gems, das Sie installieren möchten. Der Edelstein mit all seinen Abhängigkeiten sollte installiert werden. Dies ist für Windows, aber andere Betriebssysteme können die gleiche Technik verwenden, es müssen nur ein paar Dinge angepasst werden. Erfolg

4voto

MattMcKnight Punkte 8064
  1. In den Proxy-Einstellungen des Internet Explorers finden Sie den Namen Ihres Proxy-Servers.
  2. Verwenden Sie den Namen Ihres Proxyservers in der Option -p des Befehls gem.

    gem update rails -p http://mylocalproxy.mycompany.com

Wenn das nicht funktioniert, können Sie immer noch irgendwo im Internet einen eigenen Proxy-Server einrichten.

2voto

DrYak Punkte 1076

Ich bin kein Experte für Ruby. Nichtsdestotrotz kann ich die folgenden "allgemeinen" Ratschläge geben (nützlich für viele Situationen mit Installern):

  1. Prüfen Sie, über welches Protokoll die Installation läuft. Einige Installer laden die Pakete von einem Spiegelserver statt von der Hauptseite herunter, und einige Spiegelserver verwenden möglicherweise FTP oder etwas anderes anstelle von HTTP. Daher müssen Sie möglicherweise Ihre Einstellungen entsprechend aktualisieren und sich bei Ihrem Administrator vergewissern, dass der Unternehmens-Proxy in der Lage ist, Daten von FTP-Sites abzurufen.

  2. Prüfen Sie, unter welchem Benutzer das Installationsprogramm läuft (einige der Installationsprogramme müssen ihre Rechte auf "Root" erweitern. Sie erben daher eine andere Umgebung, in der eine andere HTTP_PROXY definiert ist).

  3. Prüfen Sie, was das Installationsprogramm zum Herunterladen der Pakete verwendet (viele Paketmanager der Distributionen verwenden curl/libcurl, das seine Proxy-Parameter in einer rc-Datei speichert). Dieselbe Warnung wie unter 2 bezüglich der Benutzer, deren Homedir die rc-Datei enthalten sollte.

  4. Transparentes Proxying: Es ist möglich, HTTP/FTP-Anfragen, die ursprünglich auf das Web abzielen, on-the-fly an einen Proxy weiterzuleiten. Entweder an den Unternehmens-Proxy (wenn er mit einer solchen Installation funktioniert) oder an einen lokalen Mini-Proxy, der dann an den Unternehmens-Proxy weitergereicht wird.

  5. Richten Sie ein schnelles VPN (entweder Tunnel oder PPP) über SSH (siehe SSH-Manual) zwischen Ihrem Rechner und einem speziellen Rechner innerhalb des Unternehmens ein, der das Internet sehen darf, und aktualisieren Sie dann Ihre Routing-Tabellen, um den Datenverkehr über das VPN zu leiten.

  6. Sie können auch Folgendes verwenden Korkenzieher eine Verbindung über SSH (und damit die Möglichkeit, ein VPN über SSH wie 5 zu installieren) mit einem Rechner außerhalb, auf der anderen Seite der Unternehmensfirewall, wie dem eigenen Rechner zu Hause. (Dabei wird der HTTPS-"CONNECT"-Modus des Proxys verwendet, um von außen auf SSH zuzugreifen). Sorgen Sie einfach dafür, dass die Administratoren - oder zumindest eine verantwortliche Person - auf dem Laufenden gehalten werden, und geraten Sie nicht in Panik.

  7. Verzweifelte Maßnahme: einen Tunnel zwischen zwei Rechnern einrichten, die jeweils http-Tunnel über einen Proxy, der nur HTTP-Anfragen zulässt. Verwenden Sie dann den Tunnel, um ein SSH-VPN aufzubauen.

Diese Lösungen sind nicht spezifisch für Ruby, sondern können Ihnen bei jeder verzweifelten Lösung hinter einer zu restriktiven Firewall helfen.

1 bis 4 sollten in den meisten Fällen ausreichen. Sie werden auf 5 bis 7 zurückgreifen müssen, wenn Sie mit bizarren und/oder paranoiden Firewalls konfrontiert werden. 7 ist ziemlich extrem, funktioniert aber immer, wenn auch manchmal mit katastrophaler Leistung.

2voto

Robert Brown Punkte 10648

Zunächst eine einfache Frage: Befanden Sie sich in derselben Shell-Sitzung, als Sie sowohl die Liste als auch die Installation ausprobierten? Vielleicht haben Sie beim zweiten Mal vergessen, die Umgebungsvariable zu setzen?

Versuchen Sie die Einstellung http_proxy 代わりに HTTP_PROXY .

Stellen Sie sicher, dass die Proxy-Einstellung eine gültige URL ist (siehe unten).

Haben Sie mehrere Proxy-Optionen? Öffnen Sie den IE und geben Sie wpad in der Adressleiste. Möglicherweise sehen Sie weitere Möglichkeiten.

Ist Ihr Proxy authentifiziert? Wenn ja, haben Sie Ihre Anmeldedaten in der URL. Bei mir sieht es so aus (unter Windows):

set http_proxy=http://myuserid:mypassword@internetproxy:3128

Enthält Ihr Passwort Interpunktionszeichen? Versuchen Sie es nur mit Zahlen und Buchstaben, wie : y @ (und möglicherweise andere) sind in der URL-Zeichenkette selbst von Bedeutung.

1voto

Trevoke Punkte 4105

Sie können dieses Tool verwenden: http://ntlmaps.sourceforge.net/

Gems unterstützen keine Proxy-Authentifizierung, so dass Sie über einen sekundären Proxy (z. B. IHR Rechner) gehen, der die Authentifizierung für Sie übernimmt und Gems glauben lässt, dass keine Authentifizierung stattfindet, was Ihnen das Leben erleichtern sollte.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X