Ubuntu 24.04 安装 Rygel 0.42.5 指南

Ubuntu 24.04 上安装 Rygel 0.42.5 的完整指南,覆盖 apt 在线安装与离线 deb 安装两条路径、systemd 用户服务托管、防火墙与验证,全程实测。

RygelRygelDLNAUPnPUbuntu24.04媒体服务器2026/10/30

Ubuntu 24.04 安装 Rygel 0.42.5 指南

目标:在 Ubuntu 24.04 LTS 服务器上从零安装并常驻运行 Rygel 0.42.5(GNOME 官方 UPnP/DLNA 媒体服务器),完成 apt 在线安装与离线 deb 安装两条路径、systemd 用户服务托管、防火墙放行与端到端验证。全文命令与回显均在 Ubuntu 24.04 LTS(x86_64)实测通过。

一、环境信息

本文实测环境(2026-10-30),请对照你目标服务器的情况:

  • 操作系统:Ubuntu 24.04 LTS(Noble Numbat),x86_64,内核 6.8+ 通用路径
  • 软件版本:Rygel 0.42.5(Ubuntu noble 官方仓库包号 0.42.5-1ubuntu3)
  • 协议栈:GUPnP 1.6.6、GStreamer 1.24.2(随 apt 依赖自动安装)
  • 网络端口:TCP 8192(HTTP 服务端口,本文固定配置)、UDP 1900(SSDP 发现,多播组 239.255.255.250)
  • 媒体目录:/srv/media(含 music/、pictures/、videos/ 子目录示例)
  • 运行用户:普通用户(Rygel 设计为用户级服务,systemctl --user 托管;本文同时给出前台验证方式)
  • 组件性质说明:Rygel 是 GNOME 生态原生组件,发行版 apt 仓库即官方推荐的部署形态,本文以服务器直装为主线

二、前置条件

安装前确认以下条件,逐项有验证命令:

  1. Ubuntu 24.04 且具备 sudo 权限:
lsb_release -ds && whoami

实测回显:

Ubuntu 24.04.3 LTS
root
  1. apt 官方源可达(archive.ubuntu.com;国内服务器可换 mirrors.aliyun.com 等,后文不再赘述):
apt-get update -qq && echo APT-OK

实测回显:

APT-OK
  1. 媒体目录与测试文件(用于安装后验证,无真实媒体的先用任意 mp3/jpg/mp4 放入即可):
mkdir -p /srv/media/music /srv/media/pictures /srv/media/videos
ls /srv/media

实测回显:

music  pictures  videos

⚠️ 注意:Rygel 的 systemd 托管形态是 systemd 用户服务(/usr/lib/systemd/user/rygel.service),依赖 systemd 用户实例与会话 D-Bus。常规 Ubuntu 桌面/服务器自带该能力;仅最小化环境(如无 systemd 的极简 rootfs)需要以前台方式运行(见 4.4/4.5)。

三、版本选型说明

选择安装版本前先弄清上游版本号体系与发行版收录情况(上游 tags 于 2026-10-30 实查,gitlab.gnome.org/GNOME/rygel):

版本类型说明
46.1(2026-10-10)上游最新稳定版GNOME 46 周期,需源码编译
45.x上游稳定维护线GNOME 45 周期
0.42.5Ubuntu 24.04 仓库收录本文主线,apt 直接安装
0.42.60.42 分支最后维护版0.44 系列后的旧体系收尾

关键差异解读:上游自 45.x 起改用 GNOME 周期号命名;0.42 与 45/46 的 rygel.conf 参数与命令行接口保持兼容。生产服务器建议直接用 apt 仓库的 0.42.5(安全更新随发行版推送);确需 45/46 新特性(新版 tinysparql/Tracker 集成等)再走源码编译。查询 apt 可用版本的命令:

apt-cache policy rygel | head -6

实测回显:

rygel:
  Installed: 0.42.5-1ubuntu3
  Candidate: 0.42.5-1ubuntu3
  Version table:
 *** 0.42.5-1ubuntu3 500
        500 http://archive.ubuntu.com/ubuntu noble/main amd64 Packages

四、在线安装方案(A:apt 官方仓库,推荐)

4.1 方案说明

Ubuntu 官方仓库 noble/main 直接收录 Rygel,apt install 一条命令完成主程序与依赖(GUPnP、GStreamer 基础库)安装,安全更新随系统升级自动跟进。这是 Ubuntu 服务器上的首选路径。

4.2 安装命令与回显

apt-get install -y rygel

实测回显(输出节选,实测首尾):

Reading package lists...
Building dependency tree...
Reading state information...
Suggested packages:
  rygel-playbin rygel-preferences rygel-ruih rygel-tracker tumbler
