É bom que você já esteja com o
Slackware instalado, pois não vou explicar como fazer.
Vamos ao Squid, que pode ser obtido aqui:
Salve-o no src de trabalho e vamos descompactar:
# tar xzf squid-3.1.5.tar.gz
# cd squid-3.1.5
Vamos iniciar a compilação, observe as opções e veja se são necessárias para você ou se está faltando alguma que esteja precisando:
# ./configure --enable-async-io --enable-disk-io --enable-storeio="ufs,diskd" --enable-icmp --enable-delay-pools --enable-esi --enable-kill-parent-hack --enable-ssl --enable-linux-netfilter --enable-zph-qos --with-openssl --enable-default-err-language=Portuguese --enable-ltdl-convenience --enable-removal-policies="heap lru" --enable-http-violations
Vou explicar apenas duas opções que acho importante destacar:
--enable-linux-netfilter
Esta é a opção que ativa o netfilter e "se o kernel for acima de 2.6.28", vai reconhecer e ativar o
TPROXY. Ao rodar um ./configure --help você encontrará --enable-linux-tproxy, não se engane, esta opção é para a versão 2 do balabit, o kernel não vem com isso, seria necessário compilar com esse patch.
--enable-http-violations
Esta opção é caso você resolva usar o inComum, semelhante ao ThunderCache. Só que milhões de vezes mais fácil e totalmente free.
Ok, depois de ter rodado com sucesso ./configure, é a hora do make:
# make
Não sei se deu certinho pra você, mas todas as vezes que rodei o make deu erro, que aparentemente é um bug, pode não ser. Mas consegui resolver facilmente. Se for o seu caso, eis os erros e as soluções:
1. ld informou erro na opção '-lz', ou seja, está faltando a lib 'z'. Para resolver instale a zlib:
# slackpkg install zlib
2. Erro de libltdl. Não encontrou alguns arquivos .h:
Esta lib já vem junto com o Squid: "squid-3.1.5/libltdl
Arquivos: lt_system.h, lt_error.h e lt_dlloader.h
O que acontece, é que a chamada para esses arquivos encontra-se em ltdl.h, mas o caminho está errado, então corrija:
# vim libltdl/ltdl.h
Na linha 36, 37 e 38 está assim:
#include <libltdl/lt_system.h>
#include <libltdl/lt_error.h>
#include <libltdl/lt_dlloader.h>
No entanto, os arquivos .h estão em 'libltdl/libltdl/', corrija para:
#include </usr/local/src/squid-3.1.5/libltdl/libltdl/lt_system.h>
#include </usr/local/src/squid-3.1.5/libltdl/libltdl/lt_error.h>
#include </usr/local/src/squid-3.1.5/libltdl/libltdl/lt_dlloader.h>
Observe que é necessário colocar o caminho completo, tentei só acrescentar libltdl/ e ainda deu erro.
Pode salvar, o arquivo está somente leitura, então saia com :x! (se estiver usando o vim)
Agora faça o mesmo nos arquivos 'lt_dlloader.h' e 'lt_error.h'.
Nestes arquivos só está a linha referente ao lt_system.h.
3. Talvez pode dar WARNING na hora de compilar o netfilter, fique atento. Pode aparecer uma mensagem dizendo que o modo transparent não será ativado por faltar libcap ou libcap2. E melhor instalar isso antes.
Agora estamos prontos para concluir o make:
# make
Se você já tem um Squid antigão rodando, é melhor colocar o novo squid.conf e configurar de acordo com o que precisa. O arquivo está em src/squid.conf.default.
Mas se seu Squid for 3.1 a configuração é praticamente a mesma, então pode rodar o install sem medo.
# make install
Agora antes de ativar o novo Squid, vamos colocar o necessário no squid.conf.