# Install gsl with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, zypper

Numerical library for C and C++. Version 2.8 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:gsl
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install gsl
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install gsl
```

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

### Linux

- apk (92%):

```sh
sudo apk add gsl
```

  Evidence: Alpine Linux edge package indexes: gsl from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install gsl-bin
```

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

- dnf (92%):

```sh
sudo dnf install gsl
```

  Evidence: Fedora Rawhide package metadata: gsl 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#gsl
```

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

- pacman (92%):

```sh
sudo pacman -S gsl
```

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

- zypper (92%):

```sh
sudo zypper install gsl
```

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

## Package facts

- **Package key:** brew:gsl
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/gsl>
- **Version:** 2.8
- **Source summary:** Numerical library for C and C++
- **Homepage:** <https://www.gnu.org/software/gsl/>
- **Repository:** <https://git.savannah.gnu.org/git/gsl.git>
- **Upstream docs:** <https://www.gnu.org/software/gsl/doc/html>
- **License:** GPL-3.0-or-later
- **Source archive:** <https://ftpmirror.gnu.org/gnu/gsl/gsl-2.8.tar.gz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- gsl-config (cli)
- gsl-histogram (cli)
- gsl-randist (cli)
- gsl-config (alias)
- gsl-histogram (alias)
- gsl-randist (alias)

## Install behavior

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

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 2.8
- Local data: ok
- Upstream repository: https://www.gnu.org/software/gsl/
- info: No package-manager update timestamp was available.
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

The GNU Scientific Library, usually abbreviated GSL, is a numerical library for C and C++ programmers. It supplies routines for numerical computing across random numbers, special functions, vectors and matrices, BLAS support, FFTs, eigensystems, statistics, interpolation, optimization, ordinary differential equations, sparse linear algebra, and other scientific-computing areas.

GSL is part of the GNU Project and is distributed under the GNU GPL. Its package-manager role is not just to install a library but to provide a stable, broadly packaged numerical substrate for C programs and bindings in higher-level languages.

### Project history

The project was conceived in 1996 by M. Galassi and J. Theiler of Los Alamos National Laboratory. The GNU project page says they were joined by other physicists who believed existing library licenses hindered scientific cooperation.

GSL's design aimed to give C programmers a modern API while reimplementing reliable public-domain numerical packages such as FFTPACK and QUADPACK in C with modern coding conventions. That made it a bridge between classic numerical methods and free-software packaging practices.

Major design and implementation work was carried out by G. Jungman and B. Gough, with modules by J. Davies, R. Priedhorsky, M. Booth, F. Rossi, P. Alken, and other contributors. The project page also notes long-running Debian package maintenance by D. Eddelbuettel.

The release history shows a long beta period from 1996 through 2001, version 1.0 in November 2001, steady 1.x releases through 2013, and the 2.x line beginning in October 2015.

### Adoption history

GSL spread through both operating-system packages and language bindings. The GNU page says precompiled binary packages are included in most GNU/Linux distributions and that a compiled version is available through Cygwin on Windows.

The project page lists many extensions, wrappers, and applications around GSL, including bindings for Java, Perl, Common Lisp, Python, Ruby, R, S-Lang, OCaml, and C++ wrappers, plus scientific applications and textbooks that use the library.

This adoption pattern made GSL a familiar dependency in research tooling: one package gives distributions a consistent set of numerical routines, and language ecosystems can wrap the same tested C implementation rather than carrying separate implementations.

### How it is used

Developers link against GSL from C or C++ and include the relevant headers for the routine families they need. The package also provides small command-line utilities such as gsl-config, gsl-histogram, and gsl-randist for build integration and quick numerical tasks.

The official manual emphasizes example programs and references for each chapter. This reflects GSL's niche: it is not a monolithic numerical environment, but a library of callable routines that can be composed inside scientific applications.

### Why package nerds care

GSL matters to package people because it is a classic GNU library where licensing, ABI stability, scientific correctness, and distro availability all intersect. Its GPL status is a deliberate policy choice: the GNU page frames the license as supporting scientific cooperation and warns that redistributed programs using it need GPL-compatible terms.

It also has the kind of long release line package maintainers like to see: explicit release history, a stable API emphasis, a Savannah repository, mailing lists, a reference manual, and many downstream wrappers that depend on stable headers and library behavior.

### Timeline

- 1996: Project conceived and started at Los Alamos National Laboratory.
- 1996: Early 0.0, 0.1, and 0.2 releases appeared.
- 2001: First beta-test release 0.9 appeared in July.
- 2001: Version 1.0 was released in November.
- 2007: Version 1.9 was announced as a collection of well-tested C routines for numerical computing.
- 2013: Version 1.16 closed the long 1.x era.
- 2015: Version 2.0 began the 2.x line.
- 2024: Version 2.8 was released in May.

### Related projects

- FFTPACK and QUADPACK are public-domain numerical packages whose algorithms informed parts of GSL's C implementations.
- ATLAS is listed by the GSL page as a compatible tuned BLAS option for vector and matrix operations.
- GLPK, FFTW, and NLopt are listed by the GSL page as other useful free-software packages for scientific computing.
- Language wrappers such as R gsl, RcppGSL, PyGSL, Math::GSL, and Ruby/GSL show how the library became an implementation layer for higher-level ecosystems.

### Sources

- <https://git.savannah.gnu.org/cgit/gsl.git/plain/NEWS>
- <https://lists.gnu.org/archive/html/info-gnu/2007-02/msg00004.html>
- <https://www.gnu.org/software/gsl/>
- <https://www.gnu.org/software/gsl/doc/html/intro.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:** gsl
- **Aliases:** gnu-scientific-library
- **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 - gsl-bin - 2.8+dfsg-5: normalized package name match | Debian stable package indexes: gsl-bin from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GNU Scientific Library (GSL) -- binary package | https://www.gnu.org/software/gsl
- Debian apt - libgsl-dbg - 2.8+dfsg-5: normalized package name match | Debian stable package indexes: libgsl-dbg from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GNU Scientific Library (GSL) -- debug symbols package | https://www.gnu.org/software/gsl
- Debian apt - libgsl-dev - 2.8+dfsg-5: normalized package name match | Debian stable package indexes: libgsl-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GNU Scientific Library (GSL) -- development package | https://www.gnu.org/software/gsl
- Debian apt - libgsl28 - 2.8+dfsg-5: normalized package name match | Debian stable package indexes: libgsl28 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GNU Scientific Library (GSL) -- library package | https://www.gnu.org/software/gsl
- Debian apt - libgslcblas0 - 2.8+dfsg-5: normalized package name match | Debian stable package indexes: libgslcblas0 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GNU Scientific Library (GSL) -- blas library package | https://www.gnu.org/software/gsl
- Nix - gsl: normalized package name match | nixpkgs package indexes: pkgs/by-name/gs/gsl/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - gsl-bin - 2.7.1+dfsg-6ubuntu2: normalized package name match | Ubuntu 24.04 LTS package indexes: gsl-bin from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GNU Scientific Library (GSL) -- binary package | https://www.gnu.org/software/gsl
- Ubuntu apt - libgsl-dbg - 2.7.1+dfsg-6ubuntu2: normalized package name match | Ubuntu 24.04 LTS package indexes: libgsl-dbg from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GNU Scientific Library (GSL) -- debug symbols package | https://www.gnu.org/software/gsl
- Ubuntu apt - libgsl-dev - 2.7.1+dfsg-6ubuntu2: normalized package name match | Ubuntu 24.04 LTS package indexes: libgsl-dev from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GNU Scientific Library (GSL) -- development package | https://www.gnu.org/software/gsl
- Ubuntu apt - libgsl27 - 2.7.1+dfsg-6ubuntu2: normalized package name match | Ubuntu 24.04 LTS package indexes: libgsl27 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GNU Scientific Library (GSL) -- library package | https://www.gnu.org/software/gsl
- Ubuntu apt - libgslcblas0 - 2.7.1+dfsg-6ubuntu2: normalized package name match | Ubuntu 24.04 LTS package indexes: libgslcblas0 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GNU Scientific Library (GSL) -- blas library package | https://www.gnu.org/software/gsl
- apk - gsl - 2.8-r0: normalized package name match | Alpine Linux edge package indexes: gsl from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Modern numerical library for C and C++ programmers | https://www.gnu.org/software/gsl/gsl.html
- apk - gsl-dev - 2.8-r0: normalized package name match | Alpine Linux edge package indexes: gsl-dev from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Modern numerical library for C and C++ programmers (development files) | https://www.gnu.org/software/gsl/gsl.html
- apk - gsl-doc - 2.8-r0: normalized package name match | Alpine Linux edge package indexes: gsl-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Modern numerical library for C and C++ programmers (documentation) | https://www.gnu.org/software/gsl/gsl.html
- apk - gsl-static - 2.8-r0: normalized package name match | Alpine Linux edge package indexes: gsl-static from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Modern numerical library for C and C++ programmers (static library) | https://www.gnu.org/software/gsl/gsl.html
- dnf - gsl - 2.8-3.fc44: normalized package name match | Fedora Rawhide package metadata: gsl from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | The GNU Scientific Library for numerical analysis | https://www.gnu.org/software/gsl/


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Scientific computing packages](https://www.automicvault.com/pkg/scientific-computing-tools/) - Matched scientific computing metadata.
- [Homebrew utility packages](https://www.automicvault.com/pkg/brew-utility-packages/) - Matched Homebrew package provider.
- [astrometry-net](https://www.automicvault.com/pkg/brew/astrometry-net/) - Popular package that depends on this formula.
- [asymptote](https://www.automicvault.com/pkg/brew/asymptote/) - Popular package that depends on this formula.
- [bcftools](https://www.automicvault.com/pkg/brew/bcftools/) - Popular package that depends on this formula.
- [dynare](https://www.automicvault.com/pkg/brew/dynare/) - Popular package that depends on this formula.
- [flowgrind](https://www.automicvault.com/pkg/brew/flowgrind/) - Popular package that depends on this formula.
- [gnuastro](https://www.automicvault.com/pkg/brew/gnuastro/) - Popular package that depends on this formula.
- [gnuradio](https://www.automicvault.com/pkg/brew/gnuradio/) - Popular package that depends on this formula.
- [libbi](https://www.automicvault.com/pkg/brew/libbi/) - Popular package that depends on this formula.
- [octave](https://www.automicvault.com/pkg/brew/octave/) - Shares av.db curated category or tags: cli, numerical-computing, science, scientific-computing.
- [ibex](https://www.automicvault.com/pkg/brew/ibex/) - Shares av.db curated category or tags: cli, numerical-computing, science.
- [itpp](https://www.automicvault.com/pkg/brew/itpp/) - Shares av.db curated category or tags: cli, math-library, numerical-computing, science.
- [clblas](https://www.automicvault.com/pkg/brew/clblas/) - Shares av.db curated category or tags: cli, numerical-computing, science.
- [clblast](https://www.automicvault.com/pkg/brew/clblast/) - Shares av.db curated category or tags: cli, numerical-computing, science.
- [flexiblas](https://www.automicvault.com/pkg/brew/flexiblas/) - Shares av.db curated category or tags: cli, numerical-computing, science.
- [numpy](https://www.automicvault.com/pkg/brew/numpy/) - Shares av.db curated category or tags: cli, numerical-computing, science, scientific-computing.
- [qd](https://www.automicvault.com/pkg/brew/qd/) - Shares av.db curated category or tags: cli, numerical-computing, science.

## Combined YAML source

View the package source record on GitHub. [combined/gsl.yml](https://github.com/automic-vault/db/blob/main/combined/gsl.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
