Explicación de como fue creado el script squid.Slackbuild y que hace. Tengo tiempo que empecé a hacer un paquete de squid (2.5.STABLE7) para Slackware, el paquete es creado con el script: "squid.SlackBuild" para crear los directorios necesarios y configuración de permisos, hice unos parches para modificar unos cuantos Makefiles para que se acomodara mejor a las rutas del sistema. Las modificaciones con los parches dejan el paquete así: Tiene 4 parches y explicare lo que hace cada uno: 1.- Parche squid-2.5.STABLE7-errors.patch Este parche lo que hace es que cambiar la ruta por default de el directorio de paginas de error (la que muestra squid en el navegador cuando por ejemplo no puedo llegar a un host solicitado) por default los pone en /usr/share/errors y lo arregle para que este en /etc/squid/errors pero errors es un symlink hacia /usr/share/squid/errors/LENGUAJE el cual esta configurado para que haga el symlink hacia /usr/share/squid/errors/Spanish (puede ser definido al lenguaje que gustes). 2.- Parche squid-2.5.STABLE7-icons.patch Este parche simplemente cambia la ruta por default para el directorio de iconos de /usr/share/icons a /usr/share/squid/icons, de esta manera quedan dentro de un directorio llamado squid y no quedan desorganizados. Con estos dos parches tanto "errors" como "icons" quedan organizados en /usr/share/squid. 3.- Parche squid-2.5.STABLE7-src.patch Este parche hace varios cambios en las configuraciones de rutas principales, en primer lugar hace uso de los parametros de que usa en el ./configure usando el sysconfdir=/etc/squid por lo tanto pondrá el squid.conf, mime.conf mib.txt y msntauth.conf en ese directorio, despues el siguiente cambio es cambiar la ruta de el directorio de logs que por default esta a /var/logs (el cual no existe en linux) entonces se cambia a algo mas estándar y lo pone en /var/log/squid, y por lo tanto la ruta para los archivos de registro cache.log, access.log , store.log los pondrá en /var/log/squid, otro de los cambios que hace este parche es que cambia la ruta del PID file, lo cambia de /var/logs/squid.pid a /var/run/squid.pid, por ultimo y es uno de los parámetros que se pueden cambiar al gusto es la ruta de el "default swap directory" el directorio donde se almacenara el cache que lo cambia de /var/cache a /var/spool/squid (esta ruta se puede cambiar a donde tu quieras tener tu cache, podría ser un punto de montaje de otra partición diferente a /var, un disco duro aparte, etc.) los programas extras como para autenticar con otro servidor o db, los pone en /usr/lib/squid, por default instala estos: cachemgr.cgi getpwname_auth ncsa_auth smb_auth.pl unlinkd yp_auth diskd msnt_auth smb_auth smb_auth.sh wb_auth En este parche también se especifican las rutas para el "Default error dir" (ya antes explicado) y el "Default icons dir". 4.- Parche squid-2.5.STABLE7-config.patch Este parche es el encargado de hacer unos cambios a el archivo squid.conf que te instalara por default en /etc/squid, lo primero que hace es agregar un ACL (lista de control de acceso para el localhost (http_access allow localhost), despues cambia el usuario y grupo (cache_effective_user y cache_effective group) lo cambia de nobody/none a squid/squid respectivamente. Cambia el parametro logfile_rotate de 10 a 0 ya que usa un programa externo para rotar los logs de squid, ya que se hará con el programa logrotate usando la configuración de el archivo /etc/logrotate.d/squid que se encargara de rotar los logs por default cada semana, igualmente puede ser cambiado a tu gusto. :) Explicación de uso extra en el SlackBuild. Este script te instala un script de arranque para squid en /etc/rc.d el archivo es rc.squid el cual se puede usar como cualquier otro "rc script" con los clásicos parametros rc.squid {start|stop|restart}, este script lo primero que hace al ejecutarlo con el parametro "start" es buscar la definición del cache_dir en /etc/squid/squid.conf pero como por default esta para /var/spool/squid y esta comentada esa linea, no la toma en cuenta y asigna el mismo directorio /var/spool/squid y entonces ejecuta squid -z para crear la estructura del cache en /var/spool/squid para eso en el mismo SlackBuild ya se encarga de que ya exista el directorio /var/spool/squid con sus permisos correspondientes (squid:squid), por ultimo se configuran permisos de acceso (750) para los directorios /var/spool/squid y /var/log/squid. El ultimo paso que se ejecuta es en el script doinst.sh que revisa que estén en el sistema el usuario y grupo squid, si no los crea, el usuario squid tiene su home en /var/spool/squid y hace chown squid:squid para /var/spool/squid y /var/log/squid Como vemos al crear el paquete sin ninguna modificación te creara un paquete listo para funcionar solamente para el localhost, con tan solo hacer: installpkg squid-2.5.STABLE7-i486-1jm.tgz y luego correr /etc/rc.d/rc.squid start. Solo hará falta cambiar algunos de los parametros por default en /etc/squid/squid.conf para permitir a una red local hacer uso de este proxy/cache, parametros que puedes encontrar en la documentación oficial de squid, o lo podrás encontrar en el próximo manual de squid que encontraras en http://www.tuxjm.net, este paquete se ha estado utilizando y funcionando bien, hasta ahora se ha usado con configuraciones básicas y usando autenticación de usuarios por medio de auth_ncsa. Cualquier duda, comentario, sugerencia sera bienvenida. Autor: Jorge Armando Medina. email: jmedina@tuxjm.net Sitio Web: http://www.tuxjm.net Visita la pagina del Grupo de Usuarios Linux Tijuana en: http://www.linuxtj.org