Compilando o Squid e criando o pacote para Slackware

Squid é um proxy-cache de alta performance para clientes Web, suportando protocolos FTP, Gopher e HTTP. Neste artigo veremos como instalar o Squid na distribuição Slackware Linux, através da compilação do código-fonte, e como criar um pacote funcional para agilizar instalações posteriores.

[ Hits: 68.624 ]

Por: Davidson Rodrigues Paulo em 16/09/2006 | Blog: http://davidsonpaulo.com/


Compilando o Squid



A primeira coisa a fazer é compilar o Squid. Uma vez feito o download do código-fonte no link mostrado acima ou no site oficial, descompacte-o:

$ tar jxf squid-2.5STABLE14.tar.bz2

Observação: se a extensão do arquivo for .tar.gz, utilize o parâmetro z ao invés de j.

Acesse o diretório criado:

$ cd squid-2.5STABLE14

Criando um script de configuração


Crie um arquivo config.list, contendo todas as opções de configuração do Squid, e crie uma cópia com o nome config.bash:

$ ./configure --help > config.list
$ cp config.list config.bash


Agora, edite o arquivo config.bash, de forma a deixar somente as opções que você quer. Apague as descrições dos parâmetros e, no final de cada linha, coloque uma barra invertida, exceto na última linha. Por fim, coloque no início do arquivo:

./configure \

O arquivo deverá ficar segundo o exemplo que segue:

./configure \
  --prefix=/usr \
  --exec-prefix=/usr \
  --sysconfdir=/etc/squid \
  --sharedstatedir=/var/lib/squid \
  --localstatedir=/var \
  --datadir=/usr/share/squid \
  --enable-dependency-tracking \
  --enable-xmalloc-statistics \
  --enable-carp \
  --with-pthreads \
  --with-aio \
  --with-dl \
  --enable-storeio="ufs diskd" \
  --enable-removal-policies="heap lru" \
  --enable-icmp \
  --enable-delay-pools \
  --enable-useragent-log \
  --enable-referer-log \
  --enable-kill-parent-hack \
  --enable-snmp \
  --enable-cachemgr-hostname=localhost \
  --enable-arp-acl \
  --enable-htcp \
  --enable-ssl \
  --enable-forw-via-db \
  --enable-cache-digests \
  --enable-default-err-language="Portuguese" \
  --enable-poll \
  --disable-http-violations \
  --enable-linux-netfilter \
  --with-large-files \
  --enable-large-cache-files \
  --with-build-environment=POSIX_V6_ILP32_OFFBIG \
  --enable-truncate \
  --enable-auth="basic digest ntlm" \
  --enable-basic-auth-helpers="LDAP MSNT NCSA SASL SMB YP getpwnam multi-domain-NTLM winbind" \
  --enable-ntlm-auth-helpers="SMB fakeauth no_check winbind" \
  --enable-digest-auth-helpers="password" \
  --enable-ntlm-fail-open \
  --enable-external-acl-helpers="ip_user ldap_group unix_group wbinfo_group winbind_group" \
  --enable-stacktraces \
  --enable-x-accelerator-vary

Agora, execute a configuração do código-fonte:

$ bash config.bash

Se houver algum erro, é devido a alguma opção da configuração que não é suportada pelo seu sistema. Tente resolver o problema ou, então, edite o arquivo config.bash, remova a opção conflitante e execute novamente o comando acima, repetindo esse procedimento até que a configuração seja executada com sucesso.

Configurações manuais


Depois de executada a configuração, será necessário editar alguns arquivos para fazer alguns ajustes finos, antes de iniciar a compilação. Esses ajustes dizem respeito a localização de alguns arquivos e diretórios do Squid, e deverão ser feitos alterando manualmente alguns arquivos.

Edite o arquivo src/Makefile:

$ vim src/Makefile (substitua "vim" pelo seu editor de textos favorito)

Procure pela linha DEFAULT_LOG_PREFIX, deixando-a da seguinte forma:

DEFAULT_LOG_PREFIX = $(localstatedir)/log/squid

Essa opção define o valor do diretório de armazenamento dos logs do Squid. A variável $(localstatedir), nesse exemplo, está definida para /var, de forma que o diretório de logs do Squid, nesse caso, será /var/log/squid.

Depois, procure pela linha DEFAULT_PID_FILE. Modifique-a, deixando-a da seguinte forma:

DEFAULT_PID_FILE = /var/run/squid.pid

Essa opção define o caminho completo onde será criado o arquivo com o PID (Process Identification ou idetificação do processo) do Squid. Para que o script de controle do Squid funcione adequadamente, é necessário que o arquivo com o PID do Squid esteja em /var/run/squid.pid.

Em seguida, procure pela linha DEFAULT_SWAP_DIR. Modifique-a, deixando-a da seguinte forma:

