# Install libsolv with Homebrew, apt, dnf, MacPorts, Nix, pacman, zypper

Library for solving packages and reading repositories. Version 0.7.39 via Homebrew; verified 2026-05-28.

## Install

```sh
sudo av install brew:libsolv
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install libsolv
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install libsolv
```

  Evidence: MacPorts ports tree: devel/libsolv/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- Debian apt (92%):

```sh
sudo apt install libsolv-dev
```

  Evidence: Debian stable package indexes: libsolv-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install libsolv
```

  Evidence: Fedora Rawhide package metadata: libsolv from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#libsolv
```

  Evidence: nixpkgs package indexes: pkgs/by-name/li/libsolv/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S libsolv
```

  Evidence: Arch Linux sync databases: libsolv from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install libsolv-demo
```

  Evidence: openSUSE Tumbleweed package metadata: libsolv-demo from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

## Package facts

- **Package key:** brew:libsolv
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/libsolv>
- **Version:** 0.7.39
- **Source summary:** Library for solving packages and reading repositories
- **Homepage:** <https://github.com/openSUSE/libsolv>
- **Repository:** <https://github.com/openSUSE/libsolv>
- **Upstream docs:** <https://github.com/openSUSE/libsolv#readme>
- **License:** BSD-3-Clause
- **Source archive:** <https://github.com/openSUSE/libsolv/archive/refs/tags/0.7.39.tar.gz>
- **Last updated:** 2026-05-28T12:56:01Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- appdata2solv (cli)
- archpkgs2solv (cli)
- archrepo2solv (cli)
- comps2solv (cli)
- conda2solv (cli)
- deb2solv (cli)
- deltainfoxml2solv (cli)
- dumpsolv (cli)
- helix2solv (cli)
- installcheck (cli)
- mdk2solv (cli)
- mergesolv (cli)
- repo2solv (cli)
- repomdxml2solv (cli)
- rpmdb2solv (cli)
- rpmmd2solv (cli)
- rpms2solv (cli)
- susetags2solv (cli)
- testsolv (cli)
- updateinfoxml2solv (cli)
- appdata2solv (alias)
- archpkgs2solv (alias)
- archrepo2solv (alias)
- comps2solv (alias)
- conda2solv (alias)
- deb2solv (alias)
- deltainfoxml2solv (alias)
- dumpsolv (alias)
- helix2solv (alias)
- installcheck (alias)
- mdk2solv (alias)
- mergesolv (alias)
- repo2solv (alias)
- repomdxml2solv (alias)
- rpmdb2solv (alias)
- rpmmd2solv (alias)
- rpms2solv (alias)
- susetags2solv (alias)
- testsolv (alias)
- updateinfoxml2solv (alias)

## Dependencies

- rpm
- xz
- zstd

## Build dependencies

- cmake

## Uses from macOS

- bzip2
- expat

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.7.39
- Package-manager updated: 2026-05-28
- Local data: ok
- Upstream repository: https://github.com/openSUSE/libsolv
- Upstream latest detected: 0.7.39 (current)
## Project history and usage

libsolv is openSUSE's package dependency solver and repository metadata library built around a SAT-solving model. It matters to package-manager culture because it turned dependency resolution into a reusable library with compact repository storage, solver introspection, and support for multiple package formats.

### Project history

The libsolv history page says the project started in May 2007 when the zypp team considered database-backed installation speedups. Michael Schroeder instead pursued compact dictionary storage for package strings and relations, creating the solv repository format.

During SUSE Hack Week at the end of June 2007, Schroeder adapted ideas from MiniSAT for package dependency solving. By October 2007 the solver was being integrated into libzypp, and in January 2008 the new solver became the default for libzypp.

### Adoption history

libsolv began inside the openSUSE/libzypp/YaST world, but its format readers made it useful beyond RPM repositories. The GitHub README lists support for rpm/rpm5, deb, Arch Linux, Haiku, and apk packages, plus repository formats such as rpmmd, susetags, Mandriva/Mageia synthesis, Arch repositories, and apk indexes.

### How it is used

The package ships a library plus many conversion and inspection tools such as rpmdb2solv, repomdxml2solv, archrepo2solv, deb2solv, dumpsolv, mergesolv, installcheck, and testsolv. Packagers use it to transform repository metadata into solv files and to test dependency closure or upgrade behavior.

### Why package nerds care

libsolv is one of the clearest examples of SAT solving escaping theory and becoming normal package-manager plumbing. It is interesting to package nerds because it exposes dependency conflicts, weak dependencies, repository storage, and multi-format metadata as inspectable artifacts rather than opaque package-manager behavior.

### Timeline

- 2007-05: Project work began after zypp installation-speed discussions.
- 2007-06: SUSE Hack Week produced the first SAT-based solver results.
- 2007-10: Integration into libzypp started.
- 2008-01: The SAT solver became the default libzypp solver.
- 2014-07-08: GitHub tag 0.6.4 points to a version-bump commit in the openSUSE/libsolv repository.

### Related projects

- libzypp and YaST were the original integration points.
- MiniSAT influenced the solver design described in the project history.
- RPM, Debian package metadata, Arch repositories, and apk indexes are related ecosystems supported by libsolv readers.

### Sources