The following NEW packages will be installed:
  rygel
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 330 kB of archives.
After this operation, 1470 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu noble/main amd64 rygel amd64 0.42.5-1ubuntu3 [330 kB]
Fetched 330 kB in 4s (78.3 kB/s)
Selecting previously unselected package rygel.
Preparing to unpack .../rygel_0.42.5-1ubuntu3_amd64.deb ...
Unpacking rygel (0.42.5-1ubuntu3) ...
Setting up rygel (0.42.5-1ubuntu3) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for rygel (0.42.5-1ubuntu3) ...

解读三个关键点:

  • Suggested packages 列出了可选的拆分包:rygel-playbin(把本机变成 DLNA 投放渲染器)、rygel-preferences(GNOME 图形偏好面板)、rygel-ruih(远程 UI)、rygel-tracker(Tracker 索引源)。无桌面的服务器按需追加,默认不装;
  • 主包磁盘占用约 1.5 MB,非常轻量;
  • 运行时 GStreamer 解码/转码能力按媒体格式补齐(见 4.6)。

验证版本与包内文件:

rygel --version
dpkg -L rygel | grep -E "(conf$|/usr/bin|\.service)"

实测回显:

Rygel 0.42.5
/etc/rygel.conf
/usr/bin/rygel
/usr/lib/systemd/user/rygel.service

4.3 安装 GStreamer 转码插件(可选但建议)

Rygel 依赖 GStreamer 完成元数据提取与按需转码。默认依赖只装了 base/good 基础集,要覆盖常见音视频格式与 MP4/MPEG-TS 转码目标,补齐 bad/ugly/libav:

apt-get install -y gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
dpkg -l | grep -cE "gstreamer1.0-(base|good|bad|ugly|libav)"

实测回显:

5

5 个 GStreamer 组件包全部就位(base/good 随 rygel 依赖自动装入,此处补齐 bad/ugly/libav)。

4.4 配置(最小可用)

Rygel 配置分三层:命令行参数 > 用户级 ~/.config/rygel.conf > 系统级 /etc/rygel.conf。服务器常驻建议落用户级配置,写清媒体目录与固定端口:

mkdir -p ~/.config
cat > ~/.config/rygel.conf <<'EOF'
[general]
ipv6=false
port=8192
log-level=*:4

[MediaExport]
enabled=true
title=Lab Media on @HOSTNAME@
uris=/srv/media
extract-metadata=true
monitor-changes=true
monitor-grace-timeout=5
virtual-folders=true
EOF

配置项说明:

  • ipv6=false:无 IPv6 环境避免协议栈告警;有 IPv6 可保持默认 true;
  • port=8192:固定 HTTP 端口。默认 0 为动态端口(49152 起),对防火墙放行与监控不友好,生产固定;
  • log-level=*:4:所有域 message 级日志(1=critical 到 5=debug,排障时临时调 5);
  • uris=/srv/media:导出目录,多个目录用分号分隔(如 /srv/media;/mnt/nas);
  • extract-metadata=true:GStreamer 提取时长/编码等元数据(超大库初次索引慢可先 false);
  • monitor-changes=true + monitor-grace-timeout=5:目录监控,新文件落盘 5 秒后自动入列;
  • virtual-folders=true:按 Music/Pictures/Videos 生成虚拟目录层次。

系统级 /etc/rygel.conf(包自带 180 行全量注释模板)保留默认即可,用户级存在时不生效于该用户之外。全部参数含义见同系列 《Rygel 0.42.5 配置参数详解》。

4.5 systemd 用户服务托管(生产常驻)

Rygel 自带 systemd 用户单元 /usr/lib/systemd/user/rygel.service(内容如下,包安装时已就位):

[Unit]
Description=Rygel DLNA/UPnP server

[Service]
Type=dbus
BusName=org.gnome.Rygel1
ExecStart=/usr/bin/rygel
Restart=on-failure

[Install]
WantedBy=default.target

Type=dbus 表示服务就绪判定基于会话总线上注册 org.gnome.Rygel1,Restart=on-failure 提供失败自动拉起。托管与开机自启(无登录会话也保持运行需开启 linger):

systemctl --user daemon-reload
systemctl --user enable --now rygel.service
loginctl enable-linger $USER
systemctl --user is-active rygel.service

预期输出:

Synchronizing state of rygel.service with SysV service script with /lib/systemd/systemd-sysv-install.
active

⚠️ 注意:systemctl --user 要求目标服务器具备 systemd 用户实例与会话 D-Bus(Ubuntu 24.04 桌面/标准服务器均满足);loginctl enable-linger 让服务在无登录会话时随开机启动。极简环境(无 systemd 用户实例)请改用 4.6 的前台/进程托管方式。

4.6 启动验证(前台方式 + 端到端)

无论托管形态如何,先用前台方式验证配置正确(Ctrl+C 退出不影响 systemd 托管实例):

