SVN (Subversion) Proxy Settings

Para quem usa subversion para retirar ficheiros, ou mesmo efectuar o upload de ficheiros, e está por trás de um proxy, não consegue.

Existe uma forma em Linux de usar um proxy, que é exportar variáveis de ambiente:

export http_proxy=http://proxy.dominio.com:porta/

export ftp_proxy=http://proxy.dominio.com:porta/

e colocar estas variáveis no ~/.bashrc para o utilizador ou em /etc/profile para o sistema. Embora funcione para muitas aplicações de linhas de comandos, o subversion (svn) não usa.

Assim, é necessário um pequeno truque para "obrigar" o subversion a usar um proxy.

Basta editar o ficheiro servers e configurar as variáveis com os valores correctos.

vi ~/.subversion/servers

[global]
http-proxy-exceptions = *.dominio.com
http-proxy-host = proxy.dominio.com
http-proxy-port = porta_proxy

Guardar e experimentar novamente. Desta vez o subversion já irá funcionar.

No mesmo ficheiro também encontram variáveis para preencher caso precisem de um utilizador e uma password

Referências:

http://blogs.sun.com/venu/entry/svn_proxy_settings

Problemas com apt-get e proxy (squid)

Recentemente começei a usar o apt para actualizar a minha distribuição (Caixa Mágica 15) e instalar pacotes, e desde então começei a ter problemas quando fazia apt-get update (para actualizar a listagem de pacotes), devolvendo-me sempre isto:

Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_main pkglist
  The http server sent an invalid reply header
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_main_updates pkglist
  The http server sent an invalid reply header
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_main32 pkglist
  The http server sent an invalid reply header
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_main32_updates pkglist
  The http server sent an invalid reply header
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_contrib pkglist
  The http server sent an invalid reply header
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_contrib_updates pkglist
  The http server sent an invalid reply header
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_contrib32 pkglist
  The http server sent an invalid reply header
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_contrib32_updates pkglist
  The http server sent an invalid reply header
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_non-free pkglist
  The http server sent an invalid reply header
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_non-free_updates pkglist
  Connection failed
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_non-free32 pkglist
  The http server sent an invalid reply header
Hit http://ftp.caixamagica.pt media_info/synthesis.hdlist_non-free32_updates pkglist
Err http://ftp.caixamagica.pt media_info/synthesis.hdlist_contrib pkglist
  The http server sent an invalid reply header

Pensei que fosse alguma coisa com os mirrors da Caixa Mágica, mas em minha casa não acontece nada disto. No meu local de trabalho uso um proxy (Squid 3.1) e pensei que fosse este o problema, então comecei a investigar.

Existe uma opção no Squid que controla como gerir um tipo de pedido – "If-Modified-Since" – dos clientes. Por defeito, o Squid responde baseado na idade do objecto que tem na cache e não no objecto real na página web. Os comentários no ficheiro de configuração do squid indicam que alguns clientes usam pedidos IMS quando pedem uma actualização. – APT é um desses clientes.

Assim, é necessário alterar uma opção no squid para que este, quando detecte um pedido destes, envie a ultima versão do objecto pedido.

Um pedido IMS – If-Modified-Since" é um mecanismo de revalidação na especificação 1.1 do HTTP que garante que os dados em cache estão actualizados.

vi /etc/squid/squid.conf

e acrescentar/alterar

refresh_all_ims on

squid -k reconfigure

Desta forma, os erros já não aparecem.

 

Referências:

http://veejoe.net/blog/2009/05/trouble-with-apt-get-and-squid/

http://www.squid-cache.org/Doc/config/refresh_all_ims/

http://www.cisco.com/en/US/docs/internetworking/technology/handbook/Net_caching.html