首页
/ 4个步骤搞定wiliwili Debian软件包制作:从环境到发布

4个步骤搞定wiliwili Debian软件包制作:从环境到发布

2026-04-22 10:16:12作者:卓艾滢Kingsley

wiliwili是一款专为手柄控制设计的第三方跨平台B站客户端,支持PC、PSVita、PS4和Nintendo Switch等多种设备。本文将通过"需求分析→环境配置→分步实施→验证优化"四个阶段,详细介绍如何在Linux系统中制作wiliwili的Debian软件包(扩展名为.deb的二进制安装文件),以便在Debian及其衍生系统上轻松安装和使用。

💡 核心价值:通过系统化流程将开源项目转化为标准化安装包,降低用户使用门槛,同时确保软件在不同Linux环境中的一致性和可靠性。

1/4 需求分析:明确打包目标与范围

在开始打包工作前,需要清晰定义目标和范围,这将直接影响后续的环境配置和实施步骤。

软件包目标定位

wiliwili的Debian软件包应满足以下核心需求:

  • 支持主流Debian衍生系统(如Ubuntu 20.04+、Debian 11+)
  • 包含完整的应用程序功能和资源文件
  • 提供标准桌面环境集成(图标、启动器)
  • 确保手柄控制功能正常工作
  • 解决依赖关系冲突问题

关键文件识别

项目中与Linux打包相关的核心文件位于以下路径:

  • 桌面集成文件:项目根目录下的scripts/linux文件夹,包含桌面快捷方式和图标资源
  • 打包配置模板:scripts/deb/switchroot-bionic目录提供了Debian控制文件参考
  • 构建脚本参考:scripts/build_mac.sh可作为Linux构建流程的基础

wiliwili应用界面
图1:wiliwili应用主界面展示,显示了视频推荐和播放界面

2/4 环境配置:搭建打包工作环境

系统要求

确保你的系统满足以下条件:

  • 64位Debian或Ubuntu系统(推荐Ubuntu 20.04 LTS或Debian 11)
  • 至少2GB内存和10GB可用磁盘空间
  • 网络连接(用于下载依赖和源码)

安装必要工具

打开终端,执行以下命令安装打包所需的工具集:

# 更新软件源
sudo apt update

# 安装打包工具和依赖
sudo apt install -y build-essential cmake dpkg-dev debhelper dh-make \
  libass-dev libdbus-1-dev libx11-dev libv4l-dev libpulse-dev \
  libuchardet-dev libwebp-dev libssl-dev
常见问题:依赖安装失败 如果遇到"无法定位软件包"错误,可能是因为你的系统版本与软件包名称不匹配。尝试以下解决方案: 1. 检查是否启用了Universe仓库(对于Ubuntu) 2. 使用`sudo aptitude install `尝试自动解决依赖冲突 3. 对于较新的Debian版本,可能需要将libssl1.1替换为libssl3

获取项目源码

使用Git克隆wiliwili项目源码到本地:

# 克隆仓库
git clone https://gitcode.com/GitHub_Trending/wi/wiliwili
cd wiliwili

3/4 分步实施:构建与打包全过程

步骤1:编译应用程序

首先需要将源代码编译为可执行程序:

# 创建并进入构建目录
mkdir -p build && cd build

# 生成Makefile,指定桌面平台和发布模式
cmake .. -DPLATFORM_DESKTOP=ON -DCMAKE_BUILD_TYPE=Release

# 多线程编译(nproc会自动检测CPU核心数)
make -j$(nproc)
常见问题:编译失败 如果遇到编译错误,尝试以下解决方法: 1. 检查是否安装了所有必要的依赖库 2. 清除构建目录并重新编译:`rm -rf build && mkdir build && cd build && cmake .. ...` 3. 对于SSL相关错误,确认已安装libssl-dev并检查版本兼容性

步骤2:准备打包资源

生成图标文件

项目提供了图标生成脚本,可创建不同尺寸的应用图标:

# 进入脚本目录
cd ../scripts/linux

# 赋予执行权限并运行脚本
chmod +x gen_icons.sh
./gen_icons.sh

此脚本会在icons目录下生成16x16、24x24、32x32等多种尺寸的图标文件,这些图标将用于桌面环境显示。

准备Debian打包结构

创建标准的Debian打包目录结构:

# 返回项目根目录
cd ../../

