linux自解压exe文件夹,用Linux makeself制作自解压的可执行程序

前言: 日常工作中我们需要把Linux操作系统下一堆文件或者脚本制作成一个可执行程序,发布后别人只要拿到这个程序就会把它整体运行起来。比起一般的把文件(夹)压缩打包,然后把压缩包发给别人,再告诉别人解压后执行里面的哪个脚本或程序的做法,显然如果做成自解压的可执行程序要简便得多。

makeself本身是一个可从给定目录产生自解压tar包的shell脚本。从以上述描述可以看出,它包含了压缩功能。它产出的文件看起来像个shell脚本(通常以.sh或者.run作为后缀名),运行后会解压并执行校验(CRC或 MD5checksum)和里面的脚本.

1.下载或安装makeself-2.2.0

1.1 下载 http://cdn.megastep.org/makeself/makeself-2.2.0.run 后,直接运行makeself-2.2.0.run , 会生成  makeself-2.2.0这个目录.

1.2 如果是Ubuntu,可以用命令apt-get install makeself 进行在线安装.

如果是基于RPM的Linux发行版如Redhat,SUSE,可以用命令yum install makeself 进行在线安装.

2. 使用makeself

假设我们有一个目录叫myfolder,里面有2个文件install.sh和instalDetail.sh ,其中install.sh调用installDetail.sh

---myfolder

---install.sh (它会调用installDetail.sh)

---installDetail.sh

install.sh内容如下:

#!/bin/bash

echo "installing my software"

read -p "Press the ENTER key to continue." enterContinue

echo "************************************************************************"

echo " Installing Package..."

echo "************************************************************************"

. ./installDetail.sh

installDetail.sh内容如下:

#!/bin/bash

DIST_NAME=`lsb_release -ds 2>/dev/null || cat /etc/*release 2>/dev/null | head -n1`

echo "OS="$DIST_NAME

echo "here is installDetail"

然后回到包含myfolder的目录执行 makeself  myfolder  test.sh   "hello..."   ./install.sh (如果使用1.1方法安装了makeself, 执行 ${makeself安装目录}/makeself.sh   myfolder  test.sh   "hello"   ./install.sh)

makeself命令的使用方法是makeself  要压缩的目录  要做成的文件名  描述信息   第一个要执行的脚本

本例中install.sh是入口,所以第四个参数是./install.sh

在Ubuntu 14执行test.sh会看到如下信息:

Verifying archive integrity... All good.

Uncompressing hello... 100%

installing my software

Press the ENTER key to continue.

************************************************************************

Installing Package...

************************************************************************

OS=Ubuntu 14.04.4 LTS

here is installDetail制作自解压程序时在命令行提供的描述信息出现在了Uncompressing xxx 100%中。

但是在执行目录下并没有myfolder出现。如果想要在解压并执行后把原来的folder展开并保留,可以在makeself命令加上--notemp参数 :

makeself --notemp要压缩的目录  要做成的文件名  描述信息   第一个要执行的脚本

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值