0.6LINUX下安装一个deb二进制程序(上)此篇是一些概念

第十七讲 构建一个deb软件安装包

学习内容

1.Linux软件包

2.deb包与dpkg工具

3.构建一个helloworld的deb包

4.apt工具 //安装软件经常使用apt工具

1.了解Linux软件包的组成

文件类型保存目录
普通程序/usr/bin
root权限程序/usr/sbin
程序配置文件/etc
日志文件/var/log
文档文件/usr/share/doc

Linux软件包分为两大类:源码包 和 二进制包

  • 源码包 //源代码程序,开发者按着一定的格式和语法编写出来的,使用时要用GCC编译成二进制执行

    优点:

    • 开源免费

    • 自由裁剪功能

    • 修改源代码

    缺点:

    • 安装步骤繁琐 //因为要使用编译器将源码编译成二进制文件,3M软件在linux下安装都得半个小时
    • 编译时间长
    • 新手无法解决编译问题
  • 二进制包 //因为源码包的缺点,安装慢不适合新手,提出了二进制包。

    ​ //二进制包 就是 源码包编译后的包

    优点:

    • 简单易用
    • 安装速度快

    缺点:

    • 无法阅读修改源码 //编译好了,无源码,无法修改

    • 无法裁剪功能

    • 依赖性强

二进制包又分为两类:deb包 和 rpm包

deb包

概念

Debian、Ubuntu、Deepin等Linux发行版的软件安装包。//Linux一切皆文件,命令,程序都可以安装

rpm包

概念

RedHat,Fedora,Centos等Linux发行版的软件安装包。

Ubuntu用的是deb包,dpkg工具对已经下载和安装deb包进行管理

dpkg工具(Debian package)

概念

Debian package的简写,为”Debian“ 操作系统 专门开发的套件管理系统,用于软件的安装,更新和移除

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

dpkg工具对 deb包进行管理 的常用命令
安装软件:dpkg -i xxxx.deb
查看安装目录:dpkg -L xxxx   //父目录-子目录层层递进的显示
显示版本:dpkg -l xxxx
详细信息:dpkg -s xxxx    //软件名称  版本 软件类别......
罗列内容:dpkg -c xxxx.deb //打印deb包文件的内容
卸载软件:dpkg -r xxxx
打包文件:dpkg -b   //举例:dpkg -b  $1hellowold1       $2hellowold1.deb                                   //给文件打包  $1将要打包的文件名  $2生成包的名称                                 //即把hellowold1 的东西(你写的程序+DEBIAN) 打包成 helloworld.deb这个东西       
      //便于后期 dpkg -i    helloworld.deb  安装这个东西
      //注意$1hellowold1文件夹 必须包含 你写的程序+DEBIAN文件夹(这里至少有个control) 才能打包
deb包文件结构分析
野火的build_deb.sh这个shell文件干了啥 ,给你建立了一个DEBIAN文件,文件里有一些安装相关日志如下:
  • DEBIAN目录:

    • control文件:

      • Package:软件名称

      • Version:版本

      • Section:软件类别

      • Priority:对系统的重要性

      • Architecture:支持的硬件平台,软件支持ARM架构/X86架构

      • Maintainer:软件包的维护者

      • Description:对软件的描述

    • preinst文件 : 安装之前执行的shell脚本 //安装文件之前文件要执行的操作

    • postinst文件 : 安装之后执行的shell脚本 //安装文件之后执行操作,显示一些安装成功之类的信息

    • prerm文件:卸载之前执行的shell脚本 //卸载之前,显示一些提示之类的信息

    • postrm文件: 卸载之后执行的shell脚本

    • copyright文件:版权声明

    • changlog文件: 修改记录

  • 软件具体安装目录:

    ​ 视实际需求

构建一个helloworld的deb包

1.先创建一个安装路径

①mkdir deb_dpkg_study

②mkdir -p helloworld/usr/bin/ //bin代表二进制,系统的/usr/bin/这个路径下放的是bin二进制文件

​ //我们也建立这样一个类似的路径(没/),这样程序安装后会自动放入系统路径下bin

2.构建shell文件

①deb_dpkg_study/helloworld/usr/bin/helloworld.sh //创建helloworld.sh这个shell文件

②写个代码:echo “hello,world!”;

3.安装文件 要用到 build_deb.sh 这个文件

①./build_deb.sh helloworld helloworld.deb

​ //build_deb.sh 文件传入两个参数 $1:package_dir $2:package_name

②./build_deb.sh这个文件的作用就是:给你写的shell程序helloworld 给里面加了contol postinst copyright changlog的文件信息,这样安装完软件后就会有这些信息

③dpkg -b $package_dir $package_name  将这些打包成一个helloworld.deb安装包

3.运行shell文件

​ terminal输入 helloworld.sh 显示你写的代码 就证明deb包安装成功了!

​ 这段代码就是一个程序了

演示**:dpkg -b** :将文件夹打包成.deb文件(.deb是一个二进制包,用于文件安装)

PS: **单独使用dpkg -b对.shell文件打包是不行的!!**必须构建一个DEBIAN文件夹,文件夹起码有control文件才能构建.deb文件。

这是linux的规定,这样才能对安装的文件进行起码的管理!

apt命令和apt-get命令 //ubuntu14.0后就用apt了 不用apt-get
  • apt是新版的包管理工具
  • 解决apt-get命令过于分散的问题,一个apt解决一切
  • apt默认属性对用户友好(进度条、提示升级包数)
  • apt install xx对软件包安装

SUMMERIZE

​ |-源码包(c/c++或其他语言写要gcc编译后成二进制 安装才能用)

1.Linux软件包–

​ |- 二进制包–deb包(ubuntu下的二进制包的名字)

2.dpkg(Debain package)工具:这工具就是操作二进制包deb包的

3.写一个deb包

①写一个shell程序 放在在xx文件的./usr/bin路径下

②通过build_deb.sh 文件 给你的shell程序加一些说明信息 (build_deb.sh)是自己写的

③dpkg -b xx文件 xx.deb //构建出deb包

④dpkg -i xx.deb 安装出deb包

⑤完毕,可以在terminal里执行xxx.shell文件了 无需之前的./xxx.shell 直接在就在bin安装好好了 直接用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值