Linux制作单文件一键安装包;类似exe、app的单文件一键安装方法;客制化自定义的自解压文件

45 篇文章 0 订阅
15 篇文章 0 订阅

本人博客已经迁移到nasdaqgodzilla.github.io

应用

  • 单文件的一键安装包,通过命令行或鼠标点击执行的安装包。

单文件一键安装包的结构

  • 本质是将一个能够执行安装逻辑的脚本与待安装的文件拼接在一起。通过linux cat命令将安装文件拼接到安装脚本的后面变成一个新的组合文件。

单文件一键安装包的结构如下

--------------
|  安装脚本  |
| install.sh |
|---      ---|
|  安装文件  |
|     so     |
|    tar     |
|    bin     |
|    ....    |
--------------
  • 其中,为了方便对待安装文件的管理,往往将它们打包为一个整体
--------------
|  安装脚本  |
| install.sh |
|---      ---|
|  安装文件  |
| tar(so bin)|
--------------

单文件一键安装包的制作

制作安装文件

  • 将要安装的文件打包为一个tar:test.tar

制作install.sh

  • 实现调用bash:所以第一行:#!/bin/bash
  • 分离出安装文件
    • 后面会讲到把install.sh和安装文件拼接在一起的方法是用cat,因此分离安装文件的方法就是用tail
    • tail -n +$lines "$0" > /tmp/test.tar
    • 其中,变量lines是install.sh的总行数,也是安装文件tar包的起始行
  • 分离出安装文件后,就围绕安装文件进行文件的编译和拷贝了,最后清除临时文件
  • 脚本最后一条有效命令必须是exit 0;这要求bash解释器在这个命令下退出,不要执行后面的代码。因为后面的数据是不能执行的安装包的数据文件
  • 注意:install.sh的最后一行要追加一行空行,拼接过来的安装文件必须在空行的下一行开始。

将安装文件拼接到install.sh后面

  • cat install.sh test.tar > installer.run

最终产物的内容:

#!/bin/bash
lines=6     # tar包(即安装文件)起始的位置
tail -n +$lines "$0" > /tmp/test.tar    # 分离出本文件后面拼接的数据包
exit 0      # 在此之前可以做其他诸如拷贝文件、编译等安装工作

[test.tar] # 安装包从这里开始。使用vim打开时,这里是乱码,是tar的数据

单文件一键安装包的工作原理

  • 通过cat拼接文件
  • 通过tail分离文件
  • 本质为bash脚本能够直接运行
  • 是一种具有bash文件头的拼接文件,利用了bash执行命令
  • install.sh通过Linux shell bash解释器执行,bash从这个一键安装包的第一行开始执行,即执行install.sh。install.sh的工作是将sh之后的文件分离出来,再将分离结果拷贝到系统的目标位置,实现安装。
    • 如何拼接文件:cat命令
    • 如何分离文件:tail命令。只要知道了安装包数据从那一行开始,那么tail就能准确地分离出数据包。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值