Cómo actualizo Gemas Ruby desde un Proxy (ISA-NTLM)


El firewall que estoy detrás está ejecutando Microsoft ISA Server en modo solo NTLM. Hash ¿alguien ha tenido éxito consiguiendo que sus gemas Ruby se instalen / actualicen a través de Ruby SSPI gem u otro método?

... ¿o estoy siendo perezoso?

Nota: rubysspi-1.2.4 no funciona.

Esto también funciona para" igem", parte del proyecto IronRuby

Author: the Tin Man, 2008-08-07

18 answers

No pude hacer que la mía funcionara desde el conmutador de línea de comandos, pero he podido hacerlo simplemente configurando mi variable de entorno HTTP_PROXY. (Tenga en cuenta que el caso parece ser importante). Tengo un archivo por lotes que tiene una línea como esta:

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

Establezco las cuatro variables referenciadas antes de llegar a esta línea obviamente. Por ejemplo, si mi nombre de usuario es "wolfbyte", mi contraseña es "secret" y mi proxy se llama "pigsy" y opera en el puerto 8080:

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

Es posible que desee ser tenga cuidado de cómo administrar eso porque almacena su contraseña en texto plano en la sesión de la máquina, pero no creo que deba ser demasiado un problema.

 204
Author: Mike Minutillo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-29 17:28:20

Para el sistema operativo Windows, utilicé Fiddler para solucionar el problema.

  1. Instalar / Ejecutar Fiddler desde www.fiddler2.com
  2. Ejecutar gema:

    $ gem install --http-proxy http://localhost:8888 $gem_name
    
 199
Author: Peter Moresi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-29 18:09:35

Esto funcionó totalmente:

gem install --http-proxy http://COMPANY.PROXY.ADDRESS $gem_name
 119
Author: SethRocker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-29 17:30:58

