【问题标题】:Electron AppImage for linux doesn't start on systems with libgtk<3用于 linux 的 Electron AppImage 无法在 libgtk<3 的系统上启动
【发布时间】:2024-01-08 21:50:01
【问题描述】:

它在启动时抛出一个错误,找不到 libgtk3。

是否可以构建一个电子应用程序以在具有 libgtk2 的系统上工作?

实际上,如果 AppImage 包含所有必需的 lib 依赖项(例如 fuse),那将是完美的,即使它是一个很大的图像文件。

【问题讨论】:

标签: electron electron-builder


【解决方案1】:

根据issue #10780 on GitHub,Electron 在 2017 年升级到 Chrome 61,这需要 GTK+ 3。因此无法在仅安装 GTK+ 2 的系统上运行 Electron。

The idea of AppImages 是一个应用程序应该包含它需要运行的所有库。然而,像 GTK+ 这样的库需要深度集成到系统中(GTK+ 需要 libXrandr.solibglib.so 等等),并且有大量的依赖项会导致包崩溃。因此,构建一个包含所有不同依赖项的应用程序是相当困难的(甚至想象在您的硬盘驱动器上有三个或更多包含 GTK+ 和依赖项的 AppImage)。

对于 GTK+,在大多数用例中,仅安装 libgtk(任何版本)是不够的,因为您可能希望从“推荐”的依赖项中获益。

【讨论】:

  • 如果旧库位于电子目录中并使用它们而不是系统库怎么办?
  • “电子目录”是什么意思?
  • Electron 创建一个图像并包含在几个 .so 文件中(libffmpeg.so、libnode.so)他为什么不在那里存储另一个必要的文件?
  • 我相信它包括 NodeJS 和 FFMpeg 库,因为这些库必须是应用程序编译的确切版本,但包括 GTK+,例如,会炸毁图像太多(和因为 GTK+ 依赖于其他一些库,这些库深入到系统中)。顺便说一句,LibreOffice AppImage 也不包含 GTK+,很可能是由于集成问题。
  • 谢谢。为什么 vscode 没有将 gtk3 列为要求? code.visualstudio.com/docs/supporting/requirements
最近更新 更多