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

Global Positioning System (GPS) daemon. Version 3.27.5 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:gpsd
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install gpsd
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install gpsd
```

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

### Linux

- apk (92%):

```sh
sudo apk add gpsd
```

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

- Debian apt (92%):

```sh
sudo apt install gpsd
```

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

- dnf (92%):

```sh
sudo dnf install gpsd
```

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

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

- pacman (92%):

```sh
sudo pacman -S gpsd
```

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

- zypper (92%):

```sh
sudo zypper install gpsd
```

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

## Package facts

- **Package key:** brew:gpsd
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/gpsd>
- **Version:** 3.27.5
- **Source summary:** Global Positioning System (GPS) daemon
- **Homepage:** <https://gpsd.gitlab.io/gpsd/>
- **Repository:** <https://gitlab.com/gpsd/gpsd>
- **Upstream docs:** <https://gpsd.gitlab.io/gpsd/gpsd.html>
- **License:** BSD-2-Clause
- **Source archive:** <https://download.savannah.gnu.org/releases/gpsd/gpsd-3.27.5.tar.xz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- cgps (cli)
- gps2udp (cli)
- gpsctl (cli)
- gpsd (cli)
- gpsdctl (cli)
- gpsdebuginfo (cli)
- gpsdecode (cli)
- gpsmon (cli)
- gpspipe (cli)
- gpsrinex (cli)
- gpssnmp (cli)
- gpxlogger (cli)
- lcdgps (cli)
- ntpshmmon (cli)
- ppscheck (cli)
- cgps (alias)
- gps2udp (alias)
- gpsctl (alias)
- gpsd (alias)
- gpsdctl (alias)
- gpsdebuginfo (alias)
- gpsdecode (alias)
- gpsmon (alias)
- gpspipe (alias)
- gpsrinex (alias)
- gpssnmp (alias)
- gpxlogger (alias)
- lcdgps (alias)
- ntpshmmon (alias)
- ppscheck (alias)

## Build dependencies

- asciidoctor
- scons

## Uses from macOS

- ncurses

## Install behavior

- Post-install hook: not defined
- Service: declared
- Caveats: gpsd does not automatically detect GPS device addresses. Once started, you need to force it to connect to your GPS: GPSD_SOCKET="$HOMEBREW_PREFIX/var/gpsd.sock" $HOMEBREW_CELLAR/gpsd/3.27.5/sbin/gpsdctl add /dev/tty.usbserial-XYZ
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 3.27.5
- Local data: ok
- Upstream repository: https://gpsd.gitlab.io/gpsd/
- info: No package-manager update timestamp was available.
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

gpsd is a Unix-oriented service daemon that listens to GPS, GNSS, DGPS, and AIS receivers and republishes their data over a local network socket so multiple clients can share one device.

### Project history

The gpsd project history says Remco Treffkorn started the project in 1995. Derrick Brashear and Russ Nelson were among the early maintainers, and the original architecture remained useful enough that it attracted little attention until proprietary receiver support strained it.

Eric S. Raymond began working on gpsd in August 2004 after encountering a problem with a BU-303 USB GPS. The project history describes a substantial refactor, added documentation, new features, and libgps as the prototype for gpsd 2.0.

In early 2005 gpsd was reshaped around packet sniffing, autobauding, and a daemon layer over device drivers. The project history identifies SiRF as the first non-NMEA device family supported by that redesign.

By the end of 2006, gpsd supported several vendor binary protocols along with NMEA and Zodiac, had a larger suite of GPS test tools, a regression-test framework, multi-device support, and hotplug autoconfiguration.

### Adoption history

The gpsd website describes the daemon as widely deployed in mobile embedded systems and names uses in Android phone location services, drones, robot submarines, driverless cars, aircraft, marine navigation systems, and military vehicles.

Its adoption pattern is package-manager friendly: distributions can install gpsd, udev integration, client tools, and libraries once, then many applications can consume position data without each application speaking serial protocols directly.

The project history records several forks, including GPSdrive's variant, ngpsd, and tgpsd, then notes that gpsd became large and visible enough to absorb most potential fork pressure.

### How it is used

Users commonly run `gpsd` as a daemon attached to a serial, USB, or Bluetooth receiver. The daemon listens on TCP port 2947 by default and serves clients such as `cgps`, `gpspipe`, mapping tools, time synchronization setups, and application libraries.

The official manpage emphasizes that gpsd hides receiver differences, discovers speed and protocol, supports NMEA and many binary protocols, and lets multiple clients avoid contention for one serial device.

gpsd is also part of timekeeping workflows: its tools and documentation cover NTP/shared-memory integration and PPS diagnostics for hosts using GPS as a time source.

### Why package nerds care

gpsd is one of the canonical examples of a daemon package that turns messy hardware protocols into a stable local service API. For packagers, the interesting parts are not just the daemon but the client tools, udev/hotplug rules, Python/C bindings, manpages, and optional protocol support.

It also has an unusually explicit project history, including migrations from older forges to GitLab, a Subversion-to-git switch in 2010, and an autotools-to-scons switch in 2011.

### Timeline

- 1995: Remco Treffkorn starts gpsd.
- 1999-2002: EarthMate proprietary-format work strains the original architecture.
- 2004: Eric S. Raymond refactors the project and moves it toward gpsd 2.0.
- 2005: Packet sniffing, autobauding, and non-NMEA driver architecture appear.
- 2006: Vendor binary protocols, test tools, regression tests, multi-device support, and hotplug autoconfiguration are in place.
- 2009: GPSD command protocol is redesigned and AIS receiver support is added.
- 2010: Project moves from Subversion to git.
- 2011: Build system changes from autotools to scons; gpsd 3.0 ships.
- 2019: Repository, bug tracker, and web content move to GitLab.

### Related projects

- Kismet, GpsDrive, Navit, Viking, GeoClue, OpenCPN, and Firefox/Mozilla are listed by the gpsd site among applications or systems using gpsd.
- NMEA 0183, AIS, SiRF, Garmin, u-blox, RTCM, NTP, and PPS are recurring protocols or integrations in gpsd documentation.
- Gypsy is named by the gpsd history as a later competing project.

### Sources

- <https://gitlab.com/gpsd/gpsd>
- <https://gpsd.gitlab.io/gpsd/gpsd.html>
- <https://gpsd.gitlab.io/gpsd/history.html>
- <https://gpsd.gitlab.io/gpsd/index.html>


## Security Notes

formula declares a Homebrew service.

- **Geiger risk:** orange / medium
- formula declares a Homebrew service

## Source Database Details

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

## Other Package-Manager Records

- Debian apt - gpsd - 3.25-5+deb13u1: normalized package name match | Debian stable package indexes: gpsd from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Global Positioning System - daemon | https://gpsd.io
- Debian apt - gpsd-clients - 3.25-5+deb13u1: normalized package name match | Debian stable package indexes: gpsd-clients from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Global Positioning System - clients | https://gpsd.io
- Debian apt - gpsd-tools - 3.25-5+deb13u1: normalized package name match | Debian stable package indexes: gpsd-tools from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Global Positioning System - tools | https://gpsd.io
- Debian apt - libgps-dev - 3.25-5+deb13u1: normalized package name match | Debian stable package indexes: libgps-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Global Positioning System - development files | https://gpsd.io
- Debian apt - libgps30t64 - 3.25-5+deb13u1: normalized package name match | Debian stable package indexes: libgps30t64 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Global Positioning System - library | https://gpsd.io
- Debian apt - libqgpsmm-dev - 3.25-5+deb13u1: normalized package name match | Debian stable package indexes: libqgpsmm-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Global Positioning System - Qt wrapper for libgps (development) | https://gpsd.io
- Debian apt - libqgpsmm30t64 - 3.25-5+deb13u1: normalized package name match | Debian stable package indexes: libqgpsmm30t64 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Global Positioning System - Qt wrapper for libgps | https://gpsd.io
- Debian apt - python3-gps - 3.25-5+deb13u1: normalized package name match | Debian stable package indexes: python3-gps from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Global Positioning System - Python 3 libraries | https://gpsd.io
- Nix - gpsd: normalized package name match | nixpkgs package indexes: pkgs/by-name/gp/gpsd/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - gpsd - 3.25-3ubuntu3: normalized package name match | Ubuntu 24.04 LTS package indexes: gpsd from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | Global Positioning System - daemon | https://gpsd.io
- Ubuntu apt - gpsd-clients - 3.25-3ubuntu3: normalized package name match | Ubuntu 24.04 LTS package indexes: gpsd-clients from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Global Positioning System - clients | https://gpsd.io
- Ubuntu apt - gpsd-tools - 3.25-3ubuntu3: normalized package name match | Ubuntu 24.04 LTS package indexes: gpsd-tools from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | Global Positioning System - tools | https://gpsd.io
- Ubuntu apt - libgps-dev - 3.25-3ubuntu3: normalized package name match | Ubuntu 24.04 LTS package indexes: libgps-dev from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | Global Positioning System - development files | https://gpsd.io
- Ubuntu apt - libgps30t64 - 3.25-3ubuntu3: normalized package name match | Ubuntu 24.04 LTS package indexes: libgps30t64 from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | Global Positioning System - library | https://gpsd.io
- Ubuntu apt - libqgpsmm-dev - 3.25-3ubuntu3: normalized package name match | Ubuntu 24.04 LTS package indexes: libqgpsmm-dev from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Global Positioning System - Qt wrapper for libgps (development) | https://gpsd.io
- Ubuntu apt - libqgpsmm30t64 - 3.25-3ubuntu3: normalized package name match | Ubuntu 24.04 LTS package indexes: libqgpsmm30t64 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Global Positioning System - Qt wrapper for libgps | https://gpsd.io


## Related links

- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [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.
- [Homebrew utility packages](https://www.automicvault.com/pkg/brew-utility-packages/) - Matched Homebrew package provider.
- [asciidoctor](https://www.automicvault.com/pkg/brew/asciidoctor/) - Build dependency declared by Homebrew.
- [scons](https://www.automicvault.com/pkg/brew/scons/) - Build dependency declared by Homebrew.
- [direwolf](https://www.automicvault.com/pkg/brew/direwolf/) - Popular package that depends on this formula.
- [ahcpd](https://www.automicvault.com/pkg/brew/ahcpd/) - Shares av.db curated category or tags: cli, daemon, networking.
- [argus](https://www.automicvault.com/pkg/brew/argus/) - Shares av.db curated category or tags: cli, daemon, networking.
- [bozohttpd](https://www.automicvault.com/pkg/brew/bozohttpd/) - Shares av.db curated category or tags: cli, daemon, networking.
- [btpd](https://www.automicvault.com/pkg/brew/btpd/) - Shares av.db curated category or tags: cli, daemon, networking.
- [ctrld](https://www.automicvault.com/pkg/brew/ctrld/) - Shares av.db curated category or tags: cli, daemon, networking.
- [ddclient](https://www.automicvault.com/pkg/brew/ddclient/) - Shares av.db curated category or tags: cli, daemon, networking.
- [dish](https://www.automicvault.com/pkg/brew/dish/) - Shares av.db curated category or tags: cli, networking, tcp.
- [dns2tcp](https://www.automicvault.com/pkg/brew/dns2tcp/) - Shares av.db curated category or tags: cli, networking, tcp.
- [fetchmail](https://www.automicvault.com/pkg/brew/fetchmail/) - Local package facts share a topical domain. Shared terms: cli, networking.
- [gsasl](https://www.automicvault.com/pkg/brew/gsasl/) - Local package facts share a topical domain. Shared terms: cli, networking.

## Combined YAML source

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