He estado usando cntlm (http://cntlm.sourceforge.net/) en el trabajo. La configuración es muy similar a ntlmaps.

Funciona muy bien, y también me permite conectar mi Ubuntu box al proxy ISA.

Echa un vistazo http://cntlm.wiki.sourceforge.net / para más información

 48
Author: Jason Navarrete,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-31 21:59:45

Probé algunas de estas soluciones, y ninguna de ellas funcionó. Finalmente encontré una solución que funciona para mí:

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

Usando el parámetro -p para pasar el proxy. Estoy usando la versión 1.9.1 de Gem.

 37
Author: kfox,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-29 18:04:04

Esto resolvió mi problema perfectamente:

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

Es posible que deba agregar su nombre de usuario y contraseña:

gem install -p http://[username]:[password]@proxy_ip:proxy_port compass
 14
Author: HomTom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-09 08:48:40

Crear un .archivo gemrc (ya sea en/etc /gemrc o~/.gemrc o por ejemplo con chef gem en /opt/chef/embedded/etc/gemrc) que contiene:

http_proxy: http://proxy:3128

Entonces puedes gem install como de costumbre.

 14
Author: lukapiske,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-09 17:04:19

Si tiene problemas para autenticarse a través de su proxy, asegúrese de establecer las variables de entorno exactamente en el siguiente formato:

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

La sintaxis user:password@ no parece funcionar y también hay algunas variables de entorno mal nombradas flotando en el Desbordamiento de la pila y varias publicaciones en el foro.

También tenga en cuenta que sus gemas pueden tardar un tiempo en comenzar a descargarse. Al principio pensé que no estaba funcionando pero con un poco de paciencia empezaron a descargar como se esperaba.

 10
Author: Benjamin Wootton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-29 17:29:51

Probé todas las soluciones anteriores, sin embargo ninguna de ellas funcionó. Si está en linux/macOS, le sugiero encarecidamente que use tsocks sobre un túnel ssh. Lo que necesita para que esta configuración funcione es una máquina donde pueda iniciar sesión a través de ssh y, además, un programa llamado tsocks instalado.

La idea aquí es crear un túnel dinámico a través de SSH (un proxy socks5). Luego configuramos tsocks para usar este túnel y para iniciar nuestras aplicaciones, en este caso:

tsocks gem install ...

O para contabilizar para los carriles 3.0:

tsocks bundle install

Una guía más detallada se puede encontrar en:

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

A pesar de estar escrito para Ubuntu, el procedimiento debería ser aplicable para todas las máquinas basadas en Unix. Una alternativa a tsocks para Windows es FreeCap ( http://www.freecap.ru/eng / ). Un cliente SSH viable en Windows se llama putty.

 8
Author: Christian F,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-06 05:04:51

Los mensajes abundan con respecto a este tema, y para ayudar a otros a ahorrar horas de probar diferentes soluciones, aquí está el resultado final de mis horas de retoques.

Las tres soluciones alrededor de Internet en este momento son: rubysspi apserver cntlm

Rubysspi solo funciona desde una máquina Windows, AFAIK, ya que se basa en la biblioteca Win32API. Así que si usted está en un cuadro de Windows tratando de ejecutar a través de un proxy, esta es la solución para usted. Si estás en una distribución de Linux, estás fuera de suerte.

Apserver parece ser un proyecto muerto. El enlace que aparece en las publicaciones que he visto conduce a la página 404 en sourceforge. Busco "apserver" en sourceforge no devuelve nada.

El enlace de sourceforge para cntlm que he visto redirige a http://cntlm.awk.cz / , pero eso se agota. Una búsqueda en sourceforge muestra este enlace, que funciona: http://sourceforge.net/projects/cntlm /

Después de descargar y configurar cntlm he logrado instalar un gem a través del proxy, por lo que esta parece ser la mejor solución para distribuciones de Linux.

 7
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-03-10 11:37:13

Una solución es instalar http://apserver.sourceforge.net en su máquina local, configúrelo y ejecute gemas a través de este proxy.

  • Instalar: Solo tiene que descargar apserver 097 (y no el experimental 098!) y desempaquetar.
  • Configure: Edite el servidor.archivo cfg y poner los valores para su proxy MS en PARENT_PROXY y PARENT_PROXY_PORT. Introduzca los valores de DOMINIO y USUARIO. Deje la CONTRASEÑA en blanco (nada después de los dos puntos): se le pedirá que la inicie.
  • Ejecutar apserver: cd aps097; python main.py
  • Ejecutar gemas: gem install—http-proxy http://localhost:5865/ library
 5
Author: Jarin Udom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-29 18:11:56

Estoy trabajando detrás de un proxy y acabo de instalar SASS descargando directamente desde http://rubygems.org .

Luego corrí sudo gem install [path/to/downloaded/gem/file]. No puedo decir que esto funcione para todas las gemas, pero puede ayudar a algunas personas.

 4
Author: Zander,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-29 18:03:16

Esto funcionó para mí en un cuadro de 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

Tengo un archivo por lotes con estas líneas que uso para establecer valores de entorno cuando lo necesito.

El truco, en mi caso, era HTTPS_PROXY conjuntos. Sin ellos, siempre tengo un error de autenticación de proxy 407.

 3
Author: Pedro García Vigil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-29 17:30:06

Rubysspi-1.3.1 funcionó para mí en Windows 7, utilizando las instrucciones de esta página:

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

 2
Author: moonpatrol,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-11-04 07:46:25

Si está en un sistema *nix, use esto:

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

Y luego intenta:

gem install ${gem_name}
 2
Author: Saikrishna Rao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-29 17:30:26

Si desea utilizar SOCKS5 proxy, puede probar rubygems-socksproxy https://github.com/gussan/rubygems-socksproxy .

Funciona para mí en OSX 10.9.3.

 1
Author: Qi Luo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-06 16:52:33

Si está detrás de un proxy, puede navegar a Ruby downloads, haga clic en Descargar, que descargará la actualización especificada ( o Gema ) a la ubicación deseada.

A continuación, a través de la línea de comandos Ruby, navegue hasta la ubicación descargada utilizando: pushd [directory]

Eg: pushd D:\Setups

Luego ejecute el siguiente comando: gem install [update name] --local

Eg: gem install rubygems-update --local.

Probado en Windows 7 con Ruby update versión 2.4.1.

Para comprobar utilice el siguiente comando : ruby -v

 1
Author: ArNumb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-11 13:27:13

En lugar de editar archivos por lotes (lo que puede tener que hacer para otras gemas Ruby, por ejemplo, Bundler), probablemente sea mejor hacerlo una vez, y hacerlo correctamente.

En Windows, detrás de mi proxy corporativo, todo lo que tenía que hacer era agregar la variable de entorno HTTP_PROXY a mi sistema.

  1. Inicio - > clic derecho Equipo - > Propiedades
  2. Elija"Configuración avanzada del Sistema"
  3. Haga clic en Avanzado - > Variables de entorno
  4. Crear una nueva variable del sistema llamada " HTTP_PROXY", y establezca el valor en su servidor proxy
  5. Reinicie o cierre la sesión y vuelva a iniciar

Dependiendo de sus requisitos de autenticación, el valor HTTP_PROXY puede ser tan simple como:

http://proxy-server-name

O más complejo como otros han señalado

http://username:password@proxy-server-name:port-number
 1
Author: testworks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-29 18:02:40