Debian 安装包的简单制作

在Linux分发软件有两种形式,一种是源码,一种是安装包。当目标机器不带有编译环境,且不能联网时,安装包就是唯一的方案了。

Linux 下的安装包有多种格式,不同Linux使用的格式并不完全相同。市场上主流的安装包格式是*.deb *.rpm 其中deb是debian系列的安装包,rpm是CentOS系列的安装包。

本文主要介绍的是一种简单的deb安装包的制作方法,使用范围有限。如需了解更多可以阅读Debian 新维护人员手册

所需工具

如果没有安装dpkg工具包的话,就先安装(一般是默认安装的)

sudo apt-get install dpkg

文件结构

example-package
├── DEBIAN   (必须)
│   ├── control (必须)
│   └── md5sums
└── usr
    ├── local
    │   ├── bin (可执行文件安装位置)
    │   └── lib  (使用到的相关库,目标机器没有安装)
    └── share (非必须)
        └── doc
            └── example-package

准备相关文件

程序编译完成后,将编译后的文件放到 example-package/usr/local/bin下 根据需要按上方的文件结构添加内容

(adsbygoogle = window.adsbygoogle || []).push({});

编写control 文件

Package: example-package
Version: 1.0-1
Architecture: amd64   # 运行的CPU架构
Maintainer: UserName <邮箱>
Installed-Size: 10
Section: unknown  # 应用类型  不知道就用 unknown 
Priority: optional   # 优先集 一般就用 optional
Description: this is a test package    # 简介 不超过60个字符
 this is a test  # 详细介绍

制作deb包

  1. 计算MD5 find ./usr -type f | xargs -I{} md5sum {} > DEBIAN/md5sums
  2. 打包 dpkg-deb -b example-package 命令执行完成之后会在当前目录生成 example-package.deb文件,一个deb安装包就OK了。

小结

此方法可以方便的制作安装包,可以方便的分发自己的软件。但是亦有其缺陷,没有相应的更改记录。这种打包方法生成的包不能发布到软件源,但一般软件分发没有问题。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏上善若水

0x01缓存基本概念一览

它的主要实现思想是:在程序和数据源之间引入一个中间层即Cache,访问cache的时间成本肯定远低于数据源。

16240
来自专栏游戏杂谈

wriesharek同时监听多个端口

之前的文章《wireshark解析自定义的protobuf协议》 ,当时只监听了一个端口,而如果游戏同时有二个 socket 连接,比如一个是网关另外一个是其它...

23130
来自专栏Web 开发

用PHP来执行定时任务

上个月有个需求,用PHP写了一个接口给SDK使用,原始数据使用MySQL进行记录。热数据用Redis进行+1的原子操作。每隔一定时间,由一个PHP脚本(姑且就命...

19100
来自专栏抠抠空间

Node.js基础

31200
来自专栏专业duilib使用+业余界面开发

duilib中list拖动表头大小内容大小跟随变化的一个示例

22040
来自专栏有趣的django

CRM客户关系管理系统(四)

34800
来自专栏WindCoder

《Linux内核分析》之触发一个系统调用实验总结

系统调用列表中可用的很多,可惜对用代码进行系统调用不太清楚,只好从网上窃取了一份,地址在最后放上。此处以fork()为例。

11730
来自专栏机器学习实践二三事

Ipynb文件的打开

RT,ipynb文件用gedit直接打开的话,太多附加信息,此时需要在浏览器端打开 升级ipython 太低版本的ipython是不行的,出现的错误可能是这样的...

26080
来自专栏企鹅号快讯

Redis

Redis介绍: (Redis)是一个基于 key-value 键值对的持久化数据库存储系统。支持多种数据结构,包括 string (字符串)、list (链表...

47170
来自专栏IT笔记

Nginx学习之HTTP/2.0配置

哎呀,一不小心自己的博客也是HTTP/2.0了,前段时间对网站进行了https迁移并上了CDN,最终的结果是这酱紫的(重点小绿锁,安全标示以及HTTP/2.0请...

405140

扫码关注云+社区

领取腾讯云代金券