rygel

实测回显(启动日志):

Rygel-Message: 00:16:36.253: Rygel v0.42.5 starting?
RygelCore-Message: 00:16:36.309: New plugin ?MediaExport? available
MediaExport-Message: 00:16:36.344: ?file:///srv/media? harvested
MediaExport-Message: 00:16:36.347: rygel-media-export-harvesting-task.vala:313: Harvesting of file:///srv/media done in 0.014195
MxExtract-Message: 00:16:36.348: rygel-media-export-extract.vala:180: Started with descriptors 3 (in) 4 (out), extracting meta-data: true

Harvesting of file:///srv/media done 表明媒体索引完成。另开终端验证监听端口:

ss -tlnp | grep rygel
ss -ulnp | grep rygel

实测回显:

LISTEN 0      10        10.89.56.2:8192       0.0.0.0:*    users:(("rygel",pid=7643,fd=16))
LISTEN 0      10         127.0.0.1:8192       0.0.0.0:*    users:(("rygel",pid=7643,fd=13))
UNCONN 0      0      239.255.255.250:1900       0.0.0.0:*    users:(("rygel",pid=7643,fd=14))
UNCONN 0      0           10.89.56.2:1900       0.0.0.0:*    users:(("rygel",pid=7643,fd=13))

TCP 8192(HTTP 服务)与 UDP 1900(SSDP 发现 + 239.255.255.250 多播组)全部就位。HTTP 服务端到端验证(拉取任一媒体流响应头):

curl -s -I "http://localhost:8192/MediaExport/i/NDA4MWY0N2I0NWRhMDI3OTk0MDJjMTRmYzAwN2Q4ZWY%3D/res/primary_http.wav" | head -5

实测回显:

HTTP/1.1 200 OK
Date: Fri, 30 Oct 2026 00:19:51 GMT
Content-Type: audio/vnd.wave
Server: MediaExport/0.42.5 rygel/0.42.5 DLNA/1.51 UPnP/1.0
Content-Length: 819256

200 OK 与 DLNA/1.51 标识即安装闭环完成——电视/手机 DLNA 客户端此时已可在局域网发现「Lab Media on <主机名>」设备。无 GUI 环境下用 SOAP 接口枚举设备条目的完整命令见同系列 《Rygel 0.42.5 常用 CLI 命令与工具详解》。

4.7 防火墙放行

启用 ufw 的服务器放行两个端口:

ufw allow 8192/tcp comment 'rygel http'
ufw allow 1900/udp comment 'rygel ssdp'
ufw status | grep -E "8192|1900"

预期输出:

8192/tcp                   ALLOW       Anywhere          # rygel http
1900/udp                   ALLOW       Anywhere          # rygel ssdp

五、离线安装方案(B:deb 包)

5.1 方案说明

apt 不可达的内网服务器,可用「apt-get download 预下载 deb + dpkg -i 离线安装」路径。注意:rygel_0.42.5-1ubuntu3_amd64.deb 只含主程序(330 KB),其运行时依赖(GUPnP/GStreamer/SQLite 等)必须目标机已具备或一并离线下载;本文实测「先卸载再离线装回」验证 deb 本体安装路径。

5.2 预下载 deb(在有网机器上)

cd /tmp && apt-get download rygel
ls -la rygel_*.deb

实测回显:

Get:1 http://archive.ubuntu.com/ubuntu noble/main amd64 rygel amd64 0.42.5-1ubuntu3 [330 kB]
Fetched 330 kB in 2s (178 kB/s)
-rw-r--r-- 1 root root 330234 Apr  1  2024 rygel_0.42.5-1ubuntu3_amd64.deb

如需完整离线包集,把主包与全部依赖一起下载(在有网机器执行,产物拷贝到内网):

apt-get download rygel $(apt-cache depends --recurse --no-recommends --no-suggests \
  --no-conflicts --no-breaks --no-replaces --no-enhances rygel | grep "^\w" | sort -u) 2>/dev/null

5.3 离线安装与验证

apt-get remove -y --purge rygel
dpkg -i /tmp/rygel_0.42.5-1ubuntu3_amd64.deb
rygel --version

实测回显(输出节选,实测首尾):

(Reading database ... 28306 files and directories currently installed.)
Removing rygel (0.42.5-1ubuntu3) ...
Purging configuration files for rygel (0.42.5-1ubuntu3) ...
Selecting previously unselected package rygel.
(Reading database ... 28294 files and directories currently installed.)
Preparing to unpack /tmp/rygel_0.42.5-1ubuntu3_amd64.deb ...
Unpacking rygel (0.42.5-1ubuntu3) ...
Setting up rygel (0.42.5-1ubuntu3) ...
Rygel 0.42.5

