Как правильно установить nodejs в snapcraft?

https://ubuntu.com/tutorials/electron-kiosk#4-converting-the-electron-snap-into-a-kiosk-snap

Привет !

Я следовал этому руководству, но мне не удается заставить его работать должным образом, моя проблема в том, что nodejs 8.10.0 устанавливается, когда мне нужно как минимум 10.12. Я пытался добавить версию узла или механизм узла или другие параметры, но после установки 8.10.0 он не загрузил версию, которую я хочу.

Если кто-то может мне помочь!

[РЕДАКТИРОВАТЬ]

Некоторые журналы, когда я запускаю snapcraft с nodejs-version: "12.18.3", добавляются после plugin: nodejs

Launching a VM.
snap "snapd" has no updates available                                           
Running with 'sudo' may cause permission errors and is discouraged. Use 'sudo' when cleaning.
Skipping pull desktop-gtk3 (already ran)
Skipping pull xwayland-kiosk-helper (already ran)
Hit http://archive.ubuntu.com/ubuntu bionic InRelease                                                                                                                                                             
Hit http://archive.ubuntu.com/ubuntu bionic-updates InRelease                                                                                                                                                     
Hit http://security.ubuntu.com/ubuntu bionic-security InRelease                                                                                                                                                   
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libxdmcp6_1.1.2-3_amd64.deb [10.7 kB]                                                                                                                                                                       
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 gconf2-common_3.2.6-4ubuntu1_all.deb [700 kB]                                                                                                                                                               
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libdbus-1-3_1.12.2-1ubuntu1.2_amd64.deb [175 kB]                                                                                                                                                            
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libasound2-data_1.1.3-5ubuntu0.5_all.deb [38.7 kB]                                                                                                                                                          
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libsqlite3-0_3.22.0-1ubuntu0.4_amd64.deb [499 kB]                                                                                                                                                           
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libbsd0_0.8.7-1ubuntu0.1_amd64.deb [41.6 kB]                                                                                                                                                                
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libx11-6_1.6.4-3ubuntu0.3_amd64.deb [571 kB]                                                                                                                                                                
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libxau6_1.0.8-1ubuntu1_amd64.deb [7556 B]                                                                                                                                                                   
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libxcb1_1.13-2~ubuntu18.04_amd64.deb [45.5 kB]                                                                                                                                                              
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libxtst6_1.2.3-1_amd64.deb [12.8 kB]                                                                                                                                                                        
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 ucf_3.0038_all.deb [50.5 kB]                                                                                                                                                                                
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libdbus-glib-1-2_0.110-2_amd64.deb [58.3 kB]                                                                                                                                                                
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libx11-data_1.6.4-3ubuntu0.3_all.deb [114 kB]                                                                                                                                                               
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libasound2_1.1.3-5ubuntu0.5_amd64.deb [360 kB]                                                                                                                                                              
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libnss3_3.35-2ubuntu2.12_amd64.deb [1220 kB]                                                                                                                                                                
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libffi6_3.2.1-8_amd64.deb [17.9 kB]                                                                                                                                                                         
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 x11-common_7.7+19ubuntu7.1_all.deb [22.5 kB]                                                                                                                                                                
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libgconf-2-4_3.2.6-4ubuntu1_amd64.deb [84.8 kB]                                                                                                                                                             
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libxss1_1.2.2-1_amd64.deb [8582 B]                                                                                                                                                                          
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libglib2.0-0_2.56.4-0ubuntu0.18.04.6_amd64.deb [1171 kB]                                                                                                                                                    
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libnspr4_4.18-1ubuntu1_amd64.deb [112 kB]                                                                                                                                                                   
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libx11-xcb1_1.6.4-3ubuntu0.3_amd64.deb [9628 B]                                                                                                                                                             
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Get:1 libxext6_1.3.3-1_amd64.deb [29.4 kB]                                                                                                                                                                        
Fetched 0 B in 0s (0 B/s)                                                                                                                                                                                         
Cleaning later steps and re-pulling electron-helloworld ('nodejs-version' property changed)
Cloning into '/root/parts/electron-helloworld/src'...
remote: Enumerating objects: 688, done.
remote: Total 688 (delta 0), reused 0 (delta 0), pack-reused 688
Receiving objects: 100% (688/688), 445.19 KiB | 1.31 MiB/s, done.
Resolving deltas: 100% (365/365), done.
Downloading 'node-v12.18.3-linux-x64.tar.gz'[================================================================================================================================================================] 100%
Downloading 'latest.tar.gz'[=================================================================================================================================================================================] 100%
Skipping build desktop-gtk3 (already ran)
Skipping build xwayland-kiosk-helper (already ran)
Building electron-helloworld 
▐ ╢░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine [email protected]: wanted: {"node":">= 10.12.0"} (current: {"node":"8.10.0","npm":"3.5.2"})
loadDep:global-tunnel-ng  ▀ ╢█████████████████████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
loadDep:serialize-error → ▀ ╢███████████████████████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine [email protected]: wanted: {"node":">=10"} (current: {"node":"8.10.0","npm":"3.5.2"})
WARN engine [email protected]: wanted: {"node":">=10"} (current: {"node":"8.10.0","npm":"3.5.2"})
loadDep:serialize-error → ▐ ╢███████████████████████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
loadDep:type-fest → reque ▀ ╢███████████████████████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
loadDep:pend → resolveWit ▀ ╢███████████████████████████████████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine [email protected]: wanted: {"node":">= 10.17.0"} (current: {"node":"8.10.0","npm":"3.5.2"})
loadDep:yargs-parser → ge ▄ ╢█████████████████████████████████████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine [email protected]: wanted: {"node":">= 10.0.0"} (current: {"node":"8.10.0","npm":"3.5.2"})
npm ERR! Linux 4.15.0-1072-kvm
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "electron" "electron-packager"
npm ERR! node v8.10.0
npm ERR! npm  v3.5.2
npm ERR! code EMISSINGARG

