Domanda

Il firewall che utilizzo utilizza il server Microsoft ISA in modalità solo NTLM.Qualcuno è riuscito a installare/aggiornare le proprie gemme Ruby tramite la gemma Ruby SSPI o un altro metodo?

...o sono solo pigro?

Nota:rubysspi-1.2.4 non funziona.

Questo funziona anche per "igem", parte del progetto IronRuby

È stato utile?

Soluzione

Non sono riuscito a far funzionare il mio dallo switch della riga di comando, ma sono riuscito a farlo semplicemente impostando my HTTP_PROXY variabile d'ambiente.(Nota che il caso sembra essere importante).Ho un file batch che contiene una riga come questa:

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

Ovviamente ho impostato le quattro variabili di riferimento prima di arrivare a questa riga.Ad esempio se il mio nome utente è "wolfbyte", la mia password è "segreta" e il mio proxy si chiama "pigsy" e opera sulla porta 8080:

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

Potresti voler stare attento a come gestirlo perché memorizza la tua password in testo semplice nella sessione della macchina, ma non penso che dovrebbe essere un grosso problema.

Altri suggerimenti

Per il sistema operativo Windows, ho utilizzato Fiddler per risolvere il problema.

  1. Installa/Esegui Fiddler da www.fiddler2.com
  2. Esegui gemma:

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

Questo ha funzionato totalmente:

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

