4个步骤搞定Linux版wiliwili打包发布
2026-04-22 10:05:33作者:侯霆垣
从环境搭建到Debian软件包制作的全流程解析
wiliwili是一款专为手柄控制设计的跨平台B站客户端,支持多设备运行。本文将通过需求分析、核心流程、关键技巧和常见问题四个模块,详细介绍如何在Linux系统中完成该应用的Debian软件包制作,帮助开发者实现从源码到可安装软件的完整转化。
一、需求分析:明确打包核心要素
1.1 功能需求
- 可执行程序完整性:确保编译后的二进制文件包含所有核心功能模块
- 桌面环境集成:提供正确的桌面快捷方式和图标显示
- 依赖管理:自动处理运行时所需的系统库文件
- 架构适配:支持主流Linux架构(如amd64、arm64)
1.2 项目资源定位
- 构建配置:[CMakeLists.txt](项目根目录构建脚本)
- 桌面配置:[scripts/linux/cn.xfangfang.wiliwili.desktop](应用启动描述文件)
- 图标资源:[scripts/linux/icons/](多尺寸应用图标集合)
- 打包模板:[scripts/deb/switchroot-bionic/](Debian控制文件参考)
二、核心流程:从源码到软件包的转化
2.1 环境准备
🔧 操作要点:
- 安装基础编译工具链:
sudo apt install build-essential cmake git - 安装依赖库:
sudo apt install libmpv-dev libcurl4-openssl-dev libssl-dev libwebp-dev - 获取源码:
git clone https://gitcode.com/GitHub_Trending/wi/wiliwili
📝 注意事项:
- 确保系统已安装OpenGL开发库(如libgl1-mesa-dev)
- 建议使用Ubuntu 20.04或Debian 11及以上版本
2.2 应用程序构建
🔧 操作要点:
- 创建构建目录:
mkdir -p build && cd build - 生成Makefile:
cmake .. -DPLATFORM_DESKTOP=ON -DCMAKE_BUILD_TYPE=Release - 编译项目:
make -j$(nproc)
📝 注意事项:
- 编译过程需2GB以上内存,低配置系统建议减少并行任务数
- 若出现依赖错误,检查[CMakeLists.txt]中的依赖声明是否完整
2.3 打包资源整理
🔧 操作要点:
- 生成图标:
cd scripts/linux && chmod +x gen_icons.sh && ./gen_icons.sh - 创建Debian目录结构:
wiliwili-deb/ ├── DEBIAN/ │ ├── control │ ├── postinst │ └── prerm └── usr/ ├── bin/ ├── share/applications/ └── share/icons/hicolor/ - 复制文件到对应目录:
- 可执行文件→usr/bin/
- 桌面文件→usr/share/applications/
- 图标文件→usr/share/icons/hicolor/[尺寸]/apps/
📝 注意事项:
- 确保所有文件权限正确(可执行文件设为755)
- 图标尺寸需包含16x16、32x32、48x48、64x64、128x128和256x256
2.4 Debian包生成
🔧 操作要点:
- 编辑控制文件:修改DEBIAN/control中的版本号和架构信息
- 添加维护脚本:编写postinst(安装后)和prerm(卸载前)脚本
- 构建软件包:
dpkg-deb --build wiliwili-deb
📝 注意事项:
- 控制文件中Depends字段需根据目标系统调整依赖库版本
- 生成的.deb文件需通过
lintian工具检查潜在问题
图1:wiliwili客户端主界面展示,显示视频推荐和播放功能
三、关键技巧:提升打包质量的实用方法
3.1 依赖处理策略
- 使用
dpkg-shlibdeps自动分析运行时依赖:dpkg-shlibdeps -O wiliwili-deb/usr/bin/wiliwili - 对非标准依赖,可使用
dh_make工具生成debian目录框架
3.2 版本管理规范
- 版本号格式:主版本.次版本.修订号-发布号(如1.6.0-1)
- 在控制文件中使用
${DEB_VERSION_UPSTREAM}变量实现版本自动替换
3.3 测试验证方法
- 本地安装测试:
sudo dpkg -i wiliwili-deb.deb - 依赖检查:
ldd /usr/bin/wiliwili确认所有库文件都能正确加载 - 桌面集成测试:检查应用菜单是否显示、图标是否正常
四、常见问题:打包过程中的解决方案
4.1 编译错误
-
问题:MPV库链接失败 解决:安装libmpv-dev并确保版本≥0.32.0,或在cmake时指定MPV路径
-
问题:WebP支持缺失 解决:安装libwebp-dev并重新运行cmake
4.2 打包警告
-
问题:"缺少依赖信息" 解决:使用
dpkg-shlibdeps生成依赖列表并更新control文件 -
问题:"图标缓存未更新" 解决:在postinst脚本中添加
update-icon-caches /usr/share/icons/hicolor/*
五、兼容性测试清单
- ✅ Debian 11 (Bullseye) amd64
- ✅ Ubuntu 20.04 LTS amd64
- ✅ Ubuntu 22.04 LTS amd64
- ✅ Debian 11 arm64 (树莓派4)
- ⚠️ Ubuntu 18.04 LTS (需手动安装部分依赖)
六、版本迭代记录
- v1.5.0:初始打包支持,基础功能实现
- v1.5.2:修复图标显示问题,完善依赖声明
- v1.6.0:增加arm64架构支持,优化桌面集成
- v1.6.1:修复postinst脚本权限问题,提升兼容性
通过以上步骤,开发者可以系统地完成wiliwili的Debian软件包制作。建议在每次版本更新时,同步更新控制文件中的版本信息和依赖声明,确保软件包的质量和兼容性。如有复杂场景需求,可参考项目中提供的Dockerfile进行自动化构建流程设计。
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0146- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
MiniCPM-V-4.6这是 MiniCPM-V 系列有史以来效率与性能平衡最佳的模型。它以仅 1.3B 的参数规模,实现了性能与效率的双重突破,在全球同尺寸模型中登顶,全面超越了阿里 Qwen3.5-0.8B 与谷歌 Gemma4-E2B-it。Jinja00
Intern-S2-PreviewIntern-S2-Preview,这是一款高效的350亿参数科学多模态基础模型。除了常规的参数与数据规模扩展外,Intern-S2-Preview探索了任务扩展:通过提升科学任务的难度、多样性与覆盖范围,进一步释放模型能力。Python00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0111
热门内容推荐
最新内容推荐
项目优选
收起
暂无描述
Dockerfile
731
4.72 K
Ascend Extension for PyTorch
Python
608
783
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
433
391
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
996
1 K
昇腾LLM分布式训练框架
Python
166
196
暂无简介
Dart
983
249
deepin linux kernel
C
29
16
华为昇腾面向大规模分布式训练的多模态大模型套件,支撑多模态生成、多模态理解。
Python
145
236
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.1 K
611
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed.
Get Started
Rust
1.13 K
146