1.2. Relación con Debian
La distribución Kali Linux está basado en Debian Testing. Por lo tanto, la mayoría de los paquetes disponibles en Kali Linux provienen directamente de este repositorio de Debian.
Si bien Kali Linux depende en gran medida de Debian, también es completamente independiente en el sentido de que tenemos nuestra propia infraestructura y conservamos la libertad de realizar los cambios que queramos.
1.2.1. El flujo de paquetes
Del lado de Debian, los contribuyentes están trabajando todos los días para actualizar paquetes y subirlos a la distribución Debian Unstable. A partir de ahí, los paquetes migran a la distribución Debian Testing una vez que se han eliminado los errores más problemáticos. El proceso de migración también asegura que no se rompan dependencias en las pruebas de Debian. El objetivo es que las pruebas siempre estén en un estado utilizable (¡o incluso liberable!).
Los objetivos de Debian Testing se alinean bastante bien con los de Kali Linux, por lo que lo elegimos como base. Para agregar los paquetes específicos de Kali en la distribución, seguimos un proceso de dos pasos.
Primero, tomamos Debian Testing e inyectamos a la fuerza nuestros propios paquetes de Kali (ubicados en nuestro repositorio kali-dev-only ) para construir el repositorio kali-dev. Este repositorio se romperá de vez en cuando: por ejemplo, nuestros paquetes específicos de Kali podrían no ser instalables hasta que se hayan vuelto a compilar en las bibliotecas más nuevas. En otras situaciones, es posible que los paquetes que hemos bifurcado también tengan que actualizarse, ya sea para volver a instalarse o para corregir la instalabilidad de otro paquete que depende de una versión más nueva del paquete bifurcado. En cualquier caso, kali-dev no es para usuarios finales.
kali-rolling es la distribución que los usuarios de Kali Linux deben rastrear y está construida a partir de kali-dev de la misma manera que Debian Testing está construida a partir de Debian Unstable. Los paquetes migran solo cuando todas las dependencias pueden satisfacerse en la distribución de destino.
1.2.2. Gestionando la diferencia con Debian
Como decisión de diseño, tratamos de minimizar la cantidad de paquetes bifurcados tanto como sea posible. Sin embargo, para implementar algunas de las características únicas de Kali, se deben hacer algunos cambios. Para limitar el impacto de estos cambios, nos esforzamos por enviarlos en sentido ascendente, ya sea integrando la característica directamente o agregando los ganchos necesarios para que sea sencillo habilitar las características deseadas sin modificar aún más los paquetes en sentido ascendente.
El Kali Package Tracker nos ayuda a realizar un seguimiento de nuestra divergencia con Debian. En cualquier momento, podemos buscar qué paquete se bifurcó y si está sincronizado con Debian, o si se requiere una actualización. Todos nuestros paquetes se mantienen en repositorios Git que alojan una sucursal de Debian y una sucursal de Kali de lado a lado. Gracias a esto, actualizar un paquete bifurcado es un proceso simple de dos pasos: actualice la rama de Debian y luego combínelo en la rama de Kali.
Si bien la cantidad de paquetes bifurcados en Kali es relativamente baja, la cantidad de paquetes adicionales es bastante alta: en abril de 2017 había casi 400. La mayoría de estos paquetes son software libre que cumple con el Directrices de software libre de Debian y nuestro objetivo final sería mantener esos paquetes dentro de Debian siempre que sea posible. Es por eso que nos esforzamos por cumplir con la Política de Debian y seguir las buenas prácticas de empaquetado utilizadas en Debian. Desafortunadamente, también hay bastantes excepciones donde el empaque adecuado era casi imposible de crear. Como resultado de la escasez de tiempo, se han enviado pocos paquetes a Debian.