electron 电子构建器-定义Linux版本

s5a0g9ez  于 2022-12-16  发布在  Electron
关注(0)|答案(1)|浏览(198)

我使用的电子已经有一个生产环境运行。在过去的几个月里,我一直在my ci.yml文件中使用Electron-builder正常发布:

release-linux:
  stage: release
  image: electronuserland/builder:14
  before_script:
     - export ARCH="x64"
     - export BUILD_SCRIPT="build:linux"
     - apt-get update && apt-get install -y build-essential cmake
     - apt install -y libusb-1.0-0-dev libudev-dev

运行- apt-get update && apt-get install -y build-essential cmake行后,安装了libc6包,该包与latest2.35)一起安装。
我的生产环境运行在Ubuntu20.04 LTS上。我假设发布版本的Docker映像运行在一个较新的版本上(例如最新版本)。
问题是我有一些硬件设备可以正常工作在libc6=2.31-0ubuntu9.2上(这是以前由docker映像自动安装的版本)。现在,不知什么原因,映像正在拉最新版本的libc6,我的硬件设备停止工作。

  • 有没有办法强制电子制造商使用特定的Linux/Ubuntu版本?
  • 或者使用最新版本的Ubuntu,但是降级了X1 M6 N1 X版本(尝试了这个版本,但是失败了)。任何关于如何做到这一点的说明都是值得注意的。

更新Ubuntu的生产版本是不是一个选项现在,所以我认为解决方案应该与这个包/库版本。

bxjv4tth

bxjv4tth1#

这个问题是随机自行解决的,但经过一番研究,是electron-builder更改导致了这个问题。
在此commit changes log中,我们可以看到buildpack-deps已从buildpack-deps:22.04-curl(不工作)更改为buildpack-deps:focal-curl(工作)
这给予了我们一个线索,让我们看看在哪里,这里是official supported tags for Dockerfiles,这里我们可以看到focal-curl指向20.04-curl,我认为它的输出与20.04本身不同。
然后,看一下使用这个ci配置运行的gitlab作业,libc6依赖项在不同的版本下工作。我们的硬件在libc6=2.31下工作正常,当focal-curlelectron-builder dockerfile设置时,libc6=2.31被使用,但在libc6=2.35下,20.04被使用。
这不是一个解决方案,但它是问题的原因。现在正在研究如何设置项目,以只使用正确的electron-builder配置。目前接受使用相同的配置,但在发布时要小心,注意哪个libc6版本是工作。

相关问题