首页
/ wiliwili Linux版Debian软件包构建指南

wiliwili Linux版Debian软件包构建指南

2026-03-17 06:00:11作者:俞予舒Fleming

核心价值

wiliwili作为一款专为手柄控制设计的第三方B站客户端,凭借其跨平台特性(支持PC、PSVita、PS4及Nintendo Switch)为用户提供了便捷的多媒体娱乐体验。通过将应用程序打包为Debian软件包,可实现以下核心价值:

  • 简化安装流程:用户无需手动配置依赖和环境,通过dpkg命令即可完成安装
  • 系统级集成:与桌面环境深度整合,支持图标显示和应用程序菜单索引
  • 版本管理:便于通过系统包管理器进行版本更新和卸载操作
  • 依赖自动处理:利用Debian包管理系统自动解决库依赖关系

wiliwili应用主界面

环境配置

基础工具安装

操作目的:安装Debian软件包构建所需的基础工具集

sudo apt update && sudo apt install -y build-essential cmake dpkg-dev dh-make

预期结果:系统将安装GCC编译器、CMake构建系统、dpkg开发工具和Debian打包辅助工具

为什么需要这样做:这些工具是构建C/C++项目并打包为Debian软件包的基础,其中build-essential提供编译环境,cmake负责项目构建管理,dpkg-dev包含打包所需的核心工具。

依赖库安装

操作目的:安装wiliwili运行所需的依赖库

sudo apt install -y libmpv-dev libsdl2-dev libcurl4-openssl-dev libssl-dev \
libass-dev libwebp-dev libuchardet-dev libpulse-dev

预期结果:系统将安装媒体播放、图形渲染、网络通信等相关依赖库

为什么需要这样做:wiliwili作为多媒体应用,依赖这些库实现视频播放、界面渲染和网络请求等核心功能,提前安装可避免编译过程中出现依赖缺失错误。

分步实施

1. 源代码准备

操作目的:获取wiliwili项目源代码

git clone https://gitcode.com/GitHub_Trending/wi/wiliwili
cd wiliwili

预期结果:项目代码将被克隆到本地并进入项目目录

为什么需要这样做:从官方仓库获取最新源代码,确保使用最新功能和修复补丁。

2. 应用程序构建

操作目的:编译wiliwili应用程序

mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DPLATFORM_DESKTOP=ON ..
make -j$(nproc)

预期结果:在build目录下生成wiliwili可执行文件

为什么需要这样做:通过CMake配置构建参数,指定桌面平台和发布版本,使用多线程编译加速构建过程。

Debian打包流程图

3. 打包资源准备

操作目的:生成不同尺寸的应用图标

cd scripts/linux
chmod +x gen_icons.sh
./gen_icons.sh

预期结果:在icons目录下生成16x16、24x24、32x32等多种尺寸的PNG图标

为什么需要这样做:不同桌面环境和分辨率需要不同尺寸的图标,统一生成可确保应用在各种环境下正确显示。

4. 软件包结构创建

操作目的:创建Debian软件包目录结构

mkdir -p wiliwili-deb/DEBIAN wiliwili-deb/usr/bin wiliwili-deb/usr/share/applications \
wiliwili-deb/usr/share/icons/hicolor

预期结果:创建符合Debian规范的目录结构,包括控制文件目录和应用安装目录

为什么需要这样做:Debian软件包有严格的目录结构要求,正确的结构是生成可用软件包的基础。

5. 文件复制与配置

操作目的:复制应用文件到打包目录

# 复制可执行文件
cp ../../build/wiliwili wiliwili-deb/usr/bin/

# 复制桌面文件
cp cn.xfangfang.wiliwili.desktop wiliwili-deb/usr/share/applications/

# 复制图标文件
find icons -name "*.png" -exec cp {} wiliwili-deb/usr/share/icons/hicolor/{} \;

预期结果:所有必要文件被复制到相应的打包目录

为什么需要这样做:将编译好的可执行文件、桌面配置文件和图标按照标准位置组织,确保安装后系统能正确识别和运行应用。

6. 控制文件创建

操作目的:创建Debian控制文件

cat > wiliwili-deb/DEBIAN/control << EOF
Section: video
Priority: optional
Maintainer: Your Name <your.email@example.com>
Version: 1.5.2-1
Homepage: https://xfangfang.github.io/wiliwili/
Package: wiliwili
Architecture: amd64
Depends: libass9, libdbus-1-3, libx11-6, libv4l-0, libpulse0, libuchardet0, libwebp6, libssl1.1
Description: A third-party Bilibili client designed specifically for controller users
EOF

预期结果:在DEBIAN目录下创建包含软件包信息的control文件

为什么需要这样做:控制文件包含软件包的元数据,如名称、版本、依赖关系等,是Debian软件包的核心组成部分。

7. Debian软件包生成

操作目的:构建Debian软件包

dpkg-deb --build wiliwili-deb

预期结果:在当前目录生成名为wiliwili-deb.deb的软件包文件

为什么需要这样做dpkg-deb工具将按照Debian规范将文件结构打包成可安装的.deb文件。

问题排查

常见问题速查表

问题现象 可能原因 解决方案
编译时提示"mpv/libmpv.h: No such file or directory" 缺少libmpv开发库 执行sudo apt install libmpv-dev安装开发包
打包时提示"permission denied" 目录权限不足 使用sudo chown -R $USER wiliwili-deb修复权限
安装后应用不显示图标 图标路径错误 确认图标安装到/usr/share/icons/hicolor/尺寸/apps/目录
运行时提示"error while loading shared libraries" 缺少运行时依赖 使用ldd /usr/bin/wiliwili检查缺失库并安装
桌面文件无法被系统识别 桌面文件格式错误 运行desktop-file-validate检查并修复桌面文件

依赖问题诊断

操作目的:检查编译后的二进制文件依赖关系

ldd build/wiliwili | grep "not found"

预期结果:列出所有缺失的依赖库

为什么需要这样做:提前发现并解决依赖问题,避免用户安装后无法运行的情况。

经验总结

架构适配建议

  • 对于不同架构(如amd64、arm64),需要在对应架构的系统上编译或使用交叉编译工具链
  • 修改控制文件中的Architecture字段以匹配目标架构
  • 对于ARM平台,可能需要调整部分依赖库的版本要求

打包优化技巧

  • 使用dpkg-shlibdeps自动生成依赖关系,命令:dpkg-shlibdeps -O wiliwili-deb/usr/bin/wiliwili
  • 添加postinstprerm脚本实现安装后和卸载前的额外操作,如更新图标缓存
  • 使用dh_make工具自动生成debian目录结构和控制文件模板

社区支持与贡献

wiliwili项目欢迎社区贡献,您可以通过以下方式参与项目改进:

  • 问题反馈:在项目仓库提交issue报告bug或提出功能建议
  • 代码贡献:通过Pull Request提交代码改进
  • 文档完善:帮助改进安装指南和使用文档
  • 翻译支持:为不同语言版本提供翻译

项目的持续发展离不开社区的支持,欢迎广大用户和开发者参与到项目的改进和优化中来。

登录后查看全文
热门项目推荐
相关项目推荐