npm ERR! typeerror Error: Missing required argument #1
npm ERR! typeerror     at andLogAndFinish (/usr/share/npm/lib/fetch-package-metadata.js:31:3)
npm ERR! typeerror     at fetchPackageMetadata (/usr/share/npm/lib/fetch-package-metadata.js:51:22)
npm ERR! typeerror     at resolveWithNewModule (/usr/share/npm/lib/install/deps.js:456:12)
npm ERR! typeerror     at /usr/share/npm/lib/install/deps.js:457:7
npm ERR! typeerror     at /usr/share/npm/node_modules/iferr/index.js:13:50
npm ERR! typeerror     at /usr/share/npm/lib/fetch-package-metadata.js:37:12
npm ERR! typeerror     at addRequestedAndFinish (/usr/share/npm/lib/fetch-package-metadata.js:82:5)
npm ERR! typeerror     at returnAndAddMetadata (/usr/share/npm/lib/fetch-package-metadata.js:117:7)
npm ERR! typeerror     at pickVersionFromRegistryDocument (/usr/share/npm/lib/fetch-package-metadata.js:134:20)
npm ERR! typeerror     at /usr/share/npm/node_modules/iferr/index.js:13:50
npm ERR! typeerror This is an error with npm itself. Please report this error at:
npm ERR! typeerror     <http://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     /root/parts/electron-helloworld/build/npm-debug.log
cp: cannot stat './electron-quick-start-linux-x64': No such file or directory
Failed to run 'override-build': Exit code was 1.
Run the same command again with --debug to shell into the environment if you wish to introspect this failure.

(извините за возможно плохой английский)


person guhurak    schedule 11.09.2020    source источник


Ответы (3)


Вы правы, среда выполнения nodejs в пакетах моментальных снимков сильно устарела, даже при использовании core18 в качестве базы через base: core18 в пакете snapcraft.yaml. Решение заключается не в использовании подключаемого модуля snapcraft nodejs, а в загрузке предоставленных двоичных файлов непосредственно из архива дистрибутивов nodejs: https://nodejs.org/dist/.

Это можно сделать очень удобно с помощью плагина snapcrafts dump, который поддерживает загрузку и извлечение архивов (даже эффективное xy сжатие) всего одной строкой кода: в снап:

parts:
  node:
    plugin: dump
    source: https://nodejs.org/dist/v12.18.4/node-v12.18.4-linux-x64.tar.xz

После этого Nodejs будут доступны в папке snaps bin. Команда для запуска приложения javascript может выглядеть так:

command: bin/node $SNAP/app/index.js
person Jens Vagts    schedule 18.09.2020
comment
Привет, я добавил часть узла, но, как и при добавлении версии примечания, узел загружается после его установки, я не знаю, как это изменить. - person guhurak; 21.09.2020

Окей, наконец-то я нашел как это сделать

мне просто нужно было добавить

    build-snaps:
    - node/12/stable

в части электрона-helloworld

(обратите внимание, что после этого у меня есть другие проблемы, но это другая тема)

person guhurak    schedule 23.09.2020

Сначала удалите nodejs с вашего компьютера:

sudo apt remove nodejs

Затем выполните следующие команды одну за другой:

cd ~

curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh

sudo apt install nodejs
person snsakib    schedule 11.09.2020
comment
Вы имеете в виду, что мне нужно, чтобы на моем компьютере была установлена ​​та же версия nodejs, что и версия, которую я хочу использовать в своей оснастке? - person guhurak; 11.09.2020
comment
Хм, это не работает, я добавил несколько логов в свой исходный пост. - person guhurak; 11.09.2020