gpt4 book ai didi

linux - Linux 二进制安装程序(.bin、.sh)如何工作?

转载 作者:IT老高 更新时间:2023-10-28 12:31:00 28 4
gpt4 key购买 nike

某些软件(例如 NetBeans IDE)以 .sh 文件的形式提供 Linux 安装程序。好奇他们是如何将整个 IDE “打包”到“shell 脚本”中的,我在编辑器中打开了该文件。我看到了一些纯文本 shell 脚本代码,然后是一些随机乱码,我认为这是“二进制”或非纯文本。

我想知道他们如何混合普通的 shell 脚本,然后可能会调用“不可读”的东西,这将是二进制文件。

对此有何见解?

最佳答案

基本上,它是一个预先添加到某种压缩存档(例如 tar 存档)的 shell 脚本。您对自己使用 tailsed 命令(Bourne shell 中的 $0 变量)剥离前面的 shell 脚本并传递休息给你的解压器。

例如,将以下脚本创建为自解压:

#!/bin/sh -e
sed -e '1,/^exit$/d' "$0" | tar xzf - && ./project/Setup
exit

上面的 sed 命令删除文件第一行到第一行以“exit”开头的所有行,然后传递其余行。如果在“exit”行之后立即开始的是一个 tar 文件,tar 命令将解压它。如果成功,将执行 ./project/Setup 文件(可能是从 tarball 中提取的)。

然后:

mkdir project
echo "#!/bin/sh" > project/Setup
echo "echo This is the setup script!" >> project/Setup
chmod +x project/Setup
tar czf - project >> self-extracting

现在,如果您摆脱旧的 project 目录,您可以运行 self-extracting,它将提取该 tar 文件并运行安装脚本。

关于linux - Linux 二进制安装程序(.bin、.sh)如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/955460/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com