把零散的可执行文件打包成.deb安装包

目录

  • 前言
    • 了解一下deb包结构
    • deb打包过程
  • 结束

前言

因为有些Linux的软件很烦人它不提供.deb形式的安装包,有些时候放哪了也不知道。为了方便管理和升级等操作造个.deb安装包是个很急需的事情。其实这个事情不是很难,如果对Linux比较熟悉做这个事情会很简单,这里用一个最简单的例子来演示怎么把二进制压缩文件造成.deb安装包。

Firefox的中国版是没有提供.deb安装包的,但是国际版是有安装包的,那可以直接拿国际版的安装包里的配置文件做中国版的deb包

了解一下deb包结构

首先准备一下被安装的文件。如果了解Linux的话就知道deb包就是把文件放到对应的目录里然后再在管理器里注册一下。比如:

在这里插入图片描述
把一个deb包按压缩文件打开后可以看到三个压缩包,第一个压缩包里是deb包信息,包括版权等等;第二个压缩包里是数据文件,也就是主体的可执行文件;第三个可以看成统一的info文件。

打开control.tar.xz:

在这里插入图片描述

其中的第二个就是deb包打包信息,第三个是md5校验,第4个是安装完成后执行的sh脚本,第五个是删除时执行的的sh脚本。

打开data.tar.xz:

在这里插入图片描述

可以看到它是假拟一种Linux系统下的根目录,然后按照文件层级放置文件

按照这个思路我们就可以着手做自己的deb包了。

deb打包过程

先随便新建一个文件夹,名字也可以随便,作为deb包对应的"根目录"

我这里就以FirefoxDebianPackage为例:

在这里插入图片描述

然后就可以往里面新建文件夹了,必须要有一个DEBIAN文件夹,全大写,必须是这个名字。

然后是usr/binusr/shareusr/lib
在这里插入图片描述
之后从Firefox中国版的压缩文件里拿二进制文件,再从国际版的share文件夹拿用户文件,包括图标,文档,快捷方式等等。

一定要有图标文件和usr/share/applications中的.desktop文件

desktop文件的格式和作用可以自行移步百度。

需要注意的是usr/lib路径下的可执行文件是不能直接被访问的,而usr/bin是可以的,所以大多数deb包usr/bin的内容是一个软连接。Firefox也是,那我们也可以照做:

ln -s ../lib/firefox/firefox firefox

最后文件夹是这样子:

在这里插入图片描述

然后编辑打包文件,可以直接复制,也可以自己写一下。我直接复制原有firefox的deb包里的脚本。

理论上只需要control文件就可以了,最简单的模板如下:


Package: JFeng // 程序名称,中间不能有空格
Version: 1.1.0 //版本
Architecture: amd64 //架构
Section: utils //类别
Priority: optional //重要程度
Maintainer: MC  //打包人
Homepage: http://montecarlo.org.cn //软件包主页
Description: Gale debug //描述

最后的软件包层级:

在这里插入图片描述
然后切换到FirefoxDebianPackage所在的目录,修改权限,其中DEBIAN文件夹权限应该是755,usr/lib/firefoxusr/bin/firefox应该是u+x的可执行权限。

sudo chmod -R 755 FirefoxDebianPackage/DEBIAN/
sudo chmod u+x FirefoxDebianPackage/usr/lib/firefox
sudo chmod u+x FirefoxDebianPackage/usr/bin/firefox

执行打包命令:

sudo dpkg -b FirefoxDebianPackage firefox_cn.deb
sudo dpkg -b 要打包的目录 打出来deb包名称.deb

之后就会在对应目录下生成可以安装的deb包。

结束

参考文章:
Ubuntu中deb包详解及打包教程

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值