bin安装包
像最开始的话,出一个安装程序都是提供一个tar.gz包和一个运行脚本。这种方式对于一种安装程序的确很不错,但如果有多个安装程序;对于用户体验和管理来讲都是不友好的。所以可以制作一键安装包。即安装脚本+安装gz包的结合体。
bin包的制作
前提提示:本文档是要对需安装的软件和编写了安装的脚本文件,打成一个bin包,然后可传播安装使用
1、在/opt 目录下创建文件夹
[root@master101 opt]$ mkdir /opt/install
2、创建sh脚本 把内容复制到脚本里
[root@master101 opt]$ vim /opt/install/make.sh
注意:进入vim输入i进入编辑模式
#脚本目标: 首先把相关安装文件打成一个tar包,其次把tar包和安装脚本打成一个bin包,最后方便人员传播安装
#!/bin/sh
suffix=.bin
echo -n "请输入最后打成的bin包名:"
read binName
binName=${binName}${suffix}
echo -n "请输入刚才上传文件的文件夹名:"
read installDocName
echo -n "是否要打包文件:[Y/N]"
read yn
i=0
list=()
while [ "$yn" == "y" -o "$yn" == "Y" ]
do
echo "不要复制install.sh"
echo -n "请复制上面相关的文件名:"
read file
list[$i]=\"$file\"
i=`expr $i + 1`
echo -n "是否要打包文件:[Y/N]"
read yn
done
echo ${list[@]}
#1.删除之前的tar,重新打成一个新tar包
cd /opt/install/${installDocName}
rm -rf installFile.tar.gz
var="tar -czvf installFile.tar.gz "
for fileName in ${list[@]}
do
echo $fileName
var=${var}" "${fileName}
done
exec=$(echo ${var} | sed 's/\"//g')
echo "installFile.tar.gz打包的文件有" $exec
eval $exec
#2.删除之前的bin,重新打成一个新bin包
rm -rf ${binName}
cat install.sh installFile.tar.gz > ${binName}
chmod +x ${binName}
#3.只留下bin包,删除不相关的文件,在主目录下生成传播的bin包
rm -rf installFile.tar.gz
rm -rf /opt/install/${binName}
cd /opt/install
if [ ! -d bin ];then
mkdir bin
else
echo bin exist
fi
mv /opt/install/${installDocName}/${binName} /opt/install/bin
exit 0
注意:exit 0 不要空行,0后面不要有空格!!
3、 在/opt/install目录下创建文件夹
[root@master101 opt]$ mkdir /opt/install/docFile
4、在docFile文件下必须上传名叫install.sh的安装脚本和需要的安装的文件(提示:安装脚本是安装相关文件的脚本,脚本名必须是install.sh,如果安装脚本名不对需更改)
注意:最少是这两个文件
[root@master101 opt]$ ll /opt/install/docFile/
5、执行命令运行打成bin包脚本,输入想要打成的bin名
[root@master101 opt]$ sh /opt/install/make.sh
6、写上刚才上传文件的文件夹名docFile
注意:输入你刚才放置的文件的文件夹名,本文档用是docFile
7、输入y回车,复制除了sh其他你所放置的文件名,需全文件名带上后缀,结束输入n,开始打包
8、查看
[root@master101 opt]$ cd /opt/install/bin
bin包的拆分
1、创建解压的目录
[root@master101 opt]$ mkdir -p /opt/install/bin
[root@master101 opt]$ mkdir -p /opt/install/unzip
2、然后把自己的bin包放入/opt/install/bin
3、在/opt/install/bin里必须用vim打开加入下面代码
[root@master101 opt]$ vim /opt/install/bin/binName.bin
4、 /opt/install/unzip为解压地址,可更改
sed -n -e '1,/^exit 0$/!p' $0 > "/opt/install/unzip/installFile.tar.gz" 2>/dev/null
注意:进入vim输入shfit+z+z进入保存退出模式
5、 执行脚本命令
[root@master101 opt]$ sh /opt/install/bin/binName.bin