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
Values used
Direct Dependencies = 8; Transitive (Indirect) Dependencies = 22; Avg Package Install Size (MB) = 3.50; Dependencies Already Satisfied/Installed = 12
Total dependencies
total_deps = direct_deps + transitive_deps; new_installs = total_deps − already_installed
Total Dependencies (Direct + Transitive)
= 30
Estimated Additional Install Size (MB)
= 63.0
New Packages to Install
= 18
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
- Repository Mirror CalculatorCommonly used together
- Package Size CalculatorCommonly used together
- Module Dependency CalculatorCommonly used together
- Server Consolidation CalculatorCommonly used together
- YUM DNF Cache CalculatorAlso in System Administration
- Update Time EstimatorAlso in System Administration