Linux二进制安装程序(.bin,.sh)如何工作?
某些软件(例如NetBeans
IDE)将Linux安装程序随附在.sh文件中。我很好奇他们如何将整个IDE打包为“
shell脚本”,我在编辑器中打开了文件。我看到了一些纯文本shell脚本代码,然后看到了一些乱码,我认为是“二进制”或非普通文本。
我想知道他们如何混合普通的shell脚本,然后可能将它们称为“不可读的”东西,即二进制文件。
有什么见解吗?
回答:
基本上,这是一个shell脚本,位于某种压缩存档(例如tar存档)之前。您可以对自己使用tail
or sed
命令($0
Bourne
shell中的变量)来剥离前面的shell脚本,并将其余的脚本传递给您的非归档器。
例如,将以下脚本创建为self-extracting
:
#!/bin/sh -esed -e '1,/^exit$/d' "$0" | tar xzf - && ./project/Setup
exit
sed
上面的命令从文件的第一行到以“ exit”开头的第一行删除所有行,然后将其余的行继续通过。如果紧接在“
exit”行之后开始的是tar文件,则tar
命令将提取该文件。如果成功,则将执行./project/Setup
文件(可能是从tarball中提取的)。
然后:
mkdir projectecho "#!/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二进制安装程序(.bin,.sh)如何工作? 的全部内容, 来源链接: utcz.com/qa/420810.html