linux .bin安装包制作
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
好久不做安装包了,需要做个安装包,好脑袋不如烂笔头,还是再简单记录一下。
linux 安装包制作
1、打包或压缩文件tar,zip,gz等,解压后即可,或者解压后运行sh文件;太简单。。。感觉不正式
2、使用管理工具的deb,rpm等,通常的这类安装文件可以通过第三方的命令行或UI来简单的安装,例如Ubuntu中的apt来安装deb,Redhat中的yum来安装rpm;制作起来比较复查,还不通用。
3、像.bin类,把shell和压缩包合成一个文件,可以直接在linux上运行。只提供一个可在linux上运行的包,感觉比较正式,还通用。
bin类安装包安装:
直接运行即可,超级简单。shell中cd 到包在的文件夹 ./xx.bin即可。
bin类安装包制作
1、shell文件
一个简单的shell文件install.sh
#!/bin/bash
name=name
unshname=uninstall${name}.sh
appname=appname
installpath=/opt/${name}
#安装前先卸载旧版本软件
if [ -f "/usr/bin/$unshname" ];then
echo "=========== 卸载旧版本软件 ============="
/usr/bin/$unshname
echo "====================================="
echo ""
fi
#分离出的压缩包名称
tmpfile_name=/tmp/${name}.tgz
echo -e "\t 准备安装软件..."
#从bin中分离出${tmpfile_name}压缩包,'1,/^exit 0$/!p'代表从一行到以exit开头以0结尾的行即整个shell脚本,!代表取反,
所以最后分离的是出了shell脚本的部分也即压缩包 $0代表脚本本身即从bin安装包中实现分离
sed -n -e '1,/^exit 0/!p' $0 > ${tmpfile_name} 2>/dev/null
#将分离出的脚本解压缩到/tmp文件夹下
tar xzf ${tmpfile_name} -C /tmp
#解压完成后删除压缩包
rm -rf ${tmpfile_name}
#转到解压文件的文件夹/tmp下
cd /tmp
if [ ! -d $installpath ] ;then
mkdir -p $installpath
fi
####---- main ----####
echo -e "\t 安装库文件和工具软件"
#复制库文件以及管理工具到系统目录下(需要root权限,所以需要sudo执行)
configname=${name}.conf
touch ${name}/$configname
sed -i '1i/${installpath}' ${name}/$configname
cp ${name}/$configname /etc/ld.so.conf.d/
sed -i '1i/${installpath}' ${name}/$configname
cp ${name}/$configname /etc/ld.so.conf.d/
ldconfig
cp -r ${name}/* $installpath
#sudo cp testfile/testd /etc/init.d
#sudo chkconfig testd on
#安装过程完成后,删除解压后的文件目录
rm -rf ${name}
echo -e "\t 安装完成"
exit 0
2、压缩包文件
tar -cgvf install.tgz installfile
3、合成.bin类安装包
cat install.sh install.tgz > install.bin
4、安装.bin类安装包
chmod +x install.bin
./install.bin
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献1条内容
所有评论(0)