• linux进阶-构建deb软件安装包


    Linux软件包的组成:源码包和二进制包。

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

    源码包优点:开源免费、自由裁剪、修改源代码。

    源码包缺点:安装步骤繁琐、编译时间长、新手无法解决编译问题。

    二进制包优点:简单易用、安装速度快。

    二进制包缺点:无法阅读修改源码、无法裁剪功能、依赖性强。

    二进制包:deb包和rpm包。

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

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

    dpkg工具:底层的包管理工具,主要用于对已下载到本地和已经安装的deb包进行管理。

    安装软件:dpkg -i xxx.deb

    查看安装目录:dpkg -L xxx

    显示版本:dpkg -l xxx

    详细信息:dpkg -s xxx

    目录打包:dpkg -b xxx xxx.deb,第一个为打包的目录名,第二个为生成包的名称。

    罗列内容:dpkg -c xxx.deb

    卸载软件:dpkg -r xxx

    deb包文件结构分析

    构建一个deb包 

    创建deb_pack文件夹,以存放build_deb.sh、helloworld文件夹和helloworld.deb。

    打开vim编辑器,名称为build_deb.sh。deb_pack/build_deb.sh。修改权限777。

    1. #!/bin/bash
    2. package_dir="$1"
    3. package_name="$2"
    4. version="0.0.1"
    5. author="superhero"
    6. mkdir -p ./$package_dir/DEBIAN/
    7. cat <<EOF > ./$package_dir/DEBIAN/changelog
    8. VERSION:$version
    9. AUTHOR:$author
    10. DATE:$(date -R)
    11. EOF
    12. cat <<EOF > ./$package_dir/DEBIAN/copyright
    13. *********************************************
    14. *
    15. * superhero + rock pi 4b+
    16. *
    17. *********************************************
    18. EOF
    19. cat <<EOF > ./$package_dir/DEBIAN/control
    20. Source:superhero
    21. Package:${package_name%.*}
    22. Version:$version
    23. Section:debug
    24. Priority:optional
    25. Architecture:arm64
    26. Maintainer:$author
    27. Description:Embedfile Tools
    28. EOF
    29. cat <<EOF > ./$package_dir/DEBIAN/postinst
    30. #!/bin/sh
    31. echo "*********************************************"
    32. echo "*"
    33. echo "* $package_name install over,no gratias!!!"
    34. echo "*"
    35. echo "*********************************************"
    36. EOF
    37. sudo chmod 775 ./$package_dir/DEBIAN/postinst
    38. dpkg -b $package_dir $package_name

    创建helloworld/usr/bin文件夹。进入deb_pack/helloworld/usr/bin,打开vim编辑器,名称为helloworld.sh。修改权限775。

    1. #!/bin/bash
    2. echo "hello world!!!"

    返回deb_pack文件夹。

    1. sudo ./build_deb.sh helloworld helloworld.deb
    2. sudo dpkg -i helloworld.deb
    3. helloworld

    打包命令:

    1. dpkg -b
    2. dpkg -buildpackage
    3. checkinstall
    4. ...

    apt命令和apt-get命令

    apt是新版的包管理工具;

    解决apt-get命令过于分散的问题;

    apt默认属性对用户友好(进度条、提示升级包数)

  • 相关阅读:
    大数据日志可视化分析(Hadoop+SparkSQL)
    Linux Centos 9保姆级系统安装教程
    「51媒体」文旅行业邀约媒体宣传应该注意哪些问题?
    使用 Google Cloud Run 在 GCP 上部署 React 应用
    【力扣每日一题】2023.9.28 花期内花的数目
    Trino 387 JVM 配置详解
    机器学习笔记 探索性数据分析(EDA) 中的配对图详述
    【Linux】Centos yum源替换
    【算法】二分查找-20231121
    hadoop 3.x大数据集群搭建系列4-安装Spark
  • 原文地址:https://blog.csdn.net/weixin_47077788/article/details/127952716