# Install libversion with Homebrew, Nix, zypper

Advanced version string comparison library. Version 3.0.4 via Homebrew; verified from local package data. Also installable with nix: nix profile install nixpkgs#libversion.

## Install

```sh
sudo av install brew:libversion
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install libversion
```

  Evidence: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#libversion
```

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

- zypper (92%):

```sh
sudo zypper install libversion
```

  Evidence: openSUSE Tumbleweed package metadata: libversion from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst

## Package facts

- **Package key:** brew:libversion
- **Package manager:** Homebrew
- **Version:** 3.0.4
- **Source summary:** Advanced version string comparison library
- **Homepage:** <https://github.com/repology/libversion>
- **Repository:** <https://github.com/repology/libversion>
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- version_compare (alias)
- version_sort (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 3.0.4
## Project history and usage

libversion is Repology's C library for comparing messy software version strings, including prerelease markers, suffixes, separators, and package-repository conventions that simple lexical comparison gets wrong.

### Project history

The library was written by Dmitry Marakasov for the Repology ecosystem. Its README frames the core problem as comparing versions from different package repositories, where strings such as alpha, beta, rc, patch, post, and unusual separators need stable ordering rules.

### Adoption history

libversion is used by Repology itself, and Repology's updater lists the Python libversion module, the C library, and a PostgreSQL libversion extension among its dependencies. That makes the library part of the machinery behind cross-distribution version tracking rather than a general end-user command.

### How it is used

The library exposes C comparison functions, installs pkg-config and CMake integration files, and includes command-line utilities such as version_compare and version_sort for package-maintainer scripts or quick checks.

### Why package nerds care

Version ordering is one of the oldest package-manager traps. libversion is interesting because it treats packaging reality as the problem domain: upstreams encode prereleases, patches, and suffixes inconsistently, and repository comparison services need deterministic answers.

### Timeline

- 1.0.0: First tagged major release line in the public repository.
- 2.0.0: Later tagged major release line in the public repository.
- 3.0.0: Later tagged major release line in the public repository.

### Related projects

- Repology uses libversion for software-version comparison across repositories.
- py-libversion, libversion-rs, golibversion, ruby-libversion, and other bindings or compatible implementations extend the same comparison model.

### Sources

- <https://github.com/repology/libversion>
- <https://github.com/repology/repology-updater>
- <https://raw.githubusercontent.com/repology/libversion/master/README.md>
- <https://raw.githubusercontent.com/repology/repology-updater/master/README.md>


## Security Notes

library-like package without higher-risk signals.

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

## Other Package-Manager Records

- Nix - libversion: normalized package name match | nixpkgs package indexes: pkgs/by-name/li/libversion/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- zypper - libversion - 3.0.4-1.5: normalized package name match | openSUSE Tumbleweed package metadata: libversion from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Version string comparison library | https://github.com/repology/libversion
- zypper - libversion-devel - 3.0.4-1.5: normalized package name match | openSUSE Tumbleweed package metadata: libversion-devel from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Development files for libversion | https://github.com/repology/libversion
- zypper - libversion1 - 3.0.4-1.5: normalized package name match | openSUSE Tumbleweed package metadata: libversion1 from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Version string comparison library | https://github.com/repology/libversion


## Combined YAML source

View the package source record on GitHub. [combined/libversion.yml](https://github.com/mxcl/pkgdb/blob/main/combined/libversion.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
