Linux 之 deb 包的生成、安装和卸载

deb

  • DEB 是 Debian 软件包格式的文件扩展名,是 Unixar 的标准归档,将包文件信息以及包内容,经过 gziptar 打包而成。

  • deb 基于 tar 包,因此本身会记录文件的权限以及所有者/用户组。

  • deb 包组成部分:

    • 数据包——包含实际的安装的程序数据,文件名为 data.tar.XXX;在安装过程中,改包里的数据会被直接解压到根目录(/),因此在打包之前需要根据文件所在位置设置好相应的文件目录树。如下:

    • 安装信息及控制脚本包——包含deb的安装说明,标识,脚本等,文件名为 control.tar.gz;一般有5个文件:control,用于记录软件标识,版本号,平台,依赖信息等数据;preinst,在解包data.tar.gz前运行的脚本;postinst,在解包数据后运行的脚本;prerm,卸载时,在删除文件之前运行的脚本;postrm,在删除文件之后运行的脚本。如下:

    package: package-name
    version: 1.0.0-2021.05.20
    section: Software
    architecture: arm64
    maintainer: lsm
    description: some package description
    • deb文件的二进制数据,包括文件头等信息,一般看不到,在某些软件中打开可以看到。

control字段信息说明

  • package:程序名称,中间不能有空格
  • version:软件版本
  • description:程序说明
  • section:软件类别,utils,net,mail,text,x11
  • priority:软件对于系统的重要程度,required,standard,optional,extra等
  • essential:是否是系统最基本的软件包,yes/no,若为yes,则不允许卸载(除非强制性卸载)
  • architecture:软件所支持的平台架构,i386,arm64,amd64,m68k,sparc,alpha,powerpc等
  • maintainer:维护者信息
  • source:软件包的源代码名称
  • depends:软件所依赖的其他软件包和库文件,若依赖多个软件包和库文件,采用逗号隔开
  • pre-depends:软件安装前必须安装、配置依赖性的软件包和库文件,常用于必须的预运行脚本需求
  • recommends:推荐安装的其他软件包和库文件
  • suggests:建议安装的其他软件包和库文件

打包

// 包的所有者和用户组最好为root
dpkg -b MyProject MyProject-linux_arm64.deb

安装

dpkg -i MyProject-linux_arm64.deb

卸载

dpkg -P myproject

Linux 之 deb 包生成、安装、卸载的更多相关文章

  1. Ubuntu下deb包的安装方法 (zz)

    Ubuntu下deb包的安装方法 分类: Ubuntu10使用技巧 2010-10-11 23:49 42969人阅读 评论(3) 收藏 举报 ubuntudebdebianlinux deb是deb ...

  2. ubuntu下deb包的安装方法

    ubuntu下deb包的安装方法 简介 deb是debian linus的安装格式,跟red hat的rpm非常相似,最基本的安装命令是:dpkg -i file.deb dpkg 是Debian P ...

  3. 【转】Ubuntu下deb包的安装方法

    [转]Ubuntu下deb包的安装方法 deb是debian linus的安装格式,跟red hat的rpm非常相似,最基本的安装命令是:dpkg -i file.deb dpkg 是Debian P ...

  4. 转载:Ubuntu下deb包的安装方法

    转载:Ubuntu下deb包的安装方法,http://blog.csdn.net/kevinhg/article/details/5934462 deb是debian linus的安装格式,跟red ...

  5. Ubuntu下deb包的安装方法 - kevinhg的博客 - 博客频道 - CSDN.NET

    Ubuntu下deb包的安装方法 - kevinhg的博客 - 博客频道 - CSDN.NET dpkg -i

  6. Linux下deb包安装工具(附带安装搜狗输入法)

    环境是在ubuntu14下的 #1.gdebi安装 使用deb安装工具gdebi,这个工具能解决所有依赖问题 sudo apt-get install gdebi #2.搜狗输入法 deb包下载地址: ...

  7. Linux 学习日记 2 (常用命令 + deb包的安装)

    常用命令:以下是一些比较常用的命令,主要是关于安装软件的一些命令 @_@ cd ~/下载(文件名)/ //进入这个文件夹 , ~指的是根目录 cd .. //返回上一级文件夹 sudo apt-get ...

  8. QT程序制作deb包并安装在应用程序菜单

    制作原理:打包:将QT制作的源程序(没有编译的)用debian压缩打包(这里是用脚本对源程序再编译)安装:将deb包中的源程序解压(默认解压到根目录)到规定系统文件中并编译(postinst脚本)卸载 ...

  9. Linux下RPM包的安装

    Linux下RPM包安装 二进制包(RPM包.系统默认包) RPM安装 rpm -ivh 包全名(查询依赖网址:http://www.rpmfind.net) -i(install):安装 -v(ve ...

随机推荐

  1. Nacos C++客户端开发文章

    前段时间关注了下阿里巴巴发起的开源项目Nacos,这是一个注册.配置中心(Naming And Config),支持各种语言的客户端,但是唯独没有C++的,考虑到以前做过一段时间的C++程序员,不禁一 ...

  2. osg纯手工画球+贴纹理

    手动计算球面顶点的坐标,纹理坐标,来画球并贴纹理 其中createSphereGeom()函数的的二个参数为18,意思是在经纬度上每10度设一个点,因为经度一共是180度,180/18=10,相当于横 ...

  3. systemverilog动态数组

  4. JavaSE-QuickStart

    老话常说:基础不牢地动山摇,于是我在b站上看杨中科老师的课程脑补一下,便记录这岁月的点滴 1.什么是编程 ? 编程:编写能够控制计算机来执行特定任务的代码. 2.什么是编程语言 ? 编程语言:是指程序 ...

  5. [leetcode] 875. 爱吃香蕉的珂珂(周赛)

    875. 爱吃香蕉的珂珂 这题时间要求比较严格... 首先,将piles排序,然后二分查找. 总之,答案K肯定位于piles[?]piles[?+1]或者1piles[0]之间 所以我们先二分把?找到 ...

  6. RedisPool

    class RedisPool(object): instance = None def __init__(self, host='192.168.2.129', port=7000, passwor ...

  7. Go语言的函数07---闭包练习(ATM存取款)

    package main import "fmt" /* @ATM(闭包练习) ·写一个Atm(函数),返回存款,取款两个内层函数 ·存款,取款两个函数,都以一个金额为参数,返回存 ...

  8. 转载 | Scala 如何避免使用 Null

    在 Java 里,null 是一个关键字,不是一个对象,所以对它调用任何方法都是非法的. Scala 的 Option类型 Scala在变量和函数返回值可能不会引用任何值的时候使用 Option 类型 ...

  9. Django(50)drf异常模块源码分析

    异常模块源码入口 APIView类中dispatch方法中的:response = self.handle_exception(exc) 源码分析 我们点击handle_exception跳转,查看该 ...

  10. CVPR2020论文解读:3D Object Detection三维目标检测

    CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...