# 使用 Homebrew, apk, dnf, MacPorts, pacman, apt, zypper 安装 gupnp

查看 gupnp 的安装路径、可执行文件、元数据以及面向 AI 代理工作流的安全说明。

## 安装

```sh
sudo av install brew:gupnp
```

其他安装命令:

### macOS

- Homebrew (100%):

```sh
brew install gupnp
```

  证据: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install gupnp
```

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

### Linux

- apk (92%):

```sh
sudo apk add gupnp
```

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

- dnf (92%):

```sh
sudo dnf install gupnp
```

  证据: Fedora Rawhide package metadata: gupnp from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst

- pacman (92%):

```sh
sudo pacman -S gupnp
```

  证据: Arch Linux sync databases: gupnp from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- Debian apt (92%):

```sh
sudo apt install gir1.2-gupnp-1.6
```

  证据: Debian stable package indexes: gir1.2-gupnp-1.6 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- zypper (92%):

```sh
sudo zypper install gupnp-doc
```

  证据: openSUSE Tumbleweed package metadata: gupnp-doc from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst

## 软件包事实

- **软件包键:** brew:gupnp
- **软件包管理器:** Homebrew
- **版本:** 1.6.10
- **来源摘要:** Framework for creating UPnP devices and control points
- **主页:** <https://gitlab.gnome.org/GNOME/gupnp>
- **最后更新:** 2026-06-25T13:37:44+02:00
- **已生成:** 2026-08-03T19:37:03+00:00

## 可执行文件

- gupnp-binding-tool-1.6 (别名)

## 安装行为

- Bottle: 不可用

## 版本和新鲜度

- 页面生成时间: 2026-08-03
- 管理器版本: 1.6.10
## 项目历史与用法

GUPnP is GNOME's GObject-based framework for creating UPnP devices and control points. It wraps resource discovery, device description, control, eventing, presentation, and HTTP integration behind GLib-friendly C APIs.

### 项目历史

The README says GUPnP was born from frustration with libupnp and its threading model. GUPnP chose a single-threaded asynchronous design integrated with the GLib main loop, aiming to provide libupnp's feature set while hiding much of the UPnP protocol machinery behind object-oriented APIs.

The framework is built from GSSDP for SSDP discovery and announcement plus GUPnP for the UPnP protocol layers. It intentionally leaves higher-level standardized resources, such as MediaServer helpers, to companion libraries including GUPnP AV and related projects.

GNOME release and Git history show GUPnP as a long-lived networking library: the repository has a gupnp-0.10 tag from May 2008, the GNOME archive contains 0.x tarball lines, 1.0.0 was published in September 2016, and the 1.6 branch moved the stack through libsoup3-era maintenance.

### 采用历史

GUPnP is packaged across Homebrew, Alpine, Debian/Ubuntu GIR packages, Fedora, MacPorts, Nix, Arch, and openSUSE because it is a shared library used by GNOME and media/networking applications rather than a single end-user program.

Its adoption is coupled to GSSDP, GUPnP AV, GUPnP DLNA, and GUPnP Tools. Distributions often split runtime libraries, introspection bindings, documentation, and tool packages so applications and developers can depend on the minimum needed pieces.

### 使用方式

Developers use GUPnP to implement devices and control points that discover UPnP services, fetch device descriptions, invoke service actions, subscribe to events, and expose devices on the network. The official documentation includes both client and server tutorials.

The Homebrew formula exposes `gupnp-binding-tool-1.6`, but the package's main value is library and introspection support for applications using the GUPnP API.

### 为什么软件包爱好者会关心

GUPnP matters to package maintainers because it is a classic shared-library stack with ABI/API versioning, GIR bindings, documentation, and companion tools. A small version bump can affect media sharing, device discovery, and GNOME networking tools across a distribution.

It is also a case study in replacing a lower-level C networking library with a GLib-native abstraction that fits desktop event loops and language bindings.

### 时间线

- 2008: gupnp-0.10 tag appears in the GNOME repository.
- 2011: GNOME release archive hosts 0.x GUPnP tarball directories.
- 2016: GUPnP 1.0.0 appears in the GNOME release archive.
- 2022: 1.6.0 NEWS records a stable re-release of the 1.5.4 development line.
- 2024: 1.6-series NEWS records fixes around IPv6 handling, NetworkManager contexts, introspection, and libsoup/libxml compatibility.
- 2026: 1.6-series NEWS records GSSDP requirement and IPv6 host-header validation fixes.

### Related projects

- GSSDP provides SSDP discovery and announcement using GObject.
- GUPnP AV provides helper objects for UPnP A/V profiles.
- GUPnP DLNA provides DLNA-oriented helpers around media metadata and profiles.
- GUPnP Tools packages utilities and sample control points for testing GUPnP networks.
- libsoup provides HTTP handling, and GLib/GObject provide the object system and main loop.

### 来源

- <https://download.gnome.org/sources/gupnp/>
- <https://download.gnome.org/sources/gupnp/1.0/>
- <https://gitlab.gnome.org/GNOME/gupnp>
- <https://gitlab.gnome.org/GNOME/gupnp/-/raw/master/NEWS>
- <https://gitlab.gnome.org/GNOME/gupnp/-/raw/master/README.md>
- <https://gnome.pages.gitlab.gnome.org/gupnp/docs/>
- <https://gnome.pages.gitlab.gnome.org/gupnp/docs/client-tutorial.html>
- <https://gnome.pages.gitlab.gnome.org/gupnp/docs/server-tutorial.html>


## 安全说明

narrow executable package without higher-risk signals.

- **Geiger 风险:** 绿色 / 低
- narrow executable package without higher-risk signals

## 其他软件包管理器记录

- Debian apt - gir1.2-gupnp-1.6 - 1.6.8-2: normalized package name match | Debian stable package indexes: gir1.2-gupnp-1.6 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GObject introspection data for the GUPnP library | https://gnome.pages.gitlab.gnome.org/gupnp/docs/
- Debian apt - libgupnp-1.6-0 - 1.6.8-2: normalized package name match | Debian stable package indexes: libgupnp-1.6-0 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GObject-based library for UPnP | https://gnome.pages.gitlab.gnome.org/gupnp/docs/
- Debian apt - libgupnp-1.6-dev - 1.6.8-2: normalized package name match | Debian stable package indexes: libgupnp-1.6-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GObject-based library for UPnP (development files) | https://gnome.pages.gitlab.gnome.org/gupnp/docs/
- Debian apt - libgupnp-doc - 1.6.8-2: normalized package name match | Debian stable package indexes: libgupnp-doc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GObject-based library for UPnP (documentation) | https://gnome.pages.gitlab.gnome.org/gupnp/docs/
- Ubuntu apt - gir1.2-gupnp-1.6 - 1.6.6-1build3: normalized package name match | Ubuntu 24.04 LTS package indexes: gir1.2-gupnp-1.6 from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | GObject introspection data for the GUPnP library | http://live.gnome.org/GObjectIntrospection
- Ubuntu apt - libgupnp-1.6-0 - 1.6.6-1build3: normalized package name match | Ubuntu 24.04 LTS package indexes: libgupnp-1.6-0 from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | GObject-based library for UPnP | https://wiki.gnome.org/Projects/GUPnP
- Ubuntu apt - libgupnp-1.6-dev - 1.6.6-1build3: normalized package name match | Ubuntu 24.04 LTS package indexes: libgupnp-1.6-dev from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GObject-based library for UPnP (development files) | https://wiki.gnome.org/Projects/GUPnP
- Ubuntu apt - libgupnp-doc - 1.6.6-1build3: normalized package name match | Ubuntu 24.04 LTS package indexes: libgupnp-doc from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | GObject-based library for UPnP (documentation) | https://wiki.gnome.org/Projects/GUPnP
- apk - gupnp - 1.6.10-r0: normalized package name match | Alpine Linux edge package indexes: gupnp from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | GObject-based UPNP framework | https://gitlab.gnome.org/GNOME/gupnp
- apk - gupnp-dev - 1.6.10-r0: normalized package name match | Alpine Linux edge package indexes: gupnp-dev from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | GObject-based UPNP framework (development files) | https://gitlab.gnome.org/GNOME/gupnp
- apk - gupnp-doc - 1.6.10-r0: normalized package name match | Alpine Linux edge package indexes: gupnp-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | GObject-based UPNP framework (documentation) | https://gitlab.gnome.org/GNOME/gupnp
- dnf - gupnp - 1.6.10-3.fc45: normalized package name match | Fedora Rawhide package metadata: gupnp from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | A framework for creating UPnP devices & control points | https://www.gupnp.org/
- dnf - gupnp-devel - 1.6.10-3.fc45: normalized package name match | Fedora Rawhide package metadata: gupnp-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Development package for gupnp | https://www.gupnp.org/
- dnf - gupnp-docs - 1.6.10-3.fc45: normalized package name match | Fedora Rawhide package metadata: gupnp-docs from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Documentation files for gupnp | https://www.gupnp.org/
- pacman - gupnp - 1:1.6.10-1: normalized package name match | Arch Linux sync databases: gupnp from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | GObject-based UPNP framework | https://wiki.gnome.org/Projects/GUPnP
- zypper - gupnp-doc - 1.6.10-1.3: normalized package name match | openSUSE Tumbleweed package metadata: gupnp-doc from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Documentation for gupnp | http://www.gupnp.org/


## Combined YAML source

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


## 来源

- 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
