Shell下制作自解压安装包,实现脚本的简单加密

申明:以下内容大部分搜集于网络,由个人整理成更容易理解的简明教程!

一、原理阐述

在linux下可以用几个最基本的命令制作一个自解压的程序。其原理是:利用cat 命令可以将两个文件连起来(用>>追加也能达到同样效果),前一个文件是shell脚本,负责执行解压和安装;后一个文件是一个压缩包。

把这两个文件通过cat连接成一个新的可执行文件,前面是解压程序,后面是压缩包,当你执行这个自解压文件时,会先执行前面的shell脚本,利用tail -n 取得后面的压缩包内容并往下执行解压和调用动作。这样就具有自动解压和安装的功能了。这里比较重要的命令是tail -n将后多少行(也就是压缩文件的内容)进行解压。

如此一来,也实现了内容的简单加密,使用cat合并两个文件之后,你再用cat去获取得到的内容会发现都是乱码,而且只要shell脚本行数和解压路径不知道,一时半会也很难找到源代码(当然,应该可以通过history来查看。)

二、程序执行逻辑

  • 执行程序中的shell脚本代码
  • 把程序后面的部分进行解压
  • 执行源码安装和部署脚本
  • 退出程序

三、应用举例

假如当前目录下有一个压缩文件httpd.tar.gz,压缩包内有一个httpd文件夹,文件夹内有httpd的安装脚本install.sh和其他相关文件,现在需要将这个压缩文件制作成自解压并自动执行install.sh的可执行文件。现在开始介绍:

1.编写自解压引导脚本setup.sh

#vim setup.sh

这个就是负责解压和调用安装脚本(install.sh)的引导脚本(或称“头文件”)

2.制作安装tar包

httpd.tar.gz是一个apache源码包的一个tar.gz包,里面已经DIY加入了install.sh脚本,也就是包含了手动安装apache所用的如./configure --with prefix=/usr/local/apache2,make,make install之类的安装命令。
反正就是在apache原始安装包解压后加入了install.sh脚本,然后使用命令
tar cvzf httpd.tar.gz httpd/
重新打包为httpd.tar.gz
Ps:也就是说,若要手动安装,这解压这个包,然后执行./install.sh即可安装apache了。

3.制作最后的自解压安装程序

自解压安装程序的使用方法非常简单:

执行 ./install_httpd即可自动安装apache

注意:需要以root用户执行。

写在最后:这个教程百度能搜到很多,但是之前的内容如果是新手去看的话,可能有点难理解,一旦理解了就会觉得很容易,我重新整理了下,改成了更容易理解的应用举例即相关说明,希望和我当初一样的刚学linux的新人能快速学会这个方法。

发表评论

gravatar

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen:

刷新评论

目前评论:1   其中:访客  1   博主  0

  1. 1 0 来自天朝的朋友 谷歌浏览器 Windows 7 北京市 世纪互联数据中心

    你好

加载中,请稍候...