【linux】制作deb包方法 **
2024-10-20 04:01:45
前言
- 制作deb的方式很多
- 使用 dpkg-deb 方式
- 使用 checkinstall 方式
- 使用 dh_make 方式
- 修改原有的 deb 包
概念 **
- deb包
- deb包是在linux系统下的一种安装包
- 它是基于tar包的
- 所以同样会记录着文件的权限信息(读、写、可执行)、所有者、用户组等
- 可以使用
dpkg -l
命令来查看系统以及安装了哪些deb包。
- deb包组成(一般分成两部)**
- 控制信息 (放在 DEBIAN 目录下)
- 本 deb 包的 DEBIAN 目录下有 changelog、control、copyright、postinst、postrm 等文件(不一定全部都要有)
- changelog
- 记录了该deb包的作者、版本以及最后一次更新日期等信息
- control
- 记录了包名、版本号、架构、维护者及描述等信息
- copyright
- 文件记录了一些版权信息
- postinst
- 安装后执行的配置文件
- postrm
- 软件卸载后需要执行的脚本
- changelog
- 本 deb 包的 DEBIAN 目录下有 changelog、control、copyright、postinst、postrm 等文件(不一定全部都要有)
- 安装的内容
- 目录方式和文件系统根目录一样
- 最终存放着需要运行的脚本
- 控制信息 (放在 DEBIAN 目录下)
创建自己的deb包
创建目录
- 创建目录 myDeb
- 创建目录 myDeb/DEBIAN
- 创建目录 myDeb/home/lss/work
创建文件
- 在 myDeb/DEBIAN 目录下
构建 deb 包
运行
sudo dpkg-deb -b ../mydeb ../MyAdcSoftware_1.0.0_armhf.deb
sdpkg -c myHello_1.0.0_armhf.deb
查看制作包的内容sdpkg -i myHello_1.0.0_armhf.deb
安装了该软件sdpkg -s myHello
查看是否安装了该软件运行效果
文件源码
- myDeb/home/lss/work/myHello.sh
#/** @file myHello.sh
# * @brief 简要说明
# * @details 详细说明
# * @author lzm
# * @date 2020-11-08 19:33:53
# * @version v1.0
# * @copyright Copyright By lizhuming, All Rights Reserved
# *
# **********************************************************
# * @LOG 修改日志:
# **********************************************************
#*/
#!/bin/bash
echo hello
- myDeb/DEBIAN/control
Package: myHello
Version: 1.0.0
Section: free
Priority: optional
Essential: no
Architecture: armhf
Maintainer: lss <821350342@qq.com>
Provides: MyHello
Description: hello detect
- myDeb/DEBIAN/postinst
if [ "$1" = "upgrade" ] || [ "$1" = "install" ];then
echo "install"
fi
- myDeb/DEBIAN/postrm
if [ "$1" = "upgrade" ] ; then
echo "upgrade"
elif [ "$1" = "remove" ] || [ "$1" = "purge" ] ; then
echo "remove"
fi
最新文章
- 给自己立下一个巨大的flag
- localForage——轻松实现 Web 离线存储
- SOL面向对象 五大原则
- 测试c语言函数调用性能因素之测试三
- 如何让Windows程序只运行一个程序实例?
- 关于Html无宽度居中
- VLAN间通信----实验
- ASP.Net MVC-Web API使用Entity Framework时遇到Loop Reference
- 编写自己的javascript功能库之Ajax(仿jquery方式)
- 运行ORB-SLAM笔记_使用篇(二)
- R formulas in Spark and un-nesting data in SparklyR: Nice and handy!
- 一颗简单的JDBC栗子
- RMAN备份介质的移动与再恢复测试 [ catalog start with ‘dir’ ]
- ubuntu18安装navicat
- 深入理解mongodb查询条件语句
- linux 终端上网设置
- 【六】php 错误异常处理
- <;基础>; PHP 数据类型
- 2018软工实践—Beta冲刺(7)
- Debugging Java Native Memory Leaks