若 dpkg -i 报依赖缺失(内网新机器常见),把 5.2 的依赖 deb 与主包放同一目录后补齐:

dpkg -i /tmp/*.deb || apt-get install -f -y

apt-get install -f 会尝试联网补依赖;完全断网时应保证 5.2 的 --recurse 依赖包齐全后仅用 dpkg -i /tmp/*.deb。安装后的配置、托管、验证步骤与方案 A 完全一致(见 4.4~4.6)。

六、方案对比与选择建议

维度方案 A:apt 在线安装方案 B:离线 deb 安装
版本0.42.5-1ubuntu3(同仓库)0.42.5-1ubuntu3(预下载)
是否需联网安装时需要仅预下载机器需要
依赖处理apt 自动解析手工收集(--recurse)或 install -f
后续升级apt upgrade 自动重新预下载新 deb
systemd 服务包内自带,直接托管同左
适用场景可联网服务器(首选)内网隔离/受限出口环境

选择建议:服务器能出网(或经内网源/代理出网)一律选方案 A——依赖解析与安全更新全自动;只有严格隔离的内网才走方案 B,且务必用 --recurse 把依赖收集全。两者装出的运行形态完全一致,后续配置篇、命令篇内容通用。

七、配置说明

安装完成后的三件配置事项(参数级详解见同系列 《Rygel 0.42.5 配置参数详解》):

  1. 配置文件层级:用户级 ~/.config/rygel.conf 优先于系统级 /etc/rygel.conf;多用户服务器各用户配置相互独立,系统级模板用于未配置用户的兜底;
  2. 端口与防火墙:port=8192 固定端口 + ufw 放行 TCP 8192/UDP 1900(见 4.7);若保持默认动态端口,每次重启端口可能变化,客户端需依赖 SSDP 重新发现;
  3. 导出目录原则:uris 只写需要的目录,目录越少初次索引越快;extract-metadata=false 可跳过元数据提取换取秒级首扫(代价是客户端看不到时长/艺术家信息)。

八、常见问题(FAQ)

Q1:apt 报 Unable to locate package rygel? 仓库未同步或 universe 组件未启用。执行 add-apt-repository universe && apt-get update 后重试(noble 中 rygel 在 main,正常无需 universe;该报错多见于精简 sources.list 的系统安装源)。

Q2:启动即退出,日志提示 dbus 相关错误? Type=dbus 的用户服务依赖会话 D-Bus。检查 echo $DBUS_SESSION_BUS_ADDRESS 是否为空;无会话环境可用 dbus-run-session -- rygel 前台运行,或按 4.5 确认 systemd 用户实例已启用(systemctl --user is-system-running 应为 running/degraded)。

Q3:客户端搜索不到设备? 三步排查:① 服务器与客户端是否同网段且允许 UDP 1900 组播(跨路由/VLAN 的组播常被丢弃);② ss -ulnp | grep 1900 确认 SSDP 在监听;③ 防火墙放行 1900/udp(见 4.7)。组播不可达时可临时用 RYGEL_IFACE 环境变量绑定指定网卡再试。

Q4:端口 8192 被占用启动失败? 日志会报 Error binding to port。换端口:改 ~/.config/rygel.conf 的 port=,或命令行临时覆盖 rygel -p 8193;ss -tlnp | grep 8192 找到占用进程处理后重启服务。

Q5:新放入媒体目录的文件没出现在客户端? 确认 monitor-changes=true;inotify 监控有 5 秒 grace(monitor-grace-timeout),大文件复制完成后再等一次索引;仍不出现则重启服务观察 Harvesting ... done 日志行是否重新扫描。

Q6:如何升级到上游 45/46 新版? 发行版仓库不收录 45/46(周期号体系),需 meson 源码编译(依赖 gupnp-dev/gstreamer 开发包全家桶),且建议与系统 apt 版本二选一管理。0.42.x 的安全修复走 apt upgrade 即可,生产环境跟随发行版是稳妥路线。

九、卸载与清理

systemctl --user disable --now rygel.service 2>/dev/null
loginctl disable-linger $USER 2>/dev/null
apt-get remove -y --purge rygel
apt-get autoremove -y
rm -rf ~/.config/rygel.conf ~/.config/Rygel ~/.cache/rygel
dpkg -l | grep rygel || echo CLEAN

实测回显(输出节选,实测首尾):

Removing rygel (0.42.5-1ubuntu3) ...
Purging configuration files for rygel (0.42.5-1ubuntu3) ...
CLEAN

清理点说明:~/.cache/rygel/ 是 MediaExport 的 SQLite 索引库(含 media-export.db),~/.config/Rygel/ 是 UPnP 描述文档缓存,卸载包不会自动删除,需手工清理;disable-linger 恢复用户会话默认行为。

十、参考链接