之前已经开发完跨平台客户端,在Linux运行是用命令行和人为设置权限运行的,适合开发使用,用着挺麻烦。所以需要一键部署,把之前手工的工作汇总起来处理。先打包好文件目录。把dotnet和自己程序包放一个文件夹下。然后基于放置目录实现install.sh。部署时候只要把forLinux文件夹上传到Linux上,然后运行bash install.sh达到一键部署。
打包结构
运行安装效果-桌面生成了快捷方式,别在root下运行额
运行效果
一键部署bash
包含检测安装dotnet,拷贝程序,设置权限和给用户设置桌面快捷方式
#!/bin/bash
#shell安装LISClient脚本
#20221125
#zlz
#----------------------------------------------------------
#检测安装dotnet5
mypath=$(cd $(dirname ${BASH_SOURCE[0]}); pwd )
echo "当前路径:${mypath}"
if [ ! -f /usr/bin/dotnet ];then
if ! type dotnet >/dev/null 2>&1; then
echo "没安装dotnet,进行离线安装"
sudo mkdir -p /usr/share/dotnet
sudo cp -r ${mypath}/dotnet/dotnet /usr/share
sudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet
sudo chmod +x /usr/bin/dotnet
sudo ln -s /usr/share/dotnet/dotnet /snap/bin/dotnet
sudo chmod +x /snap/bin/dotnet
fi
fi
echo "创建目录/usr/share/LISClient-linux-x64"
sudo mkdir /usr/share/LISClient-linux-x64
echo "拷贝文件到/usr/share/LISClient-linux-x64"
sudo cp -r ${mypath}/LISClient-linux-x64/* /usr/share/LISClient-linux-x64/
echo "授权执行权限"
sudo chmod -R +777 /usr/share/LISClient-linux-x64/*
echo "创建快捷方式到/usr/share/applications/LISClient.desktop"
sudo cp ${mypath}/LISClient-linux-x64/resources/app/LISClient.desktop /usr/share/applications/
echo "授权快捷方式"
sudo chmod +777 /usr/share/applications/LISClient.desktop
echo "让沙箱属于root"
sudo chown -R root:root /usr/share/LISClient-linux-x64/chrome-sandbox
echo "设置沙箱权限"
sudo chmod 4755 /usr/share/LISClient-linux-x64/chrome-sandbox
#给每个用户拷贝快捷方式
desk=`cat $HOME/.config/user-dirs.dirs | grep DESKTOP | tail -1 |cut -d '=' -f 2 | sed 's/\"//g'`
var=`eval echo $desk`
echo $var
cd $var
sudo cp ${mypath}/LISClient-linux-x64/resources/app/LISClient.desktop $var/
echo "授权快捷方式"
sudo chmod +777 $var/LISClient.desktop
echo "安装LISClient成功"
运行效果
zhanglianzhu@zhanglianzhu-virtualmachine:/$ cd /forlinux
zhanglianzhu@zhanglianzhu-virtualmachine:/forlinux$
zhanglianzhu@zhanglianzhu-virtualmachine:/forlinux$ bash install.sh
当前路径:/forlinux
没安装dotnet,进行离线安装
ln: 无法创建符号链接'/usr/bin/dotnet': 文件已存在
ln: 无法创建符号链接'/snap/bin/dotnet': 没有那个文件或目录
chmod: 无法访问'/snap/bin/dotnet': 没有那个文件或目录
创建目录/usr/share/LISClient-linux-x64
拷贝文件到/usr/share/LISClient-linux-x64
授权执行权限
创建快捷方式到/usr/share/applications/LISClient.desktop
授权快捷方式
让沙箱属于root
设置沙箱权限
/home/zhanglianzhu/桌面
授权快捷方式
安装LISClient成功
zhanglianzhu@zhanglianzhu-virtualmachine:/forlinux$
涉及到shell的有获得shell文件当前全路径(因为要基于sh目录拷程序)。获得用户桌面路径,electron沙箱权限设置,快捷方式创建