linux系统创建deb安装包

linux系统创建deb安装包

创建文件夹:

文件夹格式:

mydeb
├── DEBIAN
│ ├── control #记录软件包各种信息 ,比较重要
│ ├── postinst #安装后运行脚本(文件拷贝到系统后运行的脚本)
│ ├── postrm #卸载包后运行脚本
│ ├── preinst #安装前运行脚本(拷贝文件到系统前运行的脚本)
│ └── prerm #卸载前运行的脚本
├── etc
├── lib
│ └── systemd
│ └── system
│ └── xxx.service
└── usr
└── local
├── bin
├── include
└── lib

详细描述:

DEBIAN

目录下存放的是程序的信息和处理脚本。

其中control 内容举例:

Package: kellan-test
Version: 1.0
Architecture: arm64
Maintainer: Kellan Fan
Installed-Size: 128
Recommends:
Suggests:
Section: devel
Priority: optional
Multi-Arch: foreign
Description: just for test
  1. Package 包名

  2. Version 版本

  3. Architecture 目标机架构(i386, arm等)

  4. Maintainer 维护者

  5. Depends 依赖软件包

  6. Description 描述

需要注意目标架构Architecture ,deb在不同架构的平台上运行会不一样,要求此处的描述要跟目标主机一致(区分大小写),不然会安装失败。

其他的内容都是安装前后和卸载前后运行的脚本命令。

etc

里面放的是程序的配置文件,如 xxx.ini 之类的。

lib

里面存放的是服务service,包含让可执行文件开机后自启动。具体的举例如下:

[Unit]
Description= Auto basic service 
Requires=basicIO.service
After=network.target

[Service]
Type=forking
PIDFile=/run/myservice.pid
ExecStart=/usr/local/bin/myservice.out -c /etc/myservice/myservice.ini -B
ExecReload=/bin/kill -SIGHUP $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID

[Install]
WantedBy=multi-user.target

阐述:
Description :服务描述
Requires:本服务依赖于其他的服务
After:在这些服务启动后运行

Type:forking模式下,父进程退出子进程正常运行
PIDFile:记录子进程PID于此
ExecStart:启动服务时运行的脚本或者命令
ExecReload:重启服务时运行的脚本或者命令,可参考例子
ExecStop:停止服务时运行的脚本或者命令,可参考例子

WantedBy:…

usr

这是存放我们最重要的应用程序的文件夹,大致格式如开头所写。

include装头文件、lib装库、bin装可执行文件。

一般应用程序会安装在/usr/loacl/目录下,如有特殊要求自行设定。

其他

1、打包命令: dpkg -b [文件夹路径] [生成deb名] (文件夹路径到DEBIAN上级目录即可)

2、除了DEBIAN安装后不会存在,其他的文件夹及其里面内容会按mydeb为根目录,依次安装到路径下。没有则创建。

3、安装时出现报错,报错会不全面,尝试修改mydeb里面内容,重新打包,再安装,会有不一样的报错。

4、官方的debian制作手册(比较长)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值