gpt4 book ai didi

Nautilus 无法识别 Electron 可执行文件

转载 作者:行者123 更新时间:2023-12-02 14:42:30 30 4
gpt4 key购买 nike

我无法使用以下命令构建 Electron App 的可执行文件:

electron-packager . electron-tutorial-app --overwrite --asar=true --platform=linux --arch=x64 --prune=true --out=release-builds

构建文件是一个共享库文件 (application/x-sharedlib),无法在 Ubuntu 18 上执行。相反,在 Nautilus 中打开文件时,我收到以下错误消息:

Could not display "electron-tutorial-app"

There is no application installed for "shared library" files. Do you want to search for an application to open this file?

[No] [Yes]

有什么办法可以做到这一点吗?

最佳答案

TL;DR:生成的文件实际上是新格式的可执行文件。他们没有任何问题。 Nautilus/文件管理器错误地不将它们识别为可执行文件。有一些解决方案,例如创建 *.desktop 文件来启动应用程序。

分析

这种现象的发生是 Electron 构建 Linux 二进制文件方式发生变化的副作用。提交9294facf将二进制格式从 ELF 更改为 PIE 。更改非常小,仅影响单个文件 (BUILD.gn)。从版本 4.0.0 开始,此更改已登陆 Electron。

文件管理器利用file命令来决定如何处理文件(例如打开图像查看器、文本编辑器或执行文件)。 file 无法区分共享库和 PIE 可执行文件,因此会错误分类 PIE 文件(请参阅相应的 bug report )。

解决方案

从终端运行

由于该问题仅存在于图形文件管理器中,因此您只需从终端或脚本运行可执行文件即可。这对于非技术最终用户来说有些涉及,而不是 OP 想要的。

等待上游修复

等待file将PIE识别为可执行文件。反过来,这可能会导致 Nautilus 等文件管理器正确启动 PIE。目前尚不清楚这是否或何时会发生。如果发生这种情况,它可能只会包含在未来的发行版中。

使用桌面文件

创建桌面文件以启动应用程序。无论如何,这是启动桌面应用程序的常见方式。

创建一个名为 myapp.desktop 的文件,其中包含以下内容。

[Desktop Entry]
Name=My Application
Exec=/path/to/binary
Terminal=false
Type=Application
StartupNotify=true
Encoding=UTF-8

然后,通过发出 chmod +x myapp.desktop 标记桌面文件可执行。双击该文件应按预期启动应用程序。

<小时/>

更多信息

Electron 打包器项目中的相应讨论:https://github.com/electron-userland/electron-packager/issues/901 。 (要点:这个问题不是由 electro-packager 引起的,请查看上游)

Electron 项目中对应的问题是https://github.com/electron/electron/issues/15406 。 (要点:他们想在 Linux 上启用 PIE。这不是我们的 bug,请查看上游)

关于Nautilus 无法识别 Electron 可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55060402/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com