deb打包

本文详细介绍了Linux系统下如何创建和管理deb软件包,包括deb包的内部结构、控制文件、脚本文件的作用以及打包、安装和卸载的步骤。以redis和nginx为例,演示了从源码编译到打包成deb包的完整过程,强调了在打包过程中对依赖关系和安装脚本的管理。
摘要由CSDN通过智能技术生成

deb打包

deb包结构

deb 软件包里面的结构:它具有DEBIAN和软件具体安装目录(如etc, usr, opt, tmp等):

soft-name
    |--DEBIAN
    |       |--control
    |       |--postinst
    |       |--postrm
    |       |--preinst
    |       |--prerm
    |
    |--opt
    |   |--files
    |--etc
    |   |--files
    ...    

control文件

control:这个文件主要描述软件包的名称(Package),版本(Version),Installed-Size(大小),Maintainer(打包人和联系方式)以及描述(Description)等,是deb包必须具备的描述性文件,以便于软件的安装管理和索引。

Package: redis  # 包名称
Version: 6.0   # 版本号
Section: KOAL   # 申明软件的类别(常见的有'utils','net','mail','text','x11'等)
Priority: optional #软件对于系统的重要程度(如'required','standard','optional','extra')
Depends:   # 软件所依赖的其他软件包和库文件。如果是依赖多个软件包和库文件,彼此之间采用逗号隔开 
Architecture: amd64  # 软件包结构(如'i386','amd64','m68k','sparc','alpha','powerpc')
Maintainer: KOAL # 制作此打包文件的作者(zh[邮箱])
Description: KOAL Redis # 针对此软件的描述

脚本文件

preinst 文件于软件包安装之前会被调用

postinst 文件于软件包安装之后被调用

prerm 文件于软件包卸载之前调用

postrm 文件于软件包卸载之后调用

打包、安装、卸载

  1. 打包

​ dpkg -b 要打包的目录 生成包的名称

​ dpkg -b redisdeb redis.deb

  1. 安装

​ dpkg -i redis.deb

  1. 卸载

​ dpkg -P redis

执行流程

在这里插入图片描述

reids打包

包结构

redis-deb
    |--DEBIAN
    |       |--control
    |       |--postinst
    |       |--postrm
    |       |--preinst
    |       |--prerm
    |
    |--usr
    |   |--redis # 存放redis 编译好的源码包
    |	|--local
    |        |--bin # 存放安装好的redis命令

redis的编译安装

  1. 将下载redis.tar.gz 进行解压
  2. 进入解压好的redis目录下
  3. 执行 make 进行编译
  4. 安装 执行make PREFIX=/redis-deb/usr/redis/my install
  5. 将安装好的脚本文件 /redis-deb/usr/redis/my 拷贝到 /redis-deb/usr/local/bin

注意 /redis-deb/usr/redis/my 参考上面包结构

control

Package: koal-redis # 包名,卸载时使用的名称
Version: 5.0
Section: KOAL
Priority: optional
Depends:
Architecture: amd64  # 根据自己的平台进行修改
Maintainer: KOAL
Description: KOAL Redis

postinst

#!/bin/bash

echo "postinst"
cd /usr/redis
echo "*********start redis********"
redis-server redis.conf

prerm

#!/bin/bash
echo "prerm"
# 删除前结束redis进程
ps -ef | grep redis | grep -v grep | grep -v koal-redis | awk '{print $2}' | xargs kill -9

打包

  1. 跳转到 redis-deb目录的上级目录,执行 dpkg -b redis-deb redis.deb

  2. 安装 dpkg -i redis.deb

  3. 卸载 dpkg -P koal-redis

nginx 打包

包结构

nginx-deb
    |--DEBIAN
    |       |--control
    |       |--postinst
    |       |--postrm
    |       |--preinst
    |       |--prerm
    |
    |--usr
    |   |--nginx # 存放nginx 编译好的源码包
    |	|--local
    |        |--bin # 存放安装好的nginx 命令
    |--etc
    |	|--nginx # 存放nginx的配置文件
    |   

编译安装

  1. 将下载nginx.tar.gz 进行解压
  2. 进入解压好的nginx目录下
  3. mkdir /etc/nginx
  4. 配置 ./configure --prefix=/etc/nginx (将配置资源安装到/etc/nginx)
  5. 编译 make
  6. 安装 make install
  7. 将安装好的文件 /etc/nginx 拷贝到 /nginx-deb/etc/nginx 目录下
  8. /etc/nginx/sbin/ 下的文件 拷贝到 /nginx-deb/usr/local/bin 目录下

注意 ./configure --prefix=/etc/nginx 的 /etc/nginx 要与 /nginx-deb/etc/nginx 目录相对应

control

Package: nginx
Version: 1.18.0
Section: KOAL
Priority: optional
Depends:
Architecture: amd64
Maintainer: KOAL
Description: KOAL Nginx

postinst

#!/bin/bash

echo "postinst"
echo "====start redis===="
nginx
echo "====install succsee===="
echo "config file in /etc/nginx"

prerm

#!/bin/bash

echo "prerm"
nginx -s stop

打包

  1. 跳转到 redis-deb目录的上级目录,执行 dpkg -b nginx-deb nginx.deb

  2. 安装 dpkg -i nginx.deb

  3. 卸载 dpkg -P nginx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值