quarta-feira, 15 de setembro de 2010

Usando RubyGems atrás de um proxy

Para usar o RubyGems ou o Nu (projeto que falei a respeito a algum tempo) atrás de um proxy é bastante simples, basta definir a variável de ambiente HTTP_PROXY com o endereço do servidor.
Definir o proxy
A configuração fica um pouco mais complicada quando o proxy é o Microsoft ISA Server e requer autenticação NTLM. Nesse caso, alguns passos adicionais são necessários.

Configurando o proxy para usar autenticação NTLM

Antes de mais nada, defina o endereço do proxy na variável de ambiente HTTP_PROXY, conforme mostrado anteriormente. A seguir, instale a “gem” rubysspi. É necessário baixá-la e instalar manualmente direto do disco.
instalar - rubysspi
O próximo passo é copiar o arquivo “spa.rb” dessa gem para o diretório “site_ruby”. Os caminhos serão parecidos com estes:
  • Origem: C:\Ruby192\lib\ruby\gems\1.9.1\gems\rubysspi-1.3.1\spa.rb
  • Destino: C:\Ruby192\lib\ruby\site_ruby\1.9.1\
Por fim, é necessário alterar o arquivo “gem.bat” para usar essa autenticação. Edite esse arquivo e adicione na chamada do ruby o parâmetro “-rspa”.

O original estava assim:
@"%~dp0ruby.exe" "%~dpn0" %* 
E, depois da alteração ficará assim:
@"%~dp0ruby.exe" -rspa "%~dpn0" %* 
Pronto, com isso já será possível atualizar as gems.

Se você utiliza o Nu, pode alterar o Nu.bat adicionando o parâmetro “-rspa” da mesma forma que foi feito no “gem.bat”.