要创建一个deb包,只需要有一个基于 debian 的操作系统即可。(不管你用的是什么 Linux 发行版,你可以使用虚拟机或者 systemd-nspawn 来创建构建 DEB 包的环境)

下载上游的包,或者手动打一个上游的包。这个上游的包是源代码的仓库或者文件夹,打包的时候不要 .git 目录,也不要 rust 插件自动生成的 target/ 目录

要使用debain 安装的 rustc,因为 debuild 会移除一些环境变量。https://unix.stackexchange.com/questions/630447/debuild-cant-find-rustc 因此必须使用通过 apt 安装的 rustc.

源代码文件的压缩包文件的名字应该是这样的:netease-cloud-music-gtk-2.3.1.tar.gz。也就是 <package>-<version>.tar.gz 的形式。解压出来的文件夹应该也保持这样的形式,也就是文件夹名字应该是 netease-cloud-music-gtk-2.3.1

假设从 https://github.com/wngtk/netease-cloud-music-gtk/releases 下载上游包(.tar.gz结尾的文件)。

mv v2.3.1.tar.gz netease-cloud-music-gtk-2.3.1.tar.gz
tar xvf netease-cloud-music-gtk-2.3.1.tar.gz
cd netease-cloud-music-gtk-2.3.1

修改好名字并解压,进入源代码的目录,生成 debian 目录的模板。

debmake

因为项目是使用 meson 构建而且 dh 是可以直接支持的,要生成 deb 包直接 debuild 就可以。但是直接 debuild 会失败,因为 screenshot 标签中的一个小问题,因此我们还需要打个补丁。参照 https://www.debian.org/doc/manuals/debmake-doc/ch04.en.html#diff-u 制作一个这样的补丁,名为 000-screenshots-image.patch

From: Wang Tiaoke <wngtk@outlook.com>
Description: Add <image> tag in <screenshots>
diff -Nru netease-cloud-music-gtk-2.3.1.orig/data/com.gitee.gmg137.NeteaseCloudMusicGtk4.metainfo.xml.in netease-cloud-music-gtk-2.3.1/data/com.gitee.gmg137.NeteaseCloudMusicGtk4.metainfo.xml.in
--- netease-cloud-music-gtk-2.3.1.orig/data/com.gitee.gmg137.NeteaseCloudMusicGtk4.metainfo.xml.in 2024-04-09 02:13:37.000000000 +0800
+++ netease-cloud-music-gtk-2.3.1/data/com.gitee.gmg137.NeteaseCloudMusicGtk4.metainfo.xml.in 2024-04-11 13:04:12.699998049 +0800
@@ -19,7 +19,9 @@
<p xml:lang="zh_TW">使用網易雲音樂 API 的 Gtk4 音樂播放器</p>
</description>
<screenshots>
- <screenshot type="default">https://gitee.com/gmg137/netease-cloud-music-gtk/raw/master/screenshots/discover.png</screenshot>
+ <screenshot type="default">
+ <image>https://gitee.com/gmg137/netease-cloud-music-gtk/raw/master/screenshots/discover.png</image>
+ </screenshot>
</screenshots>
<content_rating type="oars-1.1" />
</component>

然后我们需要将补丁文件放到对应的位置。

echo '000-screenshots-image.patch' > debian/patch/seris
cp 000-screenshots-image.patch debian/patch

准备好补丁后执行:

debuild

就会在上一级生成netease-cloud-music-gtk_2.3.1-1_amd64.deb

因为项目使用了 meson, dh 可以自动完成一些任务,要对这样的一个 meson 项目创建一个 deb 包就比较容易了。

制作netease-cloud-music-gtk的debian包的更多相关文章

  1. ubuntu 安装Elasticsearch5.0(Debian包)

    通过Debian包安装Elasticsearch Elasticsearch的Debian包可以从downloaded from our website或APT repository 它可以用于在任何 ...

  2. 如何构建debian包

        1)安装dh_make如下: sudo apt-get intasll aptitude sudo aptitude install dh_make    2)以jsoncpp为例,说明如何生 ...

  3. debian包之间的关系

    1 debian包之间存在两大类关系 第一,依赖 第二,冲突 2 依赖类关系 2.1 depends 2.2 pre-depends 2.3 recommends 2.4 suggests 2.5 e ...

  4. debian包管理

    常用的包管理工具有:apt.apt-get.apt-cache.apt-file.aptitude.dpkg等.功能有重复的,挑顺手的即可. 1.apt # apt --help list - lis ...

  5. debian包的补丁管理工具:quilt

    最近项目是改pam软件包,给里面添加一些功能.其中遇到了更改后,代码提交方式的问题.这里转载的文章介绍了使用quilt管理补丁的详细方法: 转自:http://blog.csdn.net/fmddlm ...

  6. RPM包制作教程

    一.RPM介绍 RPM 前是Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理:现在应为RPM Package M ...

  7. 烂泥:Linux源码包制作RPM包之Apache

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 公司服务器比较多,需要把apache源码包制作成rpm包,然后放到公司内网yum源上进行下载安装.apache的rpm包安装方式比源码安装方式比较快,这能 ...

  8. [转]Debian 安装与卸载包命令(APT&&DPKG)

    转自:zhangjunhd 的BLOG 1.APT主要命令apt-cache search  ------package 搜索包sudo apt-get install ------package 安 ...

  9. (转)Debian 安装与卸载包命令

    1.APT主要命令apt-cache search  ------package 搜索包sudo apt-get install ------package 安装包sudo apt-get remov ...

  10. RPM包制作方法

    一.RPM介绍 RPM 前是Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理:现在应为RPM Package M ...

随机推荐

  1. python 爬取博客访问量

    一.代码 """ Version: Python3.5 Author: OniOn Site: http://www.cnblogs.com/TM0831/ Time: ...

  2. QT5笔记: 25. 非模态的自定义对话框

    窗口对象为QDialog 显示方法为 show(); locateCell->show(); 可以通过public方法或者信号槽机制获取非模态窗口的信息 例子:非模态窗口,为主窗口数据输入吧 v ...

  3. day2-变量与数据类型

    变量 概念:程序的基本组成单位 定义: 指定变量类型 根据值自行判断变量类型(类型推导) 省略var,定义赋值 var i int var i = 10 i, j := 20, 10 数据基本类型 基 ...

  4. DeepSeek在M芯片Mac上本地化部署

    在 Mac 上使用 Ollama 运行 DeepSeek-R1,并通过 Open-WebUI 提供 Web 端访问. 1. 安装 Ollama Ollama官方:https://ollama.com/ ...

  5. Manjora配置记录

    22/9/12 目前的启动项有3:Windows Boot Manager.Manjaro.UEFI OS.其中UEFI OS 和 Manjaro 进入后内容相同:Windows下检测不到Manjar ...

  6. mysql 表的创建,修改,删除

    查看数据库所有表 show tables 创建 create table 表名 ( 列名 类型 约束条件 ... ) 类型有整形: tinyint(1B) ,smallint(2B),mediumin ...

  7. NumPy学习11

    今天学习了NumPy线性代数 21, NumPy线性代数 numpy_test11.py : import numpy as np ''' 21, NumPy线性代数 NumPy 提供了 numpy. ...

  8. 『Plotly实战指南』--柱状图绘制高级篇

    在数据可视化的世界里,柱状图是一种直观且强大的工具,用于展示数据的分布.比较和趋势. 从基础的柱状图出发,我们可以进一步探索更复杂的图表类型,如分组柱状图和堆积柱状图,它们在处理多维数据和复杂关系时具 ...

  9. VS Code Runner 插件配置

    VS Code Runner 插件配置 Code Runner插件是一个小而美的插件,可以很方便的运行一些简单的代码文件. 本篇博文记录一些相关的环境配置. 设置C++编译标准 这里可以设置默认的C+ ...

  10. apisix~key-auth多消费的使用

    在 APISIX 中使用 key-auth 插件实现基于密钥的认证,以下是详细的配置步骤,包括如何保存密钥和证书,以及如何将这些信息分配给客户端 A 和 B. 场景说明 服务 C 是后端服务,需要通过 ...