什么是 makeself 以及 .run 文件是什么
简单来说,makeself 把一些文件打成压缩包,然后把这个压缩包打包成 POSIX sh 脚本。
很多巨大 xxx.run 文件或者 .sh 就是 makself 打出来的,它不是简单的一个 shell 脚本,它自包含了压缩包。(当然 Linux 中扩展名无关紧要,只是 .run 通常是)NVIDIA-Linux-xxx.run 就是用这个打出来的。印象当中 Mathematica 的 Mathematica_13.2.1_LINUX.sh 好像也是这个打出来的。
如何使用 makeself
如何打包:
如下目录结构
.
└── dir
    ├── file1
    ├── file2
    └── install.shmakeself dir test_makeself.run v0.1 ./install.sh就会在当前目录生成 ./test_makeself.run
更多参数详见 man.
如何查看包
警告:这个脚本是很随意的,所以下面的参数只是通常情况下可能支持的参数。请一定要确保脚本是来自于可信源,否则有可能你只是想查看帮助,实际上执行了恶意程序。
帮助
./test_makeself.run --help查看解包后执行的脚本和参数
  ➜  ./test_makeself.run --info
Identification: v0.1
Target directory: dir
Uncompressed size: 4 KB
Compression: gzip
Encryption: n
Date of packaging: Mon Jun 12 19:23:34 CST 2023
Built with Makeself version 2.5.0
Build command was: /usr/bin/makeself \
    "dir" \
    "test_makeself.run" \
    "v0.1" \
    "./install.sh"
Script run after extraction:
     ./install.sh
dir will be removed after extraction解包
./test_makeself.run --noexec --target extract_dirextract_dir
├── file1
├── file2
└── install.sh