2023年12月2日发(作者:)
bin包的制作需要三步:1、 编写shell脚本文件; 2、 对可执行程序及相关文件进行打包压缩; 3、 使用cat命令把这两个文件封装成一个bin安装包;
最后生成的bin文件是一个前半部分为shell脚本文件,后半部分为二进制压缩包文件的文件;我们直接运行这个bin文件,会首先执行前半部分的脚本,所以我们需要再脚本里编写程序把后半部分的压缩包分解出来,并进行解压和运行;
一、 编写shell脚本;
脚本文件主要功能是把cat命令打包进bin文件中的二进制压缩包分离出bin文件,并进行解压;分离操作可以用两种方法来做:sed命令和tail命令;
1、 使用sed命令
sed -n -e '1,/^exit 0$/!p' $0 > 2>/dev/null
2、 使用tail命令
tail +$lines $0 >
但是使用中发现第一种方法并不能成功分离出压缩文件,不知道什么原因,研究了一下午也没解决,对比cat封装前的压缩包和分离出来的压缩包,发现文件大小是一样的,我用diff命令对比两个文件,发现两个文件并不一样,最后用vi打开两个文件对比,发现分离后的压缩包里面多了很多换行;
好在第二种方法可以; 下面是我的文件
#!/bin/sh
lines=12
temptar=/tmp/
workpath=/tmp/qoe
tail -n +$lines $0 >${temptar}
tar xzf ${temptar} -C /tmp
rm -rf ${temptar}
cd ${workpath}
export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/upt/framework/saf/rootfs/usr/lib:/opt/upt/framework/saf/rootfs/lib
./testapp -daemon
exit 0
二、对可执行程序进行打包
新建一个目录,把运行需要的所有文件拷贝进去,然后使用tar命令进行打包:
tar -czvf qoe/
三、使用cat命令封装为bin
cat >
最后完成
chmod +x
./
成功运行


发布评论