# 创建打包工作目录
mkdir -p wiliwili-deb/DEBIAN
mkdir -p wiliwili-deb/usr/bin
mkdir -p wiliwili-deb/usr/share/applications
mkdir -p wiliwili-deb/usr/share/icons/hicolor

步骤3:组织打包文件

复制可执行文件

将编译好的可执行文件复制到打包目录:

# 复制主程序
cp build/wiliwili wiliwili-deb/usr/bin/

复制桌面文件

桌面文件定义了应用在桌面环境中的显示和启动方式:

# 复制并修改桌面文件
cp scripts/linux/cn.xfangfang.wiliwili.desktop wiliwili-deb/usr/share/applications/

安装图标文件

将生成的图标文件安装到标准系统图标目录:

# 复制所有尺寸的图标
for size in 16x16 24x24 32x32 48x48 64x64 128x128 256x256; do
  mkdir -p wiliwili-deb/usr/share/icons/hicolor/$size/apps/
  cp scripts/linux/icons/$size/cn.xfangfang.wiliwili.png \
    wiliwili-deb/usr/share/icons/hicolor/$size/apps/
done

步骤4:创建Debian控制文件

生成control文件

创建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, libssl3
Description: A third-party Bilibili client designed specifically for controller users
 wiliwili is a cross-platform Bilibili client optimized for game controllers.
 It supports multiple platforms including PC, PSVita, PS4 and Nintendo Switch.
EOF

⚠️ 注意:根据你的系统架构修改Architecture字段(如amd64、i386等),并确保Depends字段中的依赖库名称与目标系统匹配。

不同系统依赖差异对比

依赖项 Debian 11 Ubuntu 20.04 Ubuntu 22.04
SSL库 libssl1.1 libssl1.1 libssl3
WebP库 libwebp6 libwebp6 libwebp7
最低GCC版本 8.3 9.3 11.2

步骤5:构建Debian软件包 📦

一切准备就绪后,使用dpkg-deb命令构建软件包:

# 构建deb包
dpkg-deb --build wiliwili-deb

如果一切顺利,当前目录将生成一个名为wiliwili-deb.deb的文件,这就是我们的Debian软件包。

4/4 验证优化:确保软件包质量

安装测试

在本地系统测试软件包安装:

# 安装软件包
sudo dpkg -i wiliwili-deb.deb

# 如果出现依赖问题,自动修复
sudo apt install -f

安装完成后,检查应用是否能正常启动:

  • 在应用菜单中查找wiliwili图标并点击启动
  • 或在终端执行wiliwili命令

功能验证清单

验证以下核心功能是否正常工作:

  • 应用启动是否正常
  • 界面显示是否完整
  • 视频播放功能是否正常
  • 手柄控制是否响应
  • 声音是否正常输出
  • 网络连接是否正常

依赖检查

使用以下命令检查软件包的依赖关系是否完整:

# 检查依赖关系
dpkg -I wiliwili-deb.deb | grep Depends

# 检查已安装的依赖版本
dpkg -l libass9 libdbus-1-3 libx11-6 libpulse0

跨版本兼容小贴士 🔄

为确保软件包在不同Debian/Ubuntu版本上的兼容性:

  1. 依赖版本控制

    • 使用模糊版本号,如libssl3而非libssl3=3.0.2-0ubuntu1
    • 避免依赖过于新版本的库
  2. 构建环境

    • 尽量在较低版本的系统上构建(如Ubuntu 20.04)
    • 考虑使用Docker容器进行跨版本构建
  3. 架构支持

    • 为不同架构(amd64、arm64)分别构建软件包
    • 在control文件中正确设置Architecture字段

自动化打包进阶指引 🤖

对于频繁更新的项目,建议设置CI/CD流程实现自动打包:

  1. GitHub Actions配置

    • 创建.github/workflows/deb-package.yml文件
    • 定义触发条件(如标签推送或主分支更新)
    • 配置构建环境和打包步骤
  2. 自动化测试

    • 添加安装测试步骤
    • 运行基本功能检查脚本
    • 生成测试报告
  3. 发布流程

    • 自动将生成的deb包上传到GitHub Releases
    • 配置PPA仓库实现自动更新

通过以上步骤,你已经完成了wiliwili Debian软件包的制作。这个过程不仅适用于wiliwili,也可作为其他开源项目打包的参考。随着项目的发展,记得定期更新软件包版本和依赖关系,以确保用户获得最佳体验。

如果在打包过程中遇到问题,可以查阅项目的官方文档或提交issue寻求帮助。祝你的开源项目打包之旅顺利!

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