electron信创(Linux)无法创建快捷方式
- 背景说明
- 解决方案
- 1.解压.deb文件
- 2.添加shell脚本
- 3.重新编译.deb安装包
- 4.验证
- 建议
背景说明
使用electron+electron-builder打包.deb安装包后,再Linux系统下安装后。
开始菜单 快捷方式✅
系统桌面 快捷方式❌
接下来以麒麟系统为例,讲述修改方案。其它系统一方案一致
解决方案
解压.deb包 修改 DEBIAN/postinst中shell脚本文件。效果如下
1.解压.deb文件
fakeroot dpkg-deb -R 你的安装包名称.deb 你的安装包名称
解压后会出现一个文件夹
2.添加shell脚本
修改解压文件夹中 DEBIAN/postinst 文件如下
#!/bin/bash# 顶部新增调试文件 指定打印信息位置-方便排查问题-正式使用可以去掉
exec > >(tee /tmp/postinst.log) 2>&1原内容
TODO...# 底部新增创建快捷方式脚本
# Create desktop shortcuts
# 获取当前图形界面登录的用户名
TARGET_USER=$(who | grep "(:0)" | awk '{print $1}')if [ -z "$TARGET_USER" ]; then# 如果上述方法失败,尝试其他方法TARGET_USER=$(logname 2>/dev/null || whoami)
fiUSER_HOME=$(getent passwd "$TARGET_USER" | cut -d: -f6)if [ -z "$USER_HOME" ]; thenecho "Error: Could not determine user home directory."
elseif [ -d "$USER_HOME/桌面" ]; thenDESKTOP_DIR="$USER_HOME/桌面"elif [ -d "$USER_HOME/Desktop" ]; thenDESKTOP_DIR="$USER_HOME/Desktop"elseecho "Warning: Could not find '桌面' or 'Desktop' directory. Skipping creation of desktop shortcut."fiif [ -n "$DESKTOP_DIR" ]; thenDESKTOP_FILE="$DESKTOP_DIR/你的应用名称(英文).desktop"if cp /usr/share/applications/你的应用名称(英文).desktop "$DESKTOP_FILE" > /dev/null 2>&1; thenecho "Successfully copied .desktop file to $DESKTOP_DIR."elseecho "Error: Failed to copy .desktop file to $DESKTOP_DIR."fi# 设置所有者权限chown "$TARGET_USER:$TARGET_USER" "$DESKTOP_FILE" > /dev/null 2>&1 || echo "Error: Failed to change ownership for $DESKTOP_FILE."# 设置权限chmod u+rwx,go+rx "$DESKTOP_FILE" > /dev/null 2>&1 || echo "Error: Failed to set permissions on $DESKTOP_FILE."echo "Permissions have been adjusted for $DESKTOP_FILE."fi
fi
3.重新编译.deb安装包
fakeroot dpkg-deb -b 你的安装包名称 .
4.验证
此时重新安装.deb文件,安装完成后就会再桌面创建快捷方式了
建议
- 千万别尝试通过配置afterInstall来实现,Linux环境一个报错接一个报错的。
- 如果的解包 和重新编译包 和我的命令不一致,搜下自己系统的命令就好,核心是修改shell文件
- 如果未安装预期创建快捷方式,可以通过调试日志查看抛出信息,大多都是路径的问题