Я пытаюсь создать поспешный пакет электронного приложения при помощи https://github.com/electron-userland/electron-installer-snap
, но это приводит к следующей ошибке:
Priming desktop-gtk3
Files from the build host were migrated into the snap to satisfy dependencies that would otherwise not be met. This feature will be removed in a future release. If these libraries are needed in the final snap, ensure that the following are either satisfied by a stage-packages entry or through a part:
usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
The linker version '2.23' used by the base 'core' is incompatible with files in this snap:
/tmp/electron-snap-9865iSlcEOI8HnOY/prime/lib/x86_64-linux-gnu/libbsd.so.0.8.7 (2.25)
/tmp/electron-snap-9865iSlcEOI8HnOY/prime/lib/x86_64-linux-gnu/libexpat.so.1.6.7 (2.25)
/tmp/electron-snap-9865iSlcEOI8HnOY/prime/usr/lib/x86_64-linux-gnu/libexpatw.so.1.6.7 (2.25)
/tmp/electron-snap-9865iSlcEOI8HnOY/prime/usr/lib/x86_64-linux-gnu/libgnutls.so.30.14.10 (2.25)
/tmp/electron-snap-9865iSlcEOI8HnOY/prime/usr/lib/x86_64-linux-gnu/libp11-kit.so.0.3.0 (2.26)
/tmp/electron-snap-9865iSlcEOI8HnOY/prime/usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0 (2.27)
Snapcraft failed (2)
(node:9865) UnhandledPromiseRejectionWarning: Error: Exited with status 2
at closeArgsToError (/usr/local/lib/node_modules/electron-installer-snap/node_modules/cross-spawn-promise/lib/index.js:20:16)
at ChildProcess.<anonymous> (/usr/local/lib/node_modules/electron-installer-snap/node_modules/cross-spawn-promise/lib/index.js:76:19)
at Object.onceWrapper (events.js:317:30)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
(node:9865) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:9865) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Почему эта ошибка происходит? Как зафиксировать его?
[Отредактированный]: Кажется, что это вызывается несовместимой nodejs проблемой библиотеки. Проверенный путем выполнения electron-installer-snap
в человечности 16.04 контейнера докера.
Можно зафиксировать это путем выполнения snapcraft в lxd-контейнере
Установка Snapcraft:
sudo snap install snapcraft
Установка lxd
sudo addgroup --system lxd
sudo adduser $USER lxd
sudo snap install lxd
Сборка в lxd-контейнере
lxd init
export SNAPCRAFT_BUILD_ENVIRONMENT=lxd
snapcraft cleanbuild