- <https://api.github.com/repos/openSUSE/libsolv/tags?per_page=100>
- <https://en.opensuse.org/openSUSE:Libzypp_satsolver>
- <https://github.com/openSUSE/libsolv>
- <https://manpages.ubuntu.com/manpages/noble/man3/libsolv-history.3.html>


## Security Notes

library-like package without higher-risk signals.

- **Geiger risk:** green / low
- library-like package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** libsolv
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Debian apt - libsolv-dev - 0.7.32-1: normalized package name match | Debian stable package indexes: libsolv-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | dependency solver using a satisfiability algorithm (development files) | https://github.com/openSUSE/libsolv
- Debian apt - libsolv-doc - 0.7.32-1: normalized package name match | Debian stable package indexes: libsolv-doc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | dependency solver using a satisfiablility algorithm (documentation files) | https://github.com/openSUSE/libsolv
- Debian apt - libsolv-perl - 0.7.32-1: normalized package name match | Debian stable package indexes: libsolv-perl from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | dependency solver using a satisfiability algorithm (Perl bindings) | https://github.com/openSUSE/libsolv
- Debian apt - libsolv-tools - 0.7.32-1: normalized package name match | Debian stable package indexes: libsolv-tools from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | dependency solver using a satisfiability algorithm (command-line tools) | https://github.com/openSUSE/libsolv
- Debian apt - libsolv1 - 0.7.32-1: normalized package name match | Debian stable package indexes: libsolv1 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | dependency solver using a satisfiability algorithm (shared library) | https://github.com/openSUSE/libsolv
- Debian apt - libsolvext-dev - 0.7.32-1: normalized package name match | Debian stable package indexes: libsolvext-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | dependency solver using a satisfiability algorithm (ext development files) | https://github.com/openSUSE/libsolv
- Debian apt - libsolvext1 - 0.7.32-1: normalized package name match | Debian stable package indexes: libsolvext1 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | dependency solver using a satisfiability algorithm (extensions) | https://github.com/openSUSE/libsolv
- Debian apt - python3-solv - 0.7.32-1: normalized package name match | Debian stable package indexes: python3-solv from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | dependency solver using a satisfiability algorithm (Python3 bindings) | https://github.com/openSUSE/libsolv
- Nix - libsolv: normalized package name match | nixpkgs package indexes: pkgs/by-name/li/libsolv/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - libsolv-dev - 0.7.28-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libsolv-dev from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | dependency solver using a satisfiability algorithm (development files) | https://github.com/openSUSE/libsolv
- Ubuntu apt - libsolv-doc - 0.7.28-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libsolv-doc from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | dependency solver using a satisfiablility algorithm (documentation files) | https://github.com/openSUSE/libsolv
- Ubuntu apt - libsolv-perl - 0.7.28-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libsolv-perl from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | dependency solver using a satisfiability algorithm (Perl bindings) | https://github.com/openSUSE/libsolv
- Ubuntu apt - libsolv-tools - 0.7.28-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libsolv-tools from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | dependency solver using a satisfiability algorithm (command-line tools) | https://github.com/openSUSE/libsolv
- Ubuntu apt - libsolv1 - 0.7.28-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libsolv1 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | dependency solver using a satisfiability algorithm (shared library) | https://github.com/openSUSE/libsolv
- Ubuntu apt - libsolvext-dev - 0.7.28-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libsolvext-dev from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | dependency solver using a satisfiability algorithm (ext development files) | https://github.com/openSUSE/libsolv
- Ubuntu apt - libsolvext1 - 0.7.28-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libsolvext1 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | dependency solver using a satisfiability algorithm (extensions) | https://github.com/openSUSE/libsolv


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [rpm](https://www.automicvault.com/pkg/brew/rpm/) - Runtime dependency declared by Homebrew.
- [xz](https://www.automicvault.com/pkg/brew/xz/) - Runtime dependency declared by Homebrew.
- [zstd](https://www.automicvault.com/pkg/brew/zstd/) - Runtime dependency declared by Homebrew.
- [cmake](https://www.automicvault.com/pkg/brew/cmake/) - Build dependency declared by Homebrew.
- [micromamba](https://www.automicvault.com/pkg/brew/micromamba/) - Popular package that depends on this formula.
- [cargo-binstall](https://www.automicvault.com/pkg/brew/cargo-binstall/) - Shares av.db curated category or tags: cli, developer-tools, package-management.
- [corral](https://www.automicvault.com/pkg/brew/corral/) - Shares av.db curated category or tags: cli, developer-tools, package-management.
- [eget](https://www.automicvault.com/pkg/brew/eget/) - Shares av.db curated category or tags: cli, developer-tools, package-management.
- [install-peerdeps](https://www.automicvault.com/pkg/brew/install-peerdeps/) - Shares av.db curated category or tags: cli, developer-tools, package-management.
- [nrm](https://www.automicvault.com/pkg/brew/nrm/) - Shares av.db curated category or tags: cli, developer-tools, package-management.
- [ocaml-findlib](https://www.automicvault.com/pkg/brew/ocaml-findlib/) - Shares av.db curated category or tags: cli, developer-tools, package-management.
- [ocicl](https://www.automicvault.com/pkg/brew/ocicl/) - Shares av.db curated category or tags: cli, developer-tools, package-management.

## Combined YAML source

View the package source record on GitHub. [combined/libsolv.yml](https://github.com/automic-vault/db/blob/main/combined/libsolv.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
