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

  1. Include the listed missing dependencies in the same install command so they get built/installed first
  2. Run pacman -Sy (or refresh with the helper) to sync repo databases, then retry
  3. Check whether the missing deps are AUR packages the helper failed to resolve; add them explicitly
  4. 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

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)