Debian软件包制作:为wiliwili构建Linux发行版安装包
wiliwili作为专为手柄控制设计的第三方跨平台B站客户端,支持多设备运行。本文将详细介绍如何在Linux环境下制作Debian软件包,通过"核心价值→环境准备→模块化实施→验证与优化"的四阶段框架,帮助开发者将应用程序打包为标准的Debian安装包,实现便捷的分发与安装。
核心价值:为何选择Debian软件包
Debian软件包(.deb文件)是Debian及其衍生系统(如Ubuntu)的标准安装格式,具有依赖管理、版本控制和系统集成等优势。为wiliwili创建Debian软件包可带来三大核心价值:
- 简化安装流程:用户无需手动编译,通过
dpkg -i命令即可完成安装 - 系统级集成:自动处理桌面快捷方式、图标和MIME类型关联
- 版本管理:支持软件包的更新、回滚和卸载,符合Linux用户使用习惯
图1:wiliwili客户端主界面展示,体现应用在Linux系统上的运行效果
环境准备:从依赖到编译
开发环境搭建:安装必要工具链
在开始打包前,需要确保系统中安装了Debian打包工具和编译依赖。当遇到"命令未找到"错误时,可通过以下命令安装基础工具集:
# 安装Debian打包工具(dpkg-deb:Debian系包打包工具)
sudo apt-get update && sudo apt-get install -y dpkg-dev dh-make build-essential
# 安装wiliwili编译依赖
sudo apt-get install -y cmake libsdl2-dev libmpv-dev libcurl4-openssl-dev
[!TIP] 不同Linux发行版的依赖包名称可能不同,Ubuntu用户可直接使用上述命令,其他发行版需调整包名(如Fedora使用
dnf install)。
源代码获取:克隆与目录结构
获取wiliwili源代码并了解项目结构是打包的基础:
# 克隆项目仓库
git clone https://gitcode.com/GitHub_Trending/wi/wiliwili
cd wiliwili
# 查看Linux打包相关关键文件
ls -l scripts/linux scripts/deb
关键资源清单
| 文件路径 | 功能描述 |
|---|---|
| scripts/linux/cn.xfangfang.wiliwili.desktop | 桌面快捷方式定义文件 |
| scripts/linux/gen_icons.sh | 图标生成脚本 |
| scripts/deb/switchroot-bionic/control | Debian包控制文件模板 |
| wiliwili/source | 应用程序源代码目录 |
模块化实施:构建与打包流程
应用构建:编译可执行文件
wiliwili使用CMake构建系统,需针对Linux桌面环境进行配置:
# 创建构建目录并进入
mkdir -p build && cd build
# 生成多架构Makefile(支持amd64/arm64)
cmake .. -DPLATFORM_DESKTOP=ON -DCMAKE_BUILD_TYPE=Release
# 并行编译(使用所有CPU核心)
make -j$(nproc)
编译完成后,可在build/wiliwili目录找到可执行文件。
[!TIP] 若编译失败,检查是否安装了所有依赖库。特别注意libmpv-dev版本需≥0.34.0,可通过
apt-cache policy libmpv-dev检查版本。
资源准备:图标与桌面文件
图标生成与安装
项目提供的gen_icons.sh脚本可生成多分辨率图标,适配不同桌面环境:
# 进入脚本目录并执行图标生成
cd scripts/linux
chmod +x gen_icons.sh
./gen_icons.sh
# 查看生成的图标尺寸
ls -l icons/*x*/cn.xfangfang.wiliwili.png
该脚本会生成16x16至256x256的多种尺寸图标,满足不同显示需求。
桌面文件配置
桌面文件定义了应用在桌面环境中的显示和行为,关键配置如下:
[Desktop Entry]
Name=wiliwili
Comment=A 3rd party bilibili client
Exec=wiliwili
Icon=cn.xfangfang.wiliwili
Terminal=false
Type=Application
Categories=AudioVideo;Audio;Video;
需要将此文件安装到/usr/share/applications目录,使系统能够识别应用。
软件包构建:Debian包制作
构建目录结构
创建符合Debian规范的目录结构是打包的关键步骤:
wiliwili-deb/
├── DEBIAN/
│ ├── control # 包元数据和依赖信息
│ ├── postinst # 安装后执行脚本
│ └── prerm # 卸载前执行脚本
└── usr/
├── bin/
│ └── wiliwili # 可执行文件
├── share/
│ ├── applications/
│ │ └── cn.xfangfang.wiliwili.desktop
│ └── icons/
│ └── hicolor/
│ ├── 16x16/apps/
│ │ └── cn.xfangfang.wiliwili.png
│ └── ... (其他尺寸图标)
使用以下命令创建上述结构:
# 创建基础目录
mkdir -p wiliwili-deb/{DEBIAN,usr/bin,usr/share/applications,usr/share/icons/hicolor}
# 复制可执行文件
cp build/wiliwili wiliwili-deb/usr/bin/
# 复制桌面文件
cp scripts/linux/cn.xfangfang.wiliwili.desktop wiliwili-deb/usr/share/applications/
# 复制图标
cp -r scripts/linux/icons/* wiliwili-deb/usr/share/icons/hicolor/
控制文件编写
DEBIAN/control文件是Debian包的核心,定义了包的元数据和依赖关系:
Section: video
Priority: optional
Maintainer: Your Name <your.email@example.com>
Version: 1.5.2-1
Homepage: https://example.com/wiliwili
Package: wiliwili
Architecture: amd64
Depends: libass9, libdbus-1-3, libx11-6, libmpv1, libcurl4
Description: A third-party Bilibili client designed for controller users
[!TIP] 版本号遵循
主版本.次版本.修订号-发行号格式,如1.5.2-1表示1.5.2版本的第一个发行版。
生成Debian软件包
使用dpkg-deb工具构建最终的.deb文件:
# 构建Debian软件包
dpkg-deb --build wiliwili-deb
# 查看生成的包文件
ls -l wiliwili-deb.deb
成功构建后,将生成名为wiliwili-deb.deb的软件包。
验证与优化:确保包质量
软件包验证:安装与功能测试
打包完成后,需要进行全面测试以确保质量:
# 安装测试(会实际安装到系统)
sudo dpkg -i wiliwili-deb.deb
# 检查安装的文件
dpkg -L wiliwili
# 验证依赖是否满足
ldd /usr/bin/wiliwili | grep "not found"
# 启动应用测试功能
wiliwili
[!TIP] 若出现依赖缺失错误,使用
sudo apt-get -f install可自动安装缺失的依赖包。
架构适配指南:跨平台支持
wiliwili支持多种硬件架构,打包时需注意:
-
架构声明:修改control文件的
Architecture字段,支持的选项包括:amd64:64位x86架构arm64:64位ARM架构(如树莓派4)i386:32位x86架构(老旧系统)
-
交叉编译:为其他架构构建时,需配置交叉编译工具链:
# 为arm64架构交叉编译示例 cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain/arm64-linux-gnu.cmake
桌面集成优化:提升用户体验
良好的桌面集成能显著提升用户体验:
-
图标缓存更新:在postinst脚本中添加图标缓存更新:
#!/bin/bash update-desktop-database /usr/share/applications gtk-update-icon-cache -f /usr/share/icons/hicolor -
MIME类型支持:添加视频文件关联,让wiliwili成为视频文件的打开选项。
-
应用程序菜单分类:确保desktop文件中的
Categories字段正确,使应用出现在正确的菜单分类中。
自动化构建建议:CI/CD流程
为提高打包效率,建议设置自动化构建流程:
-
GitHub Actions配置:创建
.github/workflows/deb-package.yml,包含以下步骤:- 检出代码
- 安装依赖
- 编译应用
- 构建Debian包
- 上传制品
-
多架构构建:使用Docker的多架构支持,一次配置构建多种架构的软件包。
-
版本管理:使用git标签管理版本号,自动生成对应的Debian包版本。
总结
通过本文介绍的四阶段框架,我们完成了wiliwili的Debian软件包制作过程。从环境准备到模块化实施,再到验证与优化,每个阶段都关注实际操作和问题解决。Debian软件包制作不仅是应用分发的基础,也是开源项目标准化的重要一步。
希望本文能帮助开发者顺利为Linux系统构建wiliwili的Debian软件包,让更多用户能够便捷地体验这款优秀的手柄控制B站客户端。随着项目的发展,持续优化打包流程和软件质量,将为用户带来更好的体验。
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 StartedRust098- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiMo-V2.5-ProMiMo-V2.5-Pro作为旗舰模型,擅⻓处理复杂Agent任务,单次任务可完成近千次⼯具调⽤与⼗余轮上 下⽂压缩。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
Kimi-K2.6Kimi K2.6 是一款开源的原生多模态智能体模型,在长程编码、编码驱动设计、主动自主执行以及群体任务编排等实用能力方面实现了显著提升。Python00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00
