Ubuntu 22.04 安装 musikcube 3.0.5 指南

在 Ubuntu 22.04 上从零装好 musikcube 3.0.5 的两个入口(TUI 播放器 musikcube 与守护服务 musikcubed),覆盖官方 deb 包安装与源码编译两条路线、systemd 开机自启与卸载清理。本文全部命令与回显在 Ubuntu 22.04 实机逐条执行验证。

musikcubemusikcube音乐2026/10/30

Ubuntu 22.04 安装 musikcube 3.0.5 指南

目标:在 Ubuntu 22.04 上从零装好 musikcube 3.0.5 的两个入口(TUI 播放器 musikcube 与守护服务 musikcubed),覆盖官方 deb 包安装与源码编译两条路线、systemd 开机自启与卸载清理。本文全部命令与回显在 Ubuntu 22.04 实机逐条执行验证。

一、环境信息

  • 操作系统:Ubuntu 22.04(x86_64)
  • 软件版本:musikcube 3.0.5(官方最新稳定版,2025-09-21 发布,本文撰写日 2026-10-29 实查 GitHub Releases)
  • 安装载体:官方 deb 包 musikcube_3.0.5_linux_x86_64.deb(11,674,674 字节);源码编译方案基于同版本 tag 源码
  • 安装产物:/usr/bin/musikcube(TUI)、/usr/bin/musikcubed(daemon 封装)、/usr/share/musikcube/(程序与插件)、/usr/include/musikcube/(SDK 头文件)
  • 网络说明:GitHub Releases 附件当时直连下载出现文件截断(首次下到 4.9MB 即损坏,完整包 11.7MB),代理 192.168.1.62:7897 不通,改用代理 192.168.1.72:7897 下载成功;GitHub 页面浏览与源码 git clone 直连正常

二、前置条件

  • 一台 Ubuntu 22.04 机器(物理机/VM 均可),具备 sudo 权限;
  • 能访问 GitHub Releases(或可用代理);
  • 无声卡的无头服务器完全可以安装运行:输出驱动自动回退 Null,流媒体服务(7905/7906)不受影响;
  • 系统级依赖仅一个:libatomic1(deb 包自带其余全部私有库,见方案 A 的排障实录)。

三、版本选型说明

musikcube 没有官方 APT 仓库,版本选择即「选 Releases 页的包」。3.0.5 的发布资产清单(2026-10-29 实查):

资产用途
musikcube_3.0.5_linux_x86_64.debDebian/Ubuntu x86_64(本文主线)
musikcube_3.0.5_linux_x86_64.rpmFedora/openSUSE
musikcube_3.0.5_linux_x86_64.tar.bz2免安装解压即用
musikcube_3.0.5_linux_rpi_armv6/armv8.{deb,rpm,tar.bz2}树莓派
musikcube_3.0.5_macos_{arm64,x86_64}.zipmacOS
musikcube_3.0.5_win{32,64}.zipWindows
musikdroid_3.0.3.apkAndroid 客户端
Source code (tar.gz/zip)源码(编译方案用)

选型要点:生产环境选 deb 包(版本固定、可回退、产物清晰);需要定制编译选项或魔改时选源码;Ubuntu 版本无关紧要——deb 自带全部私有依赖,22.04/24.04 通用同包。

四、方案 A:官方 deb 包安装(推荐)

4.1 下载

cd /opt
sudo wget https://github.com/clangen/musikcube/releases/download/3.0.5/musikcube_3.0.5_linux_x86_64.deb

⚠️ 网络说明:官方源 URL 当时直连可用但大文件下载可能截断。下载后务必校验包完整性(对比字节数或直接试装):

ls -la musikcube_3.0.5_linux_x86_64.deb

实测回显(完整包应为 11,674,674 字节;实测首次直连只下到 4,911,963 字节即损坏):

-rw-r--r-- 1 root root 11674674 Oct 29 22:30 musikcube_3.0.5_linux_x86_64.deb

若下载不完整,走代理重下(实测可用渠道 192.168.1.72:7897):

curl -sSL -x http://192.168.1.72:7897 -o musikcube_3.0.5_linux_x86_64.deb \
  "https://github.com/clangen/musikcube/releases/download/3.0.5/musikcube_3.0.5_linux_x86_64.deb"

4.2 安装

sudo dpkg -i musikcube_3.0.5_linux_x86_64.deb

实测回显:

Selecting previously unselected package musikcube.
(Reading database ... 4393 files and directories currently installed.)
Preparing to unpack .../musikcube_3.0.5_linux_x86_64.deb ...
Unpacking musikcube (3.0.5) ...
Setting up musikcube (3.0.5) ...