DEFAULT_SWAP_DIR = $(localstatedir)/spool/squid

Essa opção define o diretório padrão para o cache do Squid. Nesse exemplo, a variável $(localstatedir) está definida para /var, de forma que o diretório de cache do Squid, nesse caso, será /var/spool/squid.

Feitas essas alterações, salve o arquivo e feche-o.

Abra, agora, edite o arquivo src/squid.conf.default:

$ vim src/squid.conf.default

Procure pela linha # cache_access_log. Substitua /var/logs por /var/log/squid, deixando a linha da seguinte forma:

# cache_access_log /var/log/squid/access.log

Repita a substituição anterior para as linhas # cache_log, e # cache_store_log:

# cache_log /var/log/squid/cache.log
# cache_store_log /var/log/squid/store.log

Procure, agora, pela linha # pid_filename. Modifique-a, deixando-a da seguinte forma:

# pid_filename /var/run/squid.pid

Em seguida, procura pela linha coredump_dir, modificando-a da seguinte forma:

coredump_dir /var/spool/squid

Repita o procedimento para a linha # cache_dir:

# cache_dir ufs /var/spool/squid 100 16 256

Feitas as modificações, salve o arquivo e feche-o.

Compilando


Agora, é hora de compilar o Squid. Para isso execute o comando:

$ make

O processo será rápido. Se houver alguma dependência não resolvida, um erro será apresentado e a compilação, interrompida. Se isso acontecer, será necessário ou resolver a dependência ou desabilitar o recursos do Squid conflitante.

No meu caso, apresentou-se um erro devido à falta do PAM. Como, por padrão, o Slackware não utiliza o PAM, desabilitei o recurso, editando o arquivo src/Makefile e removendo o valor "PAM" de todas as linhas onde ele aparecia. Eu poderia ter optado por instalar o PAM. De qualquer forma, depois de tomar a medida necessária, basta rodar novamente o make.

Copiando os arquivos para um diretório temporário


Crie um diretório temporário para armazenar os arquivos que serão usados para a criação do pacote do Slackware:

$ mkdir /tmp/squid-slackware

Agora, execute a instalação para o diretório temporário:

$ su root
password:
# DESTDIR=/tmp/squid-slackware make install

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Compilando o Squid
   3. Compilando o start-stop-daemon
   4. Criando o pacote para Slackware
   5. Controlando o funcionamento do serviço do Squid
   6. Considerações finais e referências
Outros artigos deste autor

Fundamentos do sistema Linux: discos e partições

Instalando um sistema Debian GNU/Linux completo em 20 minutos

Fundamentos do sistema Linux - Permissões

Aulas particulares: Ganhando dinheiro com Linux

Passo a passo: Fedora autenticando usuários no Active Directory

Leitura recomendada

Instalando o Videocache no Debian Lenny

Integrando autenticação do Squid ao Active Directory

Squid + SSL

Analisando log Squid do Mikrotik no SARG

Squid 3.1.5 com suporte a TPROXY (sem bridge)

  
Comentários
[1] Comentário enviado por leoberbert em 16/09/2006 - 16:53h

Fala DAVIDSON!!! Gostei do artigo hein!!! heheehe

E oia que sou perito no squid hein heheheheh!!!!

Parabéns pelo excelente trabalho!! Continue assim que o BOZOLINUX vai longe :)

Abração Brother!

[2] Comentário enviado por rafamb em 16/09/2006 - 23:42h

Como sempre estás de parabéns camarada. Continue com o excelente trabalho.

Daqui a pouco vai surgir a Bozolinux Editora, tamanha quantidade de material que você produz

Abaços e até a próxima.

PS.: Fiquei feliz de ainda estar cadastrado no wiki, vou ver se posso ajydar em algo

[3] Comentário enviado por pink em 17/09/2006 - 16:05h

Parabéns pelo artigo, aprendi mais uma...
Abraços.

[4] Comentário enviado por edimilson.gomes em 18/09/2006 - 13:37h

Belo Artigo...

[5] Comentário enviado por angkor em 06/06/2007 - 13:58h

Muito bom artigo, bom mesmo, parabéns.
Infelizmente parei no ponto em que preciso ter um linux rodando o X para "Abra, agora, em algum programa de gerenciamento de pacotes, como File-Roller (GNOME) ou Ark (KDE)".

[6] Comentário enviado por davidsonpaulo em 06/06/2007 - 14:10h

angkor,

Você pode extrair um arquivo .deb usando o comando ar:

$ ar xv [pacote.deb]

Depois é só descompactar o arquivo data.tar.gz usando:

$ tar zxf data.tar.gz

E daí copiar o arquivo desejado.

Um abraço,

Davidson


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts