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