CentOS7下Electron构建的AppImage无法双击/回车运行求助
解决CentOS7下Electron AppImage双击无法启动的沙箱问题
方法1:用启动脚本绕过沙箱限制
- 先确认你的AppImage文件已开启执行权限:右键选属性→权限,勾选「允许作为程序执行文件」
- 新建一个文本文件,命名为
start_kiosk.sh,写入以下内容(替换成你的AppImage实际路径):
#!/bin/bash /绝对路径/你的AppImage文件名.AppImage --no-sandbox
- 给脚本加执行权限:
chmod +x start_kiosk.sh
- 以后双击这个脚本就能直接启动程序,嫌麻烦的话还能把脚本拖到桌面。
方法2:创建桌面快捷方式
- 进入
~/.local/share/applications/目录,新建一个.desktop文件,比如kiosk.desktop,内容如下:
[Desktop Entry] Name=你的程序名称 Exec=/绝对路径/你的AppImage文件名.AppImage --no-sandbox Type=Application # 下面一行是图标路径,没有的话可以删掉 Icon=/绝对路径/图标文件名.png Terminal=false
- 保存后,在系统应用程序列表里就能找到这个快捷方式,双击就能启动,也可以拖到桌面使用。
方法3:修复沙箱权限(彻底解决)
如果不想禁用沙箱,想从根源解决问题:
- 先挂载AppImage查看内部文件:
./你的AppImage文件名.AppImage --appimage-mount
- 终端会输出挂载路径(比如
/tmp/.mount_Kiosk-hsmPb8),别关闭这个终端,新开一个终端执行:
sudo chown root:root /刚才的挂载路径/chrome-sandbox sudo chmod 4755 /刚才的挂载路径/chrome-sandbox
- 回到挂载的终端按
Ctrl+C卸载,如果你是自己用electron-builder构建的AppImage,还能在构建时自动设置权限:
在项目的package.json里添加build配置:
"build": { "linux": { "target": "AppImage", "sandbox": true, "extraFiles": [ { "from": "node_modules/electron/dist/chrome-sandbox", "to": "chrome-sandbox", "mode": 4755, "owner": "root" } ] } }
- 重新构建AppImage,生成的文件就自带正确的沙箱权限,双击就能直接启动。
内容的提问来源于stack exchange,提问作者Mayank Tanwar
相关产品推荐
相关产品推荐

