El firewall que estoy detrás ejecuta el servidor Microsoft ISA en modo solo NTLM. ¿Alguien ha tenido éxito al hacer que sus gemas Ruby se instalen / actualicen a través de la gema Ruby SSPI u otro método?
... o solo estoy siendo vago?
Nota: rubysspi-1.2.4 no funciona.
Esto también funciona para "igem", parte del proyecto IronRuby

alias gem='ruby -rspa `which gem`'sudotenga acceso a las variables de entorno agregando el-Einterruptor, por ejemplo,sudo -E doSomethingRespuestas:
No pude hacer que el mío funcionara desde el interruptor de línea de comandos, pero pude hacerlo simplemente configurando mi
HTTP_PROXYvariable de entorno. (Tenga en cuenta que el caso parece ser importante). Tengo un archivo por lotes que tiene una línea como esta:Configuré las cuatro variables referenciadas antes de llegar a esta línea, obviamente. Como ejemplo, si mi nombre de usuario es "wolfbyte", mi contraseña es "secreta" y mi proxy se llama "pigsy" y opera en el puerto 8080:
Es posible que desee tener cuidado de cómo lo maneja porque almacena su contraseña en texto sin formato en la sesión de la máquina, pero no creo que deba ser un problema.
fuente
@con%40etc.Para el sistema operativo Windows, utilicé Fiddler para solucionar el problema.
Ejecutar gema:
fuente
gem install --http-proxy http://COMPANY.PROXY.ADDRESS $gem_namees todo lo que se necesitaba para mí.sudo gem install jekyll --http-proxy=http://web-proxy.company.com:8080Esto funcionó totalmente:
fuente
SSL_connect SYSCALL returned=5 errno=0 state=unknown state (https://rubygems.global.ssl.fastly.net/quick/Marshal.4.8/jekyll-3.0.0.gemspec.rz). Esto funcionó para mí congem install --http-proxy http://127.0.0.1:8580 jekyllalias geminstall='gem install --http-proxy ${http_proxy}'para hacerme la vida más fácil.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 caja de Ubuntu al proxy ISA.
Visite http://cntlm.wiki.sourceforge.net/ para obtener más información.
fuente
Probé algunas de estas soluciones y ninguna funcionó. Finalmente encontré una solución que funciona para mí:
usando el
-pparámetro para pasar el proxy. Estoy usando Gem versión 1.9.1.fuente
proxy_ipque se usa para lashttpsconexiones para trabajar! Genial: D (gem versión 2.0.14)Cree un archivo .gemrc (en / etc / gemrc o ~ / .gemrc o, por ejemplo, con chef gem en / opt / chef / embedded / etc / gemrc) que contenga:
Entonces puedes
gem installcomo siempre.fuente
--http-proxypero no con un.gemrcarchivo, puede provenir de lasudoconfiguración. Tuve que verificar el/etc/sudoersarchivo para agregar:Defaults env_keep = "http_proxy ftp_proxy"antes:Defaults env_resetEsto resolvió mi problema perfectamente:
Es posible que deba agregarle su nombre de usuario y contraseña:
fuente
Si tiene problemas para autenticarse a través de su proxy, asegúrese de configurar las variables de entorno exactamente en el siguiente formato:
La
user:password@sintaxis no parece funcionar y también hay algunas variables de entorno mal nombradas que flotan en Stack Overflow y en varias publicaciones del foro.También tenga en cuenta que las gemas pueden tardar un tiempo en comenzar a descargarse. Al principio pensé que no estaba funcionando, pero con un poco de paciencia comenzaron a descargar como se esperaba.
fuente
Probé todas las soluciones anteriores, sin embargo, ninguna funcionó. Si estás en linux / macOS, te recomiendo usar tsocks sobre un túnel ssh. Lo que necesita para que esta configuración funcione es una máquina donde puede iniciar sesión a través de ssh, y además de eso, se instaló un programa llamado tsocks.
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 e iniciar nuestras aplicaciones, en este caso:
o para tener en cuenta los rieles 3.0:
Puede encontrar una guía más detallada 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 masilla.
fuente
Abundan las publicaciones sobre este tema, y para ayudar a otros a ahorrar horas de probar diferentes soluciones, este es el resultado final de mis horas de retoques.
Las tres soluciones en 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. Entonces, si está en una caja de Windows tratando de ejecutar un proxy, esta es la solución para usted. Si estás en una distribución de Linux, no tienes 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 se agota el tiempo de espera. 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 una gema a través del proxy, por lo que esta parece ser la mejor solución para las distribuciones de Linux.
fuente
Respuesta rápida: agregue la configuración de proxy con el parámetro para instalar / actualizar
fuente
Una solución alternativa es instalar http://web.archive.org/web/20060913093359/http://apserver.sourceforge.net:80/ en su máquina local, configurarlo y ejecutar gemas a través de este proxy.
PARENT_PROXYyPARENT_PROXY_PORT. Ingrese los valores para DOMINIO y USUARIO. Deje la CONTRASEÑA en blanco (nada después de los dos puntos): se le solicitará que la inicie.cd aps097; python main.pygem install—http-proxy http://localhost:5865/ libraryfuente
Estoy trabajando detrás de un proxy y acabo de instalar SASS descargándolo directamente de http://rubygems.org .
Entonces corrí
sudo gem install [path/to/downloaded/gem/file]. No puedo decir que esto funcionará para todas las gemas, pero puede ayudar a algunas personas.fuente
Esto funcionó para mí en una caja de Windows:
Tengo un archivo por lotes con estas líneas que utilizo para establecer los valores del entorno cuando lo necesito.
El truco, en mi caso, fueron los
HTTPS_PROXYsets. Sin ellos, siempre recibí un error de autenticación de proxy 407.fuente
Si está en un sistema * nix, use esto:
y luego intente:
fuente
rubysspi-1.3.1 funcionó para mí en Windows 7, usando las instrucciones de esta página:
http://www.stuartellis.eu/articles/installing-ruby/
fuente
Si desea utilizar el proxy SOCKS5, puede probar rubygems-socksproxy https://github.com/gussan/rubygems-socksproxy .
A mí me funciona en OSX 10.9.3.
fuente
Si está detrás de un proxy, puede navegar hasta las descargas de Ruby , haga clic en Descargar, que descargará la actualización (o Gema) especificada en la ubicación deseada.
Luego, a través de la línea de comando Ruby, navegue a la ubicación descargada usando:
pushd [directory]p.ej :
pushd D:\Setupsluego ejecute el siguiente comando:
gem install [update name] --localp.ej:
gem install rubygems-update --local.Probado en Windows 7 con la actualización de Ruby versión 2.4.1.
Para verificar use el siguiente comando:
ruby -vfuente
En lugar de editar archivos por lotes (que puede que tenga que hacer para otras gemas de 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
HTTP_PROXYvariable de entorno a mi sistema.HTTP_PROXY" y establezca el Valor en su servidor proxyDependiendo de sus requisitos de autenticación, el
HTTP_PROXYvalor puede ser tan simple como:O más complejo como otros han señalado
fuente
para cualquiera que esté haciendo un túnel con SSH; puede crear una versión del
gemcomando que use el proxy SOCKS:socksifycongem install socksify(deberá poder realizar este paso sin proxy, al menos)Copia tu gema existente exe
Ábralo en su editor favorito y agréguelo en la parte superior (después del shebang)
Configura tu túnel
Ejecute su comando gema con proxy_gem
fuente