Skip to content
Calcrivo

Package Dependency Calculator

Estimate total install footprint from direct and transitive package dependencies.

Inputs

Total Dependencies (Direct + Transitive)

30

Estimated Additional Install Size (MB)

63.0

New Packages to Install

18

Transitive Share of Total Deps (%)

73.3%

Step by step

  1. Values used

    Direct Dependencies = 8; Transitive (Indirect) Dependencies = 22; Avg Package Install Size (MB) = 3.50; Dependencies Already Satisfied/Installed = 12

  2. Total dependencies

    total_deps = direct_deps + transitive_deps; new_installs = total_deps − already_installed

  3. Total Dependencies (Direct + Transitive)

    = 30

  4. Estimated Additional Install Size (MB)

    = 63.0

  5. New Packages to Install

    = 18

  6. Transitive Share of Total Deps (%)

    = 73.3

How it works

Installing a package can pull in far more than its directly declared dependencies: each direct dependency may itself require further packages (transitive dependencies), and the full closure is what the package manager (apt, dnf/yum, zypper) must resolve and potentially download. The actual disk and download impact of an installation is driven by how many of those total dependencies are not already satisfied by existing installed packages — a system with substantial overlapping dependencies already present will see a much smaller effective install size than the raw total dependency count implies.

Formula

Total dependencies

total_deps = direct_deps + transitive_deps; new_installs = total_deps − already_installed

Frequently Asked Questions

How do I view a package's full transitive dependency tree before installing?

On Debian/Ubuntu, `apt-cache depends --recurse --no-recommends <package>` lists the full tree; a dry-run `apt-get install --dry-run <package>` shows exactly what would be newly installed. On Fedora/RHEL, `dnf repoquery --requires --resolve <package>` or `dnf install --assumeno <package>` serve the same purpose.

Why can two packages with the same declared direct dependency count have very different install sizes?

Install size depends on how many of those dependencies are already satisfied by packages already on the system, plus the actual size of each dependency package — a package depending on already-installed common libraries (glibc, openssl) pulls in far less than one depending on niche libraries unique to it.

What's the risk of a package with a very deep transitive dependency tree?

Beyond larger install footprint, deep dependency trees increase the surface area for version conflicts (dependency hell), make the package manager's SAT-solving slower, and mean a security vulnerability in any transitive dependency indirectly affects every package that pulls it in.

You might also need