轻量级前端框架助力开发者提升项目效率与性能
847
2022-09-02
制作 shell 脚本安装包
在 Linux 中可以利用 cat 命令连接两个文件来制作简单的安装包,其文件后缀通常为 sh、run 或 bin。安装包的文件结构如下图所示:
安装包实质上是一个安装脚本和要安装的内容的组合。文件的头部是脚本文件,执行的时候需要把尾部的二进制文件分解出来。通常这个二进制文件是个压缩包,能够打包很多不同类型的文件,在脚本中解压出来进行处理即可,因此具有不错的灵活性。
简单起见,我们先来写一个 hello 程序:
#include
编译、运行看看效果:
$ gcc hello.c -o hello$ ./helloHello, rudy!
我们的目的是将 hello 程序安装到目标机器的 /bin 目录。为了达到这个目的,我们编写一个 install.sh 安装脚本:
#!/bin/bashcp
更进一步,我们可以先将 hello 压缩成 hello.tar.bz2
tar
然后将 install.sh 安装脚本修改为:
#!/bin/bashlines=9 tail -n+$lines $0 > /tmp/hello.tar.bz2cd /tmptar jxvf hello.tar.bz2cp hello /binexit 0
代码解释:
第3行:变量lines 的值是指这个脚本的行数加1(这个脚本共有8行);第4行:$0 表示脚本本身,这个命令用来把从$lines 开始的内容写入一个 /tmp 目录的 hello.tar.bz2 文件里;第5行:切换到 /tmp 目录操作,解压出来的文件重启系统后将会消失。
接下来我们用 cat 命令连接安装脚本 install.sh 和 hello.tar.bz2:
cat install.sh hello.tar.bz2 >
方便起见,我们写个 Makefile 来构建安装包:
SCRIPT=install.shBIN=helloRUN=helloinstall.runall: gcc hello.c -o $(BIN) tar jcvf $(BIN).tar.bz2 $(BIN) cat $(SCRIPT) $(BIN).tar.bz2 > $(RUN) chmod +x $(RUN)clean: rm $(BIN) $(BIN).tar.bz2 rm $(RUN)
总共3个文件:
$ tree.
在当前目录 make 一下就构建好 helloinstall.run 安装包啦,将其传输至目标设备即可安装:
sudo
安装成功,在系统任意位置都可以执行 hello 命令了!
$ helloHello, rudy!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~