electron信创(Linux)无法创建快捷方式
背景说明
使用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)
fi
USER_HOME=$(getent passwd "$TARGET_USER" | cut -d: -f6)
if [ -z "$USER_HOME" ]; then
echo "Error: Could not determine user home directory."
else
if [ -d "$USER_HOME/桌面" ]; then
DESKTOP_DIR="$USER_HOME/桌面"
elif [ -d "$USER_HOME/Desktop" ]; then
DESKTOP_DIR="$USER_HOME/Desktop"
else
echo "Warning: Could not find '桌面' or 'Desktop' directory. Skipping creation of desktop shortcut."
fi
if [ -n "$DESKTOP_DIR" ]; then
DESKTOP_FILE="$DESKTOP_DIR/你的应用名称(英文).desktop"
if cp /usr/share/applications/你的应用名称(英文).desktop "$DESKTOP_FILE" > /dev/null 2>&1; then
echo "Successfully copied .desktop file to $DESKTOP_DIR."
else
echo "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文件
- 如果未安装预期创建快捷方式,可以通过调试日志查看抛出信息,大多都是路径的问题