Kali Linux Metapackages: Curated Tool Bundles for Reproducible Pen‑Test Environments
Kali Linux’s metapackage system bundles hundreds of penetration‑testing tools into curated, dependency‑safe collections. Learn how to use kali-tools-web for a minimal CI container, why kali-linux-everything is a bad idea, and how to pin builds for reproducibility.
30 Jul 2026, 00:40 UTC

The problem: tool sprawl and dependency drift
Penetration testers routinely need a mix of scanners, exploit frameworks, wireless utilities, and forensics tools. Installing each package individually from upstream repositories invites version conflicts, bloated images, and environments that differ from one workstation to the next. Kali Linux solves this with a hierarchy of metapackages — empty packages that declare dependencies on curated tool sets — so a single apt install pulls a tested, compatible collection.
Metapackage hierarchy and purpose
- kali-linux-core – base system libraries and essential utilities.
- kali-linux-default – ~2 GB installed; covers ~90 % of common assessments (nmap, Burp Suite, Metasploit, Wireshark, hashcat, sqlmap, etc.).
- kali-linux-large – adds ~6 GB for specialized engagements (e.g., hardware hacking, advanced forensics).
- kali-linux-everything – >20 GB; includes many low‑maintenance or deprecated tools; not recommended for production use.
- Domain‑specific bundles –
kali-tools-web,kali-tools-wireless,kali-tools-forensics, etc., each pulling only the relevant subset.
These metapackages are defined in the kali-meta source package (maintained on GitLab). Because they contain no files themselves, apt resolves version constraints across Kali’s rolling repository, preventing diamond‑dependency conflicts that would appear if tools were installed one‑by‑one from disparate upstreams.
Worked example: minimal web‑app assessment container
Suppose you need a CI/CD‑ready image that only contains web‑application testing tools. The kali-tools-web metapackage yields a ~1.2 GB image.
# Run on a host with Docker installed (requires root or docker group membership)
docker build -t kali-web-assess - <<'EOF'
FROM kalilinux/kali-rolling
# Install only the web‑assessment bundle
RUN apt update && apt install -y kali-tools-web \
&& apt clean && rm -rf /var/lib/apt/lists/*
EOF
Expected checks (run after build):
docker images kali-web-assess– verify size ≈ 1.2 GB.docker run --rm kali-web-assess dpkg -l | grep -E 'burp|nikto|sqlmap|wpscan'– confirm key tools are present.
Risks: the rolling base image pulls the latest package versions at build time; a rebuild six months later may include different tool versions. Pin the base image to a specific digest (e.g., kalilinux/kali-rolling@sha256:…) for reproducibility.
Trade‑offs and limitations
- Rolling updates – metapackage contents shift over time. Without pinning to a repository snapshot, two builds can diverge.
- Size vs. coverage –
kali-linux-everythinginflates attack surface and bandwidth; avoid in production. - Upstream cadence – tools like Metasploit Framework release faster than Kali’s snapshot. Practitioners often overlay the official Metasploit APT repository for the latest version.
- ARM constraints – Raspberry Pi and Pinebook images ship a reduced default metapackage; not all x86 tools are cross‑compiled or tested.
- Custom metapackages –
equivscan create a basic metapackage but losesRecommends/Suggestshandling. Use thekali-metabuild framework for full fidelity.
Actionable next steps
- Inspect current metapackage definitions:
apt show kali-linux-defaultandapt-cache depends kali-tools-web. - Review the authoritative
kali-metasource on GitLab (gitlab.com/kalilinux/packages/kali-meta) for package lists and build logic. - Pin your base image digest in Dockerfiles to freeze the toolset.
- If your team needs a fixed baseline, create a custom metapackage using the
kali-metascripts rather thanequivs. - Validate ARM availability before deploying to Raspberry Pi:
apt-cache policy kali-tools-wirelesson the target device.
By leveraging Kali’s metapackage architecture you gain a reproducible, conflict‑free toolchain that can be trimmed to the exact scope of each engagement — whether that’s a full‑stack assessment or a single‑purpose container in a CI pipeline.