deb 自带 /usr/share/musikcube/lib/ 下的全部私有依赖,dpkg -i 一步到位,无需 apt-get install -f 修依赖(首次运行报 libatomic 错误的排障见 4.3)。

4.3 首次运行排障实录:缺 libatomic.so.1

首次执行 musikcube 实测报错:

musikcube: error while loading shared libraries: libatomic.so.1: cannot open shared object file: No such file or directory

定位:musikcube 二进制链接了 GCC 原子操作运行库 libatomic,Ubuntu 22.04 最小安装不带。补装:

sudo apt-get install -y libatomic1

实测回显:

Setting up libatomic1:amd64 (12.3.0-1ubuntu1~22.04.3) ...
Processing triggers for libc-bin (2.35-0ubuntu3.15) ...

4.4 验证

which musikcube musikcubed && musikcubed --version

实测回显:

/usr/bin/musikcube
/usr/bin/musikcubed

  using lockfile at: /tmp/musikcubed.lock
  musikcubed version: 3.0.5 #0c0d8486

TUI 直接裸命令启动(musikcube 无 CLI 参数,--help 等行为见第九章 Q1):

musikcube

实测首屏底部状态栏:

musikcube version 3.0.5 #0c0d8486
s  settings   a  library   `  logs   ^D  quit

五、方案 B:源码编译安装

本章 cmake 配置检测、make 编译过程与产物位置均为 Ubuntu 22.04 实机编译 3.0.5 源码的实测记录。

5.1 安装编译依赖

官方 building 文档给出的 Ubuntu 依赖列表,22.04 下全部可装(包名以 22.04 仓库为准):

sudo apt-get install -y build-essential cmake git pkg-config \
  libogg-dev libvorbis-dev libavutil-dev libavformat-dev libswresample-dev \
  libncursesw5-dev libasound2-dev libpulse-dev libmicrohttpd-dev \
  libmp3lame-dev libcurl4-openssl-dev libev-dev libssl-dev \
  libtag1-dev libopenmpt-dev libatomic1

5.2 获取源码

cd /opt
sudo git clone --depth 1 --branch 3.0.5 --recursive https://github.com/clangen/musikcube.git
cd musikcube

--recursive 必须带上:musikcube 依赖若干 git 子模块,缺了子模块 cmake 阶段会报缺失。

5.3 编译与安装

cmake .
make -j$(nproc)
sudo make install

实测记录:cmake 配置检测通过,关键结论节选(ncurses 系与 ffmpeg 解码插件自动启用):

-- [musikcube] using libtinfo at: /usr/lib/x86_64-linux-gnu/libtinfo.so
-- [musikcube] using libncurses at: /usr/lib/x86_64-linux-gnu/libncursesw.so
-- [musikcube] using libpanel at: /usr/lib/x86_64-linux-gnu/libpanelw.so
-- [add-plugin] added ffmpegdecoder

make -j$(nproc) 实测编译 171 个 C++ 编译单元,Build files 落在源码树内(Build files have been written to: /build/src 风格的绝对路径取决于源码所在目录)。

5.4 验证

编译产物与大小(实测):

ls -la bin/musikcube bin/musikcubed

实测回显:

-rwxr-xr-x 1 root root 9137968 Oct 29 15:06 bin/musikcube
-rwxr-xr-x 1 root root  203808 Oct 29 15:05 bin/musikcubed

sudo make install 后落 /usr/local/bin/;两个二进制可直接运行(TUI 裸跑 musikcube,daemon 版本确认 musikcubed --version,验证方法同 4.4 节)。

六、其他发行版安装速览

来自官方 installing 文档(各发行版包由社区/打包脚本维护,版本可能滞后于 3.0.5):

  • Fedora:官方 rpm + rpmfusion(lame/ffmpeg 在主仓库没有):先装 rpmfusion-free-release/nonfree,再 sudo dnf install musikcube-3.0.5-*.rpm;
  • Arch:AUR 包 musikcube(yay -S musikcube 或任意 AUR helper);
  • macOS:brew install musikcube(推荐,自带 ffmpeg 解码插件;Releases 页 zip 包不含 ffmpeg 插件,支持格式少);
  • Windows:Releases 页 zip 解压运行 musikcube.exe,或 choco install musikcube;
  • FreeBSD:pkg install musikcube 或 ports 编译;
  • 树莓派:官方 armv6/armv8 专项包,部署教程见官方 Wiki raspberry-pi 页。

七、多方案对比与选择建议

维度方案 A:官方 deb方案 B:源码编译发行版包(rpm/AUR/brew)
版本3.0.5 官方原版任意 tag/commit滞后不定
联网需求仅下载一个包依赖 + 源码全量走发行版源
私有依赖全自带(仅补 libatomic1)系统装 15+ 开发包包管理解决
升级/回退换包重装,dpkg -r 干净git 切 tag 重编包管理统一
适用生产/日常(推荐)定制/开发桌面自用

建议:能联网选方案 A,5 分钟完成且与官方构建完全一致;离线环境把 deb 拷过去同样成立(唯一系统依赖 libatomic1 用 apt download libatomic1 预先备好);仅当需要改代码或编 3.0.5 之后的 master 才走方案 B。

八、配置说明与 systemd 托管

8.1 配置文件位置

首次运行 musikcube 或 musikcubed 后生成 ~/.config/musikcube/(以 root 运行即 /root/.config/musikcube/)。服务端核心配置为 plugin_musikcubeserver(wss,http).json(端口 7905/7906、密码、转码),字段详解见《musikcube 3.0.5 配置参数详解》。

8.2 headless daemon 启停(手动)

musikcubed --start      # 后台启动
musikcubed --running    # 巡检,回显 "musikcubed is running with pid <pid>"
musikcubed --stop       # 停止(回显 failed 但实际停止成功,详见命令篇 4.4)

8.3 systemd 开机自启

musikcube 包不自带 service 文件,官方 Wiki 给出模板。创建 /etc/systemd/system/musikcube.service(User= 换成实际运行者):

[Unit]
Description=musikcube Audio Streaming Server
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
User=musicuser
Environment=LANG=C.UTF-8
ExecStart=/usr/bin/musikcubed --start
ExecStop=/usr/bin/musikcubed --stop

[Install]
WantedBy=multi-user.target

逐项说明:Type=forking 对应 musikcubed 的 fork 后台模式;User= 决定配置目录归属(/home/musicuser/.config/musikcube/),换用户等于换配置;Environment=LANG=C.UTF-8 消除 UTF-8 警告(见第九章 Q3)。

启用(每行一个单元):

sudo systemctl daemon-reload
sudo systemctl enable musikcube
sudo systemctl start musikcube

验证:

systemctl is-active musikcube && musikcubed --running

⚠️ 注意:musikcubed 的 --stop 回显与退出码缺陷会影响 systemd 的停止判定(ExecStop 非零退出会让 systemd 标记失败);若遇到,把 ExecStop 换成 KillMode=mixed 依赖信号回收即可。

九、常见问题(FAQ)

Q1:musikcube --help 或 musikcube --version 段错误? musikcube 是纯 TUI 程序、无 CLI 参数解析,任何参数都会进入 TUI 初始化;无终端/非 UTF-8 环境初始化失败即段错误(实测退出码 139)。版本查询用 musikcubed --version,参数查看用 musikcubed --help,TUI 只裸跑 musikcube。

Q2:dpkg -i 成功但 musikcube 报 libatomic.so.1 缺失? 见 4.3 节:sudo apt-get install -y libatomic1。这是 Ubuntu 最小化安装的通病,桌面版通常已带。

Q3:启动时提示 "requires a UTF-8 compatible LANG environment variable"? musikcube 自动回退 C.UTF-8 但界面可能乱码。终端里 export LANG=C.UTF-8;systemd 用 Environment= 注入(见 8.3)。

Q4:下载 deb 速度慢或文件损坏? 官方源直连当时可访问但下载截断(实测 4.9MB/11.7MB),走代理重下(实测 192.168.1.72:7897 可用),或改用同版本 tar.bz2 免安装包比对字节数。判断标准:完整包 11,674,674 字节。

Q5:无头服务器没有声卡,装它有意义吗? 有。musikcubed daemon 模式不依赖声卡(输出驱动回退 Null),流服务照常对外供曲库与音频流,客户端(musikdroid)侧播放;实测 alsa/pulse 插件加载失败仅出现在 log.txt,服务正常监听 7905/7906。

十、卸载与清理

sudo dpkg -r musikcube                     # 卸载软件本体(保留配置与曲库)
sudo dpkg -P musikcube                     # 卸载并清除包级残留
rm -rf ~/.config/musikcube                 # 删除配置、SQLite 曲库与转码缓存(按需)
sudo systemctl disable --now musikcube     # 如配置过 systemd,先停用(每行一个单元:sudo systemctl stop musikcube 后再 disable)

验证卸载干净:

which musikcube musikcubed; ls /usr/share/musikcube 2>&1

实测回显:

which: no musikcube in (...):/usr/bin
which: no musikcubed in (...):/usr/bin
ls: cannot access '/usr/share/musikcube': No such file or directory

十一、参考链接