Ubuntu 24.04 安装 Rygel 0.42.5 指南
Ubuntu 24.04 上安装 Rygel 0.42.5 的完整指南,覆盖 apt 在线安装与离线 deb 安装两条路径、systemd 用户服务托管、防火墙与验证,全程实测。
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 仓库即官方推荐的部署形态,本文以服务器直装为主线
二、前置条件
安装前确认以下条件,逐项有验证命令:
- Ubuntu 24.04 且具备 sudo 权限:
lsb_release -ds && whoami
实测回显:
Ubuntu 24.04.3 LTS
root
- apt 官方源可达(
archive.ubuntu.com;国内服务器可换 mirrors.aliyun.com 等,后文不再赘述):
apt-get update -qq && echo APT-OK
实测回显:
APT-OK
- 媒体目录与测试文件(用于安装后验证,无真实媒体的先用任意 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.5 | Ubuntu 24.04 仓库收录 | 本文主线,apt 直接安装 |
| 0.42.6 | 0.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 配置参数详解》):
- 配置文件层级:用户级
~/.config/rygel.conf优先于系统级/etc/rygel.conf;多用户服务器各用户配置相互独立,系统级模板用于未配置用户的兜底; - 端口与防火墙:
port=8192固定端口 + ufw 放行 TCP 8192/UDP 1900(见 4.7);若保持默认动态端口,每次重启端口可能变化,客户端需依赖 SSDP 重新发现; - 导出目录原则:
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 恢复用户会话默认行为。
十、参考链接
- Ubuntu noble 包页:https://packages.ubuntu.com/noble/rygel
- rygel(1) 手册:https://manpages.ubuntu.com/manpages/noble/en/man1/rygel.1.html
- rygel.conf(5) 手册:https://manpages.ubuntu.com/manpages/noble/en/man5/rygel.conf.5.html
- 上游仓库与版本:https://gitlab.gnome.org/GNOME/rygel(tags 于 2026-10-30 实查,最新稳定 46.1)
- 选型背景:《Rygel 介绍与选型指南》
- 同系列:《Rygel 0.42.5 配置参数详解》、《Rygel 0.42.5 常用 CLI 命令与工具详解》