Advertisement

deb软件包构建

阅读量:

deb软件包构建

  • 8. Deb 软件包构建
    • 8.1 Linux 软件包构建
      • 8.2 Deb 包与 dpkg 工具箱

        • 8.2.1 Deb 包
          • Rpm 包
          • Dpkg 工具箱
          • Deb 包文件结构分析
          • 构建 Deb 包的方法
      • 8.3 apt 命令 和 apt-get 命令

        • 小实验:创建 build_deb.sh

8. deb 软件包构建

8.1 Linux 软件包

Debian 派系 Redhat 派系
源码包
二进制包后缀 deb rpm
底层工具 dpkg rpm
用户工具 apt yum
文件类型 保存目录
普通程序 /usr/bin
root 权限程序 /usr/sbin
各种各样 程序配置文件 /etc
日志文件 /var/log
文档文件 /usr/share/doc

软件包:由开发者遵循特定的编码规范和结构编写的一组代码集合。计算机仅能识别二进制文件(机器语言)。在安装过程中需要使用编译器将这些代码转换成可执行文件。

优点:

复制代码
* 开源免费
* 自由裁剪功能
* 修改源代码,添加自己想要的功能

缺点:

复制代码
* 安装步骤繁琐
* 编译时间长:30分钟以上????
* 新手无法解决编译问题

二进制包

优点:

复制代码
* 简单易用
* 安装速度快

缺点:

复制代码
* 无法阅读修改代码
* 无法裁剪功能
* 依赖性强

8.2 deb 包与 dpkg 工具

deb 包

概念 :Debian、Ubuntu、Deepin 等 Linux 发行版的软件安装包。

rpm 包

概念 :RedHat、Fedora、Centos等 Linux 发行版的软件安装包。

dpkg 工具

概念:基础层的软件包管理工具;负责处理已下载到本地以及已经安装的 deb 包。

常用命令

复制代码
    dpkg -i xxx.deb # 安装软件
复制代码
    dpkg -L xxxx	# 查看安装目录
复制代码
    dpkg -l xxxx	# 显示版本
复制代码
    dpkg -s xxxx 	# 详细信息
复制代码
    dpkg -c xxx.deb	# 罗列内容
复制代码
    dpkg -r xxxx	# 卸载软件

deb包文件结构分析

DEBIAN 目录:

  • configuration 文件:

  • Package: 软件名称

  • Version: 版本号

  • Section: 软件分类

  • Priority: 对系统的重要度

  • Architecture: 支持的硬件兼容性要求

  • Maintainer: 软件包维护人

  • Description: 软件详细说明

  • 安装前(可选):执行的 shell 脚本

    • 安装后(可选):执行的 Shell 脚本
    • 卸载前(可选):执行的 Shell 脚本
    • 卸载后(可选):执行的 Shell 脚本
    • 版权声明(可选):版权声明
    • 版本更新日志(可选):修改记录

软件具体安装目录:

视需求而定

构建 deb 包的方法

dpkg -b

dpkg-buildpackage

checkinstall

……

8.3 apt 命令 和 apt-get 命令

  • 软件更新计划官方软件包系统级管理工具
  • 优化了apt-get命令的分散性问题
  • 软件更新计划默认配置对用户友好性(直观的信息显示包括进度条和提示升级包数量)
  • 软件更新计划apt-get命令仍然支持但大多数情况下建议使用正确的appt命令

小实验:创建 build_deb.sh

复制代码
    #!/bin/bash
    
    version="0.1.2"
    author="fzx"
    package_name="$2"
    package_dir="$1"
    
    mkdir -p ./$package_dir/DEBIAN/
    
    # cat << EOF > 文件 内容 EOF:将“内容”追加到文件中
    cat << EOF > ./$package_dir/DEBIAN/changelog
    AUTHOR:$author
    VERSION:$version
    DATE:$(date -R)
    EOF
    
    cat << EOF > ./$package_dir/DEBIAN/copyright
    **************************************************************** *       @attention
        *       实验平台:i.MX6Q
        *       作者:fzx
    ****************************************************************
    EOF
    
    cat << EOF > ./$package_dir/DEBIAN/control
    Source: fzx
    Package: ${package_name%.*}
    Version: $version
    Section: debug
    Priority: optional
    Architecture:amd64 
    Maintainer:$author
    Description:fzx tools
    EOF
    
    # 安装成功后,打印log信息
    cat << EOF > ./$package_dir/DEBIAN/postinst
    #!/bin/sh
    echo "*******************************************************"
    echo "welcome to use $package_name"
    echo "*******************************************************"
    EOF
    
    # 权限最高到775
    sudo chmod 775 ./$package_dir/DEBIAN/postinst
    
    # dpkg -b 构建deb包
    dpkg -b $package_dir $package_name
在这里插入图片描述

helloworld.sh

复制代码
    #!/bin/bash
    
    echo "hello, world!!!"
复制代码
    sudo ./build_deb.sh helloworld helloworld.deb 	# 构建deb包
复制代码
    sudo dpkg -i helloworld.deb		# 安装deb包
复制代码
    sudo dpkg -r helloworld		# 卸载deb包
在这里插入图片描述

全部评论 (0)

还没有任何评论哟~