Sto usando cntlm (http://cntlm.sourceforge.net/) al lavoro.La configurazione è molto simile a ntlmaps.

Funziona alla grande e mi permette anche di connettere la mia macchina Ubuntu al proxy ISA.

Guardare http://cntlm.wiki.sourceforge.net/ per maggiori informazioni

Ho provato alcune di queste soluzioni e nessuna ha funzionato.Finalmente ho trovato una soluzione che fa al caso mio:

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

usando il -p parametro per passare il proxy.Sto usando Gem versione 1.9.1.

Questo ha risolto perfettamente il mio problema:

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

Potrebbe essere necessario aggiungere il nome utente e la password:

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

Crea un file .gemrc (in /etc/gemrc o ~/.gemrc o ad esempio con chef gem in /opt/chef/embedded/etc/gemrc) contenente:

http_proxy: http://proxy:3128

Allora puoi gem install come di solito.

Se riscontri problemi durante l'autenticazione tramite il proxy, assicurati di impostare le variabili di ambiente esattamente nel formato seguente:

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

IL user:password@ la sintassi non sembra funzionare e ci sono anche alcune variabili di ambiente con nomi errati che fluttuano su Stack Overflow e vari post del forum.

Tieni inoltre presente che l'avvio del download delle tue gemme potrebbe richiedere del tempo.All'inizio pensavo che non funzionasse ma con un po' di pazienza hanno iniziato a scaricare come previsto.

Ho provato tutte le soluzioni di cui sopra, ma nessuna ha funzionato.Se utilizzi Linux/macOS, ti consiglio vivamente di utilizzare tsocks su un tunnel ssh.Ciò di cui hai bisogno per far funzionare questa configurazione è una macchina in cui puoi accedere tramite ssh e in aggiunta a ciò è installato un programma chiamato tsocks.

L'idea qui è quella di creare un tunnel dinamico tramite SSH (un proxy calzini5).Configuriamo quindi tsocks per utilizzare questo tunnel e per avviare le nostre applicazioni, in questo caso:

tsocks gem install ...

o per tenere conto di Rails 3.0:

tsocks bundle install

Una guida più dettagliata può essere trovata sotto:

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

Nonostante sia scritta per Ubuntu, la procedura dovrebbe essere applicabile a tutte le macchine basate su Unix.Un'alternativa a tsocks per Windows è FreeCap (http://www.freecap.ru/eng/).Un client SSH valido su Windows si chiama putty.

Abbondano i post su questo argomento e, per aiutare gli altri a risparmiare ore nel provare soluzioni diverse, ecco il risultato finale delle mie ore di armeggiare.

Le tre soluzioni presenti in Internet al momento sono:Rubysspi apserver cntlm

rubysspi funziona solo da una macchina Windows, per quanto ne so, poiché si basa sulla libreria Win32Api.Quindi, se stai utilizzando un computer Windows e stai cercando di eseguire un proxy, questa è la soluzione che fa per te.Se utilizzi una distribuzione Linux, sei sfortunato.

apserver sembra essere un progetto morto.Il collegamento elencato nei post che ho visto porta alla pagina 404 su sourceforge.Cerco "apserver" su sourceforge non restituisce nulla.

Il collegamento sourceforge per cntlm a cui ho visto reindirizza http://cntlm.awk.cz/, ma il tempo scade.Una ricerca su sourceforge restituisce questo collegamento, che funziona: http://sourceforge.net/projects/cntlm/

Dopo aver scaricato e configurato cntlm sono riuscito a installare un gem tramite il proxy, quindi questa sembra essere la soluzione migliore per le distribuzioni Linux.

Una soluzione alternativa è installare http://apserver.sourceforge.net sul tuo computer locale, configuralo ed esegui gems tramite questo proxy.

  • Installare:Basta scaricare apserver 097 (e non lo sperimentale 098!) e decomprimerlo.
  • Configura:Modifica il file server.cfg e inserisci i valori per il tuo proxy MS PARENT_PROXY E PARENT_PROXY_PORT.Immettere i valori per DOMINIO e UTENTE.Lascia la PASSWORD vuota (niente dopo i due punti): ti verrà richiesto all'avvio.
  • Esegui apserver: cd aps097; python main.py
  • Esegui gemme: gem install—http-proxy http://localhost:5865/ library

Sto lavorando dietro un proxy e ho appena installato SASS scaricandolo direttamente da http://rubygems.org.

Allora ho corso sudo gem install [path/to/downloaded/gem/file].Non posso dire che funzionerà per tutte le gemme, ma potrebbe aiutare alcune persone.

Questo ha funzionato per me in una finestra di 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

Ho un file batch con queste righe che utilizzo per impostare i valori dell'ambiente quando ne ho bisogno.

Il trucco, nel mio caso, era HTTPS_PROXY imposta.Senza di loro, ricevevo sempre un errore di autenticazione proxy 407.

Se utilizzi un sistema *nix, usa questo:

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

e poi prova:

gem install ${gem_name}

rubysspi-1.3.1 ha funzionato per me su Windows 7, utilizzando le istruzioni di questa pagina:

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

Se desideri utilizzare il proxy SOCKS5, puoi provare rubygems-socksproxy https://github.com/gussan/rubygems-socksproxy.

Funziona per me su OSX 10.9.3.

Se dietro un proxy, puoi navigare verso Download di rubino, fare clic su Download, che scaricherà l'aggiornamento specificato (o Gem) nella posizione desiderata.

Successivamente, tramite la riga di comando di Ruby, vai alla posizione scaricata utilizzando: pushd [directory]

per esempio : pushd D:\Setups

quindi eseguire il seguente comando: gem install [update name] --local

per esempio: gem install rubygems-update --local.

Testato su Windows 7 con l'aggiornamento Ruby versione 2.4.1.

Per verificare utilizzare il seguente comando: ruby -v

Invece di modificare file batch (cosa che potresti dover fare per altre gemme Ruby, ad es.Bundler), probabilmente è meglio farlo una volta e farlo correttamente.

Su Windows, dietro il mio proxy aziendale, tutto quello che dovevo fare era aggiungere il file HTTP_PROXY variabile d'ambiente al mio sistema.

  1. Start -> tasto destro del mouse su Computer -> Proprietà
  2. Scegli "Impostazioni di sistema avanzate"
  3. Fare clic su Avanzate -> Variabili d'ambiente
  4. Crea una nuova variabile di sistema denominata "HTTP_PROXY" e imposta il valore sul tuo server proxy
  5. Riavviare o disconnettersi e rientrare

A seconda dei requisiti di autenticazione, il file HTTP_PROXY il valore può essere semplice come:

http://proxy-server-name

O più complesso come altri hanno sottolineato

http://username:password@proxy-server-name:port-number
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top