使用 makeself 创建 Linux 安装包
安装包的格式
这种安装包的格式非常简单
|----------|
| 安装脚本 |
|----------|
| 压缩包 |
|----------|
安装包由一个文件组成,文件的前面是一段脚本,后面的就是一个压缩包。
当运行安装包时,会执行前面的脚本,对后面的压缩包进行处理。
一个简单的例子
假设我们有下面的文件夹结构
package
setup.sh
test.txt
test.txt 文件是一句话: “Hello World” 。setup.sh 读取 test.txt 文件并显示出来。
那么我们如何打包呢?
首先将 package 压缩
1
tar -zcvf package.tar.gz package/*
然后写一段下面的安装脚本:install.sh
最后将这段脚本和压缩包连在一起就做成了上面那种格式的安装包。
1
cat install.sh package.tar.gz > package.run
执行 package.run 就会运行最开始的脚本。
install.sh 做的最重要的事情就是用 tail 将脚本后面的压缩包解出来,放到一个临时目录。然后解压并运行里面的 setup.sh 脚本。最后有个 exit 0
退出程序。安装包后面的压缩包数据就不会执行。
makeself 工具
makeself.sh是一个小型的脚本,他生成像上面描述的那种安装包。提供了校验以及能够用多种压缩格式。
它的使用格式如下:
|
|
[args]
是 makeself 的一些参数,具体可以通过makeself --help
查看archive_dir
是我们要压缩的目录,对应上面的=package=file_name
就是生成的文件名,对应上面的package.run
label
是一个字符串,用于描述这个安装包startup_script
是启动脚本,当解压后会运行这个脚本。一般是写一个脚本文件setup.sh=,=startup_script
就是./setup.sh
[script_args]
是传给startup_script
的参数
使用 makeself
打包上面的例子:
|
|
执行后会生成 package.run
文件。执行 package.run
就会安装,安装流程如下:
|--------------------|
| 校验文件 |
|--------------------|
| 解压压缩包 |
|--------------------|
| 进入压缩包目录 |
|--------------------|
| 执行 setup.sh 脚本 |
|--------------------|
package.run
也可以有一些参数,可以通过 ./package.run --help
查看。
|
|
上面可以将 args1 args2
传给 setup.sh
脚本
更多内容可以参考 makeself
的官方网站:https://makeself.io/