之前已经开发完跨平台客户端,在Linux运行是用命令行和人为设置权限运行的,适合开发使用,用着挺麻烦。所以需要一键部署,把之前手工的工作汇总起来处理。先打包好文件目录。把dotnet和自己程序包放一个文件夹下。然后基于放置目录实现install.sh。部署时候只要把forLinux文件夹上传到Linux上,然后运行bash install.sh达到一键部署。

打包结构

运行安装效果-桌面生成了快捷方式,别在root下运行额

运行效果

一键部署bash
包含检测安装dotnet,拷贝程序,设置权限和给用户设置桌面快捷方式

#!/bin/bash
#shell安装LISClient脚本
#20221125
#zlz
#----------------------------------------------------------
#检测安装dotnet5mypath=$(cd $(dirname ${BASH_SOURCE[0]}); pwd )
echo "当前路径:${mypath}"
if [ ! -f /usr/bin/dotnet ];thenif ! type dotnet >/dev/null 2>&1; thenecho "没安装dotnet,进行离线安装"sudo mkdir -p /usr/share/dotnetsudo cp -r ${mypath}/dotnet/dotnet /usr/sharesudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnetsudo chmod +x /usr/bin/dotnetsudo ln -s /usr/share/dotnet/dotnet /snap/bin/dotnetsudo chmod +x /snap/bin/dotnetfi
fiecho "创建目录/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沙箱权限设置,快捷方式创建

Linux一键部署脚本相关推荐

  1. 源码编译安装Apache-附一键部署脚本

    1.进入apache官网https://www.apache.org/,点击Download 2.如图选择 3.选择httpd 4.下载两个包,2.2为CentOS6使用,2.4为CentOS7使用 ...

  2. lnmp一键部署脚本

    LNMP一键部署脚本 LNMP代表的是:linux系统下 nginx+mysql+php 网站服务器架构 一键部署的意思是,执行脚本,解决所有依赖关系,没有报错.脚本执行完成,环境部署完成 所以在做一 ...

  3. linux一键部署安装包制作

    linux一键部署安装包制作 1.首先准备安装包和安装脚本 2.下载makeself-2.4.0.run制作安装包,并安装 wget https://github.com/megastep/makes ...

  4. kubernetesV1.13.1一键部署脚本(k8s自动部署脚本)

    kubernetesV1.13.1一键部署脚本(k8s自动部署脚本)  devops的那些事 https://www.jianshu.com/p/c26af5647865 请关注公众号,技术获得k8s ...

  5. shell_一键部署脚本合集 .

    shell一键部署脚本合集 1.shell脚本一键部署DNS正向解析 2.shell脚本一键部署PXE 3.shell脚本一键部署Apache 4.shell脚本一键部署Mysql

  6. LNMP安装步骤详细教程以及一键部署脚本

    LNMP安装步骤详细教程以及一键部署lnmp脚本 安装包 提取码:1w3t 文章目录 一.安装 Nginx 服务 二.安装 MySQL 服务 三.安装配置 PHP 解析环境 四.一键部署LNMP脚本 ...

  7. linux刷脚本需要什么工具吗,利用宝塔Linux一键挂载脚本工具挂载www目录方法

    如果我们网友有使用过宝塔面板的应该知道,默认一般都是安装到www目录的.而且我们有很多网友是不会,而且也不知道挂载数据盘.一般我们买到的有些国内的机器,系统盘10GB,数据盘可能有20GB,但是如果你 ...

  8. linux一键分区脚本,【Shell】Linux中分区脚本

    后天要中期答辩了,今天只刷了一个题,还没写出来,但是想更新博客,所以只有把之前写的东西贴出来了. 一个用于分区的shell脚本 1 #!/bin/bash #指定脚本解释器路径 2 echo &quo ...

  9. ansible一键部署脚本

    目录 架构描述 架构图 架构部署 安装思路 安装环境 安装部署规划 目录规划 架构部署 主机:192.168.1.56 配置主机清单 ansible剧本 配置文件 lb.conf app1.cnf k ...

最新文章

  1. Tuxera NTFS for Mac中文官网正式推出
  2. python中加入绝对路径_理解Python中的绝对路径和相对路径
  3. 操作系统常考知识点总结(1)
  4. oracle 提取连续数字,oracle 得到连续不重复的数字序列
  5. Python中导包问题
  6. 防止 7-Zip 生成的 ZIP 文件在 Mac OS X 下出现乱码
  7. HDU 6611 K Subsequence(Dijkstra优化费用流 模板)题解
  8. HDU 4122:Alice's mooncake shop RMQ(2011 Asia Fuzhou Regional Contest )
  9. 如何使用递归及注意事项
  10. MATS-2010H硬磁测量装置产品详细介绍
  11. 世界名着100部简介
  12. bootice添加黑苹果引导_黑苹果OC(OpenCore)引导升级教程
  13. Computer Science 领域文献检索 SCI、CPCI-S 和 EI
  14. linux系统实现TTS(文字转语音)功能
  15. 源码:winamp播放器 C++
  16. jsp页面使用大于号等
  17. python布尔类型运算_Python3 布尔类型
  18. HTML5 Now: 深入了解HPolyfills
  19. 【数说】人气网文修炼手册之最深的网文套路知多少
  20. 防火墙安全策略防火墙安全区域的划分

热门文章

  1. Python编程:聊天群的屏蔽脏话
  2. 问题解决(log format not recognized)
  3. tolower函数什么意思c语言,tolower ()在c语言中是什么意思
  4. 星界边境的服务器信息,怎么用vps开星界边境服务器
  5. 学习笔记(1):思科CCNA视频课程:晁老师CCNA课堂举例-经典语录精选-CCNA视频:OSPF数据包的类型...
  6. 几个好玩的bat和几个命令
  7. MyCat数据库中间件
  8. 将Dao层注入到Service层
  9. 包邮送新款笔记本电脑,也可折现
  10. 【Vue】如何将一个Vue前端项目部署到Gitee