Linux定制自定义格式的一键安装、解压包
应用
- 单文件的一键安装包,通过命令行或鼠标点击执行的安装包。
单文件一键安装包的结构
- 本质是将一个能够执行安装逻辑的脚本与待安装的文件拼接在一起。通过linux cat命令将安装文件拼接到安装脚本的后面变成一个新的组合文件。
1 | ``` |
- 其中,为了方便对待安装文件的管理,往往将它们打包为一个整体
1
2
3
4
5
6
7--------------
| 安装脚本 |
| 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
最终产物的内容:
1 | #!/bin/bash |
单文件一键安装包的工作原理
- 通过cat拼接文件
- 通过tail分离文件
- 本质为bash脚本能够直接运行
- 是一种具有bash文件头的拼接文件,利用了bash执行命令
- install.sh通过Linux shell bash解释器执行,bash从这个一键安装包的第一行开始执行,即执行install.sh。install.sh的工作是将sh之后的文件分离出来,再将分离结果拷贝到系统的目标位置,实现安装。
- 如何拼接文件:cat命令
- 如何分离文件:tail命令。只要知道了安装包数据从那一行开始,那么tail就能准确地分离出数据包。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 PeaceMaker!
评论
DisqusWaline