Pergunta

O firewall que estou executando está executando o servidor Microsoft ISA no modo somente NTLM.Alguém conseguiu instalar/atualizar suas gemas Ruby por meio da gema Ruby SSPI ou outro método?

...ou estou apenas sendo preguiçoso?

Observação:rubysspi-1.2.4 não funciona.

Isso também funciona para "igem", parte do projeto IronRuby

Foi útil?

Solução

Não consegui fazer o meu funcionar a partir da opção de linha de comando, mas consegui fazer isso apenas definindo meu HTTP_PROXY variável de ambiente.(Observe que esse caso parece ser importante).Eu tenho um arquivo em lote que contém uma linha como esta:

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

Eu configurei as quatro variáveis ​​referenciadas antes de chegar a esta linha, obviamente.Por exemplo, se meu nome de usuário for "wolfbyte", minha senha for "secreta" e meu proxy se chamar "pigsy" e operar na porta 8080:

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

Você pode querer ter cuidado ao gerenciar isso, porque ele armazena sua senha em texto simples na sessão da máquina, mas não acho que isso deva ser um grande problema.

Outras dicas

Para o sistema operacional Windows, usei o Fiddler para solucionar o problema.

  1. Instale/execute o Fiddler em www.fiddler2.com
  2. Execute gema:

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

Isso funcionou totalmente:

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

Tenho usado cntlm (http://cntlm.sourceforge.net/) No trabalho.A configuração é muito semelhante ao ntlmaps.

Funciona muito bem e também permite conectar minha caixa Ubuntu ao proxy ISA.

Confira http://cntlm.wiki.sourceforge.net/ Para maiores informações

Tentei algumas dessas soluções e nenhuma delas funcionou.Finalmente encontrei uma solução que funciona para mim:

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

usando o -p parâmetro para passar o proxy.Estou usando o Gem versão 1.9.1.

Isso resolveu meu problema perfeitamente:

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

Pode ser necessário adicionar seu nome de usuário e senha:

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

Crie um arquivo .gemrc (em /etc/gemrc ou ~/.gemrc ou, por exemplo, com chef gem em /opt/chef/embedded/etc/gemrc) contendo:

http_proxy: http://proxy:3128

Então você pode gem install como sempre.

Se você estiver tendo problemas para se autenticar por meio de seu proxy, certifique-se de definir as variáveis ​​de ambiente exatamente no formato abaixo:

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

O user:password@ a sintaxe parece não funcionar e também existem algumas variáveis ​​de ambiente mal nomeadas flutuando no Stack Overflow e em várias postagens do fórum.

Esteja ciente também de que pode demorar um pouco para que o download de suas joias comece.No começo pensei que não estava funcionando, mas com um pouco de paciência eles começaram a baixar conforme o esperado.

Tentei todas as soluções acima, mas nenhuma delas funcionou.Se você estiver no Linux/macOS, sugiro usar tsocks em um túnel ssh.O que você precisa para fazer esta configuração funcionar é uma máquina onde você possa fazer login via ssh e, além disso, um programa chamado tsocks instalado.

A ideia aqui é criar um túnel dinâmico via SSH (um proxy Socks5).Em seguida, configuramos o tsocks para usar este túnel e iniciar nossas aplicações, neste caso:

tsocks gem install ...

ou para contabilizar o Rails 3.0:

tsocks bundle install

Um guia mais detalhado pode ser encontrado em:

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

Apesar de ter sido escrito para Ubuntu, o procedimento deve ser aplicável a todas as máquinas baseadas em Unix.Uma alternativa aos tsocks para Windows é o FreeCap (http://www.freecap.ru/eng/).Um cliente SSH viável no Windows é chamado de putty.

Há muitas postagens sobre esse assunto e, para ajudar outras pessoas a economizar horas tentando soluções diferentes, aqui está o resultado final de minhas horas de ajustes.

As três soluções existentes na Internet no momento são:rubyspi apserver cntlm

rubysspi só funciona em uma máquina Windows, AFAIK, pois depende da biblioteca Win32Api.Portanto, se você estiver em uma caixa do Windows tentando executar um proxy, esta é a solução para você.Se você estiver em uma distribuição Linux, você está sem sorte.

apserver parece ser um projeto morto.O link listado nas postagens que vi leva à página 404 no sourceforge.Eu procuro por "apserver" no sourceforge e não retorna nada.

O link do sourceforge para cntlm para o qual vi redirecionamentos http://cntlm.awk.cz/, mas isso expira.Uma pesquisa no sourceforge mostra este link, que funciona: http://sourceforge.net/projects/cntlm/

Depois de baixar e configurar o cntlm consegui instalar uma gem através do proxy, então esta parece ser a melhor solução para distros Linux.

Uma solução alternativa é instalar http://apserver.sourceforge.net em sua máquina local, configure-a e execute gems por meio deste proxy.

  • Instalar:Basta baixar o apserver 097 (e não o experimental 098!) e descompactar.
  • Configurar:Edite o arquivo server.cfg e coloque os valores do seu proxy MS em PARENT_PROXY e PARENT_PROXY_PORT.Insira os valores para DOMAIN e USER.Deixe SENHA em branco (nada após os dois pontos) – você será avisado ao iniciá-la.
  • Execute um servidor: cd aps097; python main.py
  • Execute joias: gem install—http-proxy http://localhost:5865/ library

Estou trabalhando atrás de um proxy e acabei de instalar o SASS baixando diretamente de http://rubygems.org.

Eu então corri sudo gem install [path/to/downloaded/gem/file].Não posso dizer que isso funcionará para todas as joias, mas pode ajudar algumas pessoas.

Isso funcionou para mim em uma caixa do 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

Eu tenho um arquivo em lote com essas linhas que uso para definir valores de ambiente quando preciso.

O truque, no meu caso, foi HTTPS_PROXY conjuntos.Sem eles, sempre recebia um erro de autenticação de proxy 407.

Se você estiver em um sistema *nix, use isto:

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

e então tente:

gem install ${gem_name}

rubysspi-1.3.1 funcionou para mim no Windows 7, usando as instruções desta página:

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

Se você quiser usar o proxy SOCKS5, você pode tentar rubygems-socksproxy https://github.com/gussan/rubygems-socksproxy.

Funciona para mim no OSX 10.9.3.

Se estiver atrás de um proxy, você pode navegar para Downloads de rubi, clique em Download, que fará o download da atualização especificada (ou Gem) para o local desejado.

Em seguida, através da linha de comando Ruby, navegue até o local baixado usando: pushd [directory]

por exemplo : pushd D:\Setups

em seguida, execute o seguinte comando: gem install [update name] --local

por exemplo: gem install rubygems-update --local.

Testado no Windows 7 com atualização Ruby versão 2.4.1.

Para verificar use o seguinte comando: ruby -v

Em vez de editar arquivos em lote (o que pode ser necessário para outras gemas Ruby, por exemplo,Bundler), provavelmente é melhor fazer isso uma vez e corretamente.

No Windows, por trás do meu proxy corporativo, tudo que precisei fazer foi adicionar o HTTP_PROXY variável de ambiente para o meu sistema.

  1. Iniciar -> clique com o botão direito em Computador -> Propriedades
  2. Escolha "Configurações avançadas do sistema"
  3. Clique em Avançado -> Variáveis ​​de Ambiente
  4. Crie uma nova variável de sistema chamada "HTTP_PROXY"e defina o valor para o seu servidor proxy
  5. Reinicie ou saia e faça login novamente

Dependendo dos seus requisitos de autenticação, o HTTP_PROXY o valor pode ser tão simples quanto:

http://proxy-server-name

Ou mais complexo como outros apontaram

http://username:password@proxy-server-name:port-number
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top