重制打包教程 @ shenmo | 2021-11-11T17:15:28+08:00 | 1 分钟阅读 | 更新于 2021-11-11T17:15:28+08:00

一年前搞了个打包教程,做的很粗糙,一年后重制了一下,依旧很粗糙

https://www.bilibili.com/video/BV1c34y1Z7PB/

https://www.bilibili.com/video/BV1k3411b7Cf/


deb软件包打包教程

首先,需要准备打包依赖:fakeroot
sudo apt install fakeroot
已经拆好的deb包可以直接执行

fakeroot dpkg -b . ../

生成软件包
  
这样生成,dpkg可以自动读取control文件中包名,架构,版本等信息,这样软件包的文件名不会出问题

改包就是拆包之后更改自己需要更改的,再执行这个指令

如果要改包,那做到这一步就结束了
既然是打包教程,自然要讲解打包

既然能生成包了
接下来讲解各个文件的意义,这样就可以根据我提供的样版包打各种各样的软件包了

DEBIAN文件夹里装的是包的描述文件
我会在给出的样版软件包中给出样例
control文件里是软件包描述

注意每一项冒号都是英文冒号,后面跟空格

Package: 软件包名(不能有大写/中文/特殊字符/空格,空格用-代替)
Version: 版本号
Section: utils 实用程序的意思,会有很多种,但是一般来说utils准没错,除此之外还有x11,net等类别,详情请看简介链接
Source: 源代码名称,非必须,可以删去
Homepage: 软件官网主页
Architecture: 软件架构,一般都是amd64(x86架构64位,又名IA32-64),其他架构的也有,比如aarch64/mipsel,一般人接触不到
Priority: optional 软件对于系统的重要程度 required需要, standard标准, optional可选, extra额外 
Depends: libc6 (>= 2.14) 依赖包,可指定版本,用英文逗号隔开,如果是以tar.gz发布的应用,大多数可以直接运行,如果不太严谨的话只写一个libc6即可(这不是标准操作!)(如果是官方包改制,官方会直接写明,不需要改)
Description: 这里写的软件包介绍会出现在双击安装时


post是后的意思
pre是前的意思
inst是安装的缩写
rm是移除的缩写

这四个词排列组合得到的文件是脚本,分别会在安装释放文件执行前/后,卸载移除文件前/后执行

如果想要投稿给深度/UOS商店,不可以包含这些脚本
星火应用商店无此限制

postinst负责完成安装包时的配置工作。软件安装完后,执行该Shell脚本,一般用来配置软件执行环境,必须以“#!/bin/sh”为首行(比如安装后创建一些链接,或者比如安装后关闭某应用)

prerm负责停止与软件包相关联的daemon服务(也就是执行卸载之前关闭软件相关服务)

preinst在安装执行前执行,不常用

postrm在文件移除后执行,一般是清理postinst的链接,做最后的善后工作


在安装时,除了DEBIAN文件夹,其余的文件夹会被安装到对应的位置

比如在这里的

软件打包目录/opt/durapps/spark-store/bin/spark-store
在安装后会出现在
/opt/durapps/spark-store/bin/spark-store

一般来说,主程序要放在

/opt/包名

文件夹

星火打包规则为,自行打包tar.gz软件/官方软件魔改,应当放到 /opt/durapps/包名 文件夹,并更改软件包名(比如后缀-spark/.spark)来防止和官方软件冲突
本来就是官方软件包,在没有出错的情况下直接投递即可,不需要做任何修改
appimage转制的deb包,不需要做任何调整

.desktop文件(就是在桌面上类似快捷方式的东西)是桌面程序的入口,放在/ust/share/applications后就可以显示啦!
对于dde来说,当desktop的文件名为 包名.desktop时,可以右键卸载
比如星火应用商店的desktop名字就是spark-store.desktop
关于desktop文件的写法会放在下一页
写完了之后就可以创建自己的desktop文件了!

想要终端启动的软件,应当链接到/usr/bin或者/usr/local/bin
比如星火是这么处理的:在postinst脚本中添加软链接(别忘了擦屁股!在postrm脚本里添加对应的删除指令!)

ln -s -f /opt/durapps/spark-store/bin/spark-store /usr/local/bin/spark-store

如果需要在终端启动,请修改例子包中的示例postinst/postrm(已经给你准备好模板了,改就完了)




desktop文件的编写:使用图形化工具:@zty199同学开发的桌面快捷方式编辑器
可以在星火应用商店获取

这个工具是为了生成直接使用的快捷方式而设计的,生成出来后要做一点小小的修饰

以星火应用商店为例来展示下操作

首先选中选择图标,选择图标
然后更改显示的名字
然后选择可执行文件
可执行文件就是可以双击打开的文件,一般文件名是软件包名,比如星火就是spark-store
注释可有可无,就是鼠标悬停时的提示
文件类型属于高级玩法了,想了解的百度mimetype
类别是在启动器(windows下那个长得很像的被称为开始菜单)中提示的类别
在终端中运行就是双击打开后会开一个终端窗口,适用于只有命令行的应用

在菜单中选择另存为





====================注意========================
从这里开始就要改了
首先是文件名,要为软件包名.desktop,比如星火商店就是spark-store.desktop,这样保证可以右键卸载
然后找到保存的desktop文件,右键编辑器打开
然后找到Exec=和Icon=,把里面到打包目录之前的项目都删除!

看好怎么操作的

保存后可能图标会消失,正常,软件包安装完就好了!

把改好的desktop文件放到 打包目录/usr/share/applications 即可



截图_选择区域_20211111170559

© 2019 - 2024 shenmo的世界

Hugo theme Dream.

辽ICP备2021012180号-1

上面有备案号的

avatar
关于我

星火应用商店项目 Leader

社交链接

本博客所有文章使用《知识共享 署名-非商业性使用-相同方式共享 4.0》(CC-BY-NC-SA-4.0)协议

这意味着你可以在署名并标明出处的情况下进行非商业转载(转载的文章也需要遵守CC-BY-NC-SA-4.0协议),但不可以进行商业转载