Morganamilo/paru · error

no local repo named

Error message

no local repo named {}

What it means

paru validates each repository listed under Repos in paru.conf against the AUR-related pacman databases actually open (repo::repo_aur_dbs). If a configured local repo name has no matching pacman database, it bails with 'no local repo named {repo}'. This catches a config entry pointing at a repo that was never initialized or was renamed.

Solutions

  1. Remove or correct the unknown repo name in the Repos line of paru.conf
  2. Initialize the repo with paru -Ly after adding its section to pacman.conf
  3. Verify the repo DB exists in the configured CacheDir (ls /var/lib/repo/aur)
  4. Ensure the repo section ([myrepo] with Server=...) is present in pacman.conf so pacman registers it

Example fix

// before (paru.conf)
Repos = myrepo aurclone

// after (paru.conf)
Repos = myrepo
Defensive patterns

Strategy: validation

Validate before calling

# verify each Repos entry in paru.conf has a matching repo DB
for r in $(grep -A1 '^Repos' ~/.config/paru/paru.conf | cut -d= -f2); do
  test -n "$r" || continue
  ls /var/lib/repo/aur/${r}.db >/dev/null 2>&1 || echo "missing repo: $r"
done

Prevention

When it happens

Trigger: paru.conf contains a Repos = myrepo entry, but no pacman database named 'myrepo' exists among the local repo DBs (repo_aur_dbs) when Config::config_validation runs at src/config.rs:795.

Common situations: User added Repos = foo to paru.conf but never created the foo repo; repo was removed from pacman.conf; typo in repo name; database file deleted from CacheDir.

Understand the failure class

Background: "Not found" and "does not exist" errors: why "Task not found", "No such folder", and "Can't find" fire when a lookup comes back empty — this error's family across 14 libraries.

Related errors


AI-assisted analysis of Morganamilo/paru@9ac3578807 (2026-09-12). Data as JSON: /api/errors/e283d0df079da0f7. Report an issue: GitHub.

Appendix: source

Thrown at src/config.rs:795

                repo.path = self.pkgbuild_repos.fetch.clone_dir.join(&repo.path);
            }
        }

        if self.mode == Mode::empty() {
            self.mode = Mode::all();
        }

        if !self.mode.pkgbuild() {
            self.pkgbuild_repos.repos.clear();
        }

        self.need_root = self.need_root();

        if let LocalRepos::Repo(repos) = &self.repos {
            let (_, db) = repo::repo_aur_dbs(self);
            for repo in repos {
                if !db.iter().any(|db| db.name() == repo) {
                    bail!("{}", tr!("no local repo named {}", repo))
                }
            }
        }

        if self.repos != LocalRepos::None {
            let (_, repos) = repo::repo_aur_dbs(self);

            if repos.is_empty() {
                bail!(
                    "no local repos configured, add one to your pacman.conf:
    [options]
    CacheDir = /var/lib/repo/aur

    [aur]
    SigLevel = PackageOptional DatabaseOptional
    Server = file:///var/lib/repo/aur

then initialise it with:

View on GitHub (pinned to 9ac3578807)