macOS
brew install gpsdlocal Homebrew formula metadata
sudo port install gpsdMacPorts ports tree · net/gpsd/Portfile · source: api.github.com
brew
Global Positioning System (GPS) daemon. Version 3.27.5 via Homebrew; verified from local package data.
install
brew install gpsdlocal Homebrew formula metadata
sudo port install gpsdMacPorts ports tree · net/gpsd/Portfile · source: api.github.com
sudo apk add gpsdAlpine Linux edge package indexes · gpsd · source: dl-cdn.alpinelinux.org
sudo apt install gpsdDebian stable package indexes · gpsd · source: deb.debian.org
sudo dnf install gpsdFedora Rawhide package metadata · gpsd · source: dl.fedoraproject.org
nix profile install nixpkgs#gpsdnixpkgs package indexes · pkgs/by-name/gp/gpsd/package.nix · source: api.github.com
sudo pacman -S gpsdArch Linux sync databases · gpsd · source: geo.mirror.pkgbuild.com
sudo zypper install gpsdopenSUSE Tumbleweed package metadata · gpsd · source: download.opensuse.org
overview
Global Positioning System (GPS) daemon
history
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.
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.
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.
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.
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.
security posture
formula declares a Homebrew service.
orange risk · medium confidence · infrastructure
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
cgps | cli | global executable | |
gps2udp | cli | global executable | |
gpsctl | cli | global executable | |
gpsd | cli | global executable | |
gpsdctl | cli | global executable | |
gpsdebuginfo | cli | global executable | |
gpsdecode | cli | global executable | |
gpsmon | cli | global executable | |
gpspipe | cli | global executable | |
gpsrinex | cli | global executable | |
gpssnmp | cli | global executable | |
gpxlogger | cli | global executable | |
lcdgps | cli | global executable | |
ntpshmmon | cli | global executable | |
ppscheck | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
install metadata
| Package key | brew:gpsd |
|---|---|
| Version | 3.27.5 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/gpsd |
| 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 |
| Build dependencies | asciidoctor, scons |
| Uses from macOS | ncurses |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | 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 |
registry facts
| 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 |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
gpsd 3.25-5+deb13u1
Global Positioning System - daemon
sudo apt install gpsdgpsd-clients 3.25-5+deb13u1
Global Positioning System - clients
sudo apt install gpsd-clientsgpsd-tools 3.25-5+deb13u1
Global Positioning System - tools
sudo apt install gpsd-toolslibgps-dev 3.25-5+deb13u1
Global Positioning System - development files
sudo apt install libgps-devlibgps30t64 3.25-5+deb13u1
Global Positioning System - library
sudo apt install libgps30t64libqgpsmm-dev 3.25-5+deb13u1
Global Positioning System - Qt wrapper for libgps (development)
sudo apt install libqgpsmm-devlibqgpsmm30t64 3.25-5+deb13u1
Global Positioning System - Qt wrapper for libgps
sudo apt install libqgpsmm30t64python3-gps 3.25-5+deb13u1
Global Positioning System - Python 3 libraries
sudo apt install python3-gpsgpsd
nix profile install nixpkgs#gpsdgpsd 3.25-3ubuntu3
Global Positioning System - daemon
sudo apt install gpsdgpsd-clients 3.25-3ubuntu3
Global Positioning System - clients
sudo apt install gpsd-clientsgpsd-tools 3.25-3ubuntu3
Global Positioning System - tools
sudo apt install gpsd-toolslibgps-dev 3.25-3ubuntu3
Global Positioning System - development files
sudo apt install libgps-devlibgps30t64 3.25-3ubuntu3
Global Positioning System - library
sudo apt install libgps30t64libqgpsmm-dev 3.25-3ubuntu3
Global Positioning System - Qt wrapper for libgps (development)
sudo apt install libqgpsmm-devlibqgpsmm30t64 3.25-3ubuntu3
Global Positioning System - Qt wrapper for libgps
sudo apt install libqgpsmm30t64source trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.