个人比较常用 向日葵 远程控制,但是个人使用的电脑一直为 elementary OS ,之前一直在虚拟机中使用比较麻烦,近期整理电脑,尝试安装 向日葵 控制端,发现无法安装成功,经过一番折腾,因为向日葵的 代码中判断本机版本的时候无法识别 elementary os,提示找不到对应的操作系统,随即尝试解决。本文做个记录
1、官网下载安装包:https://sunlogin.oray.com/download/
elementary OS 是基于Ubuntu ,下载选择:Ubuntu/Deepin
2、无发安装成功,不需要尝试安装。
使用 dpkg-deb命令 修改安装包内信息
dpkg-deb命令是Debian Linux下的软件包管理工具,它可以对软件包执行打包和解包操作以及提供软件包信息
2.1、进入下载文件的文件夹
2.1.1、解压deb文件 到 sunloginremote文件夹
dpkg-deb -X sunloginremote-5.1.0.36963-amd64.deb sunloginremote
2.1.2、解压主控信息 到 sunloginremote文件夹下的 DEBIAN 文件夹内
dpkg-deb -e sunloginremote-5.1.0.36963-amd64.deb sunloginremote/DEBIAN
2.1.3、修改文件中的操作系统版本判断代码
文件 在 sunloginremote/usr/local/sunloginremote/scripts 文件夹下的 common.sh 文件
系统判断结束在 69 行左右
elif grep -Eqi "uos" /etc/issue || grep -Eq "uos" /etc/*-release; then
DISTRO='Deepin'
PM='apt'
else
DISTRO='unknow'
fi
修改办法 在 DISTRO='unknow' 之前的 else 插入如下代码
elif grep -Eqi "elementary" /etc/issue || grep -Eq "elementary" /etc/*-release; then
DISTRO='ubuntu'
PM='apt'
修改后如下 增加 elementary 的系统判断
elif grep -Eqi "uos" /etc/issue || grep -Eq "uos" /etc/*-release; then
DISTRO='Deepin'
PM='apt'
elif grep -Eqi "elementary" /etc/issue || grep -Eq "elementary" /etc/*-release; then
DISTRO='ubuntu'
PM='apt'
else
DISTRO='unknow'
fi
2.1.4、修改完成 创建 创建debian软件包 -b 后的 第一个参数 程序文件所在目录 第二个参数 软件包名字
dpkg-deb -b sunloginremote sunloginremote.deb
2.1.5、创建成功进行安装
sudo dpkg -i sunloginremote.deb
安装成功就可以使用了。