2010-10-06 33 views
47

ottengo il seguente output dal fascio sudo install comando:Come usare bundler dietro un proxy?

Fetching source index for `http://rubygems.org/` 
Could not reach rubygems repository `http://rubygems.org/` 
Could not find gem 'rspec-rails (>= 2.0.0.beta.22, runtime)' in any of the gem sources. 

ho $ http_proxy impostato correttamente e ho aggiunto gemma: --http-proxy = mia delega a ~ /. gemrc. Queste impostazioni sono ciò che permette ai miei comandi gem di funzionare, e speravo che si traducessero in bundler, ma senza tanta fortuna.

Pensare sudo potrebbe non ereditare tutto il mio ambiente, ho anche aggiunto quelle impostazioni al mio utente root, ma nada.

A questo punto, bundler mi impedisce di distribuire la mia applicazione e sono in grado di trovarne poche altre in questo. Se nessuno ha una risposta, sarò costretto a estrarre bundler dalla mia app Rails (che non mi dispiacerebbe fare ...)

+0

Ciao, non è che hai funzionato? Mi sembra di avere lo stesso errore su OSX :( –

+0

No, non ho mai funzionato, ho eliminato Bundler dalla mia app e sto caricando le gemme manualmente in config/application.rb. Difficilmente posso dire la differenza. – bioneuralnet

+0

Perché non funziona? Ho lo stesso problema su Debian – TuteC

risposta

61

sto usando Mac OS e solo impostando http_proxy in bash

export http_proxy=http://user:[email protected]:port 

e funziona benissimo. Hai usato sudo? Se lo fai, per impostazione predefinita sudo non conserva il proxy http.

vedere qui per correggerlo:

https://memset.wordpress.com/2010/10/14/bash-http_proxy-from-a-user-environment-to-sudo-one/

+1

Buona ipotesi, ma non è neanche questo. – bioneuralnet

+0

funziona bene, grazie! – pex

+1

A partire da (almeno) bundler 1.0.12 questo sembra funzionare. Forse hanno riparato qualcosa? – bioneuralnet

0

Assicurati che il tuo sistema operativo predefinito http_proxy sia già impostato. Se stai usando Linux prova il seguente comando per sapere quale proxy sta puntando.

echo $http_proxy 

Nel mio Ubuntu OS, ho impostato la mia variabile d'ambiente http_proxy al server proxy in ~/.bashrc

+0

Sì, questo funziona per molte cose, ma come ho affermato, Bundler sembra ignorarlo. – bioneuralnet

3

È possibile scaricare le gemme necessarie a livello locale con gem install e poi bundle install. Non esattamente pulito, lo so, ma funziona.

15

ho capito che anche l'impostazione HTTP_PROXY (in aggiunta a http_proxy) ha fatto una differenza positiva, vale a dire ha funzionato per me. Quindi, supponendo che si è impostato http_proxy ambiente corretto, provare (se si utilizza bash) variabile

export HTTP_PROXY=$http_proxy 

e quindi utilizzare anche la possibilità -E a sudo (per preservare le variabili di ambiente), in modo

sudo -E bundle install 

Jarl

+0

Questo è ciò che ha risolto per me. Sconcertante che bundler sembra essere l'unico ad usare questa variabile. – UberAlex

+0

Ho anche lavorato per me esportando il maiuscolo HTTP_PROXY anziché in minuscolo. – Jeff

2

Se non si desidera impostare una variabile globale nel sistema, è possibile modificare ~ /.gemrc e scrivere in quel modo

--- 
:benchmark: false 
:verbose: true 
:sources: 
- http://rubygems.org/ 
- http://gems.rubyforge.org 
:backtrace: false 
:bulk_threshold: 1000 
:update_sources: true 
gem: --http-proxy=http://USERNAME:[email protected]:PORT 
+1

Purtroppo bundler lo ignora. – bioneuralnet

5

per ottenere bundler dietro un proxy su Win XP/7 avevo bisogno di fare quanto segue:

ho aggiunto http_proxy per le variabili di ambiente

  • Risorse del computer
  • impostazioni di sistema avanzate
  • scheda avanzate Ambiente
  • Variabili
  • Nuova
  • nome variabile = http_proxy
  • Valore variabile = MY_PROXY
  • Fare clic su Ok

Change MY_PROXY a tutto ciò che il vostro è.

ha funzionato per bundler. L'impostazione del proxy .gemrc ha funzionato solo per le gemme.

grazie Jamie

+4

Invece di farlo sull'ambiente, l'ho appena aggiunto prima di chiamare bundle, usando 'SET HTTP_PROXY = http: // username: password @ www.proxy.com' – Montolide

+1

preferirei un modo più flessibile e sicuro: SET/P login = "Inserisci login proxy:" SET/P password = "Inserisci password proxy:" SET HTTP_PROXY = http: //% login%: %password%@proxy.com: 8080 SET HTTPS_PROXY =% HTTP_PROXY% CLS – vladimir77

1

sistema operativo Windows, seguente comando eseguito prima eseguire bundle install

SET http_proxy=http://user:[email protected]:port 
2

file di uso dei lotti probabilmente più flessibile e protezione diretta:

SET /P login="Enter proxy login: " 
SET /P password="Enter proxy password: " 
SET HTTP_PROXY=http://%login%:%password%@proxy.com:8080 
SET HTTPS_PROXY=%HTTP_PROXY% 

CLS 

bundle install 
0

Sono in esecuzione Ubuntu. La variabile $ http_proxy è impostata, ma non funziona con un paio di elementi. Uno di quegli oggetti è una gemma.

Se metti quanto segue in ~/.gemrc funzionerà.

http_proxy: proxy-url: port

Sostituire il proxy-url: porta con il vostro indirizzo proxy e la porta. Dopo averlo aggiunto, ho eseguito "bundle install" e tutto è andato come previsto.

0

Per avere il comando bundle install lavoro con delega sulle finestre effettuare le seguenti operazioni:

  1. Modificare il file .gemrc. Aprire la riga di comando di Windows e digitare: notepad %userprofile%\.gemrc.
  2. Il file .gemrc è aperto nel blocco note. Digitare su una nuova riga http_proxy: http://username:[email protected]:proxyport. La password dovrebbe essere codificata con urlencode.
  3. Chiudere il file .gemrc con il salvataggio.
Problemi correlati