Morganamilo/paru · error
can't build , deps not satisfied
Error message
can't build {base}, deps not satisfied: {deps} What it means
Before building, build_install_pkgbuild checks that all dependencies of the package are satisfiable; it collects any missing ones and bails with "can't build {base}, deps not satisfied: {deps}". This prevents starting a makepkg run that would fail on dependency resolution.
Solutions
- Include the listed missing dependencies in the same install command so they get built/installed first
- Run pacman -Sy (or refresh with the helper) to sync repo databases, then retry
- Check whether the missing deps are AUR packages the helper failed to resolve; add them explicitly
- Verify the PKGBUILD's depends/makedepends for typos or renamed packages
Example fix
// before paru -S mypackage // after (include the missing dependency in the same transaction) paru -S mypackage its-missing-dep
Defensive patterns
Strategy: validation
Validate before calling
// pre-resolve dependencies and warn before building
for dep in srcinfo_deps(&base) {
let in_repos = pacman_q(&dep) || pacman_si(&dep);
if !in_repos && !in_build_set(&dep, targets) {
eprintln!("{dep} unsatisfied for {base}; add it to the install list");
}
} Prevention
- Always include transitive AUR dependencies in the same command
- Refresh repo databases (pacman -Sy / helper refresh) before installs
- Check the PKGBUILD's depends/makedepends for typos or renamed packages
- Keep the local system upgraded to avoid partial-upgrade dependency gaps
When it happens
Trigger: The missing list built during dependency resolution is non-empty: declared depends/makedepends of the package base are neither installed, nor available in repos, nor provided by other packages in the current build set.
Common situations: Package depends on another AUR package not included in the current target list; dependency exists only in an out-of-sync local repo database; typo'd or renamed dependency in the PKGBUILD; partial upgrade leaving repos stale (no pacman -Sy).
Understand the failure class
Background: "not installed", "pip install", "required for": how missing-dependency errors surface across open-source libraries — this error's family across 34 libraries.
Related errors
AI-assisted analysis of Morganamilo/paru@9ac3578807 (2026-09-12).
Data as JSON: /api/errors/e98dddfffd38335c.
Report an issue: GitHub.
Appendix: source
Thrown at src/install.rs:774
}
}
Base::Pkgbuild(c) => {
for pkg in &c.pkgs {
missing.retain(|mis| {
let provides = pkg.pkg.provides.arch(arch).map(Depend::new);
let v = Version::new(c.version().as_str());
if ver {
!satisfies(Depend::new(*mis), &pkg.pkg.pkgname, v, provides)
} else {
!satisfies_nover(Depend::new(*mis), &pkg.pkg.pkgname, provides)
}
})
}
}
}
if !missing.is_empty() {
bail!(tr!(
"can't build {base}, deps not satisfied: {deps}",
base = base,
deps = missing.join(" ")
));
}
let (mut pkgdest, version) = if build {
self.build_pkgbuild(config, base, repo, &dir)?
} else {
printtr!("{}: parsing pkg list...", base);
let (pkgdests, version) = parse_package_list(config, &dir, pkgdest)?;
let debug_paths = self.debug_paths(config, base, &pkgdests)?;
self.add_pkg(config, base, repo, &pkgdests, &debug_paths)?;
self.queue_install(base, &pkgdests, &debug_paths);
(pkgdests, version)
};
match &*base {View on GitHub (pinned to 9ac3578807)