ZeroMQ + Electron Framework 앱 실행 불가 이슈

2024. 11. 8. 09:20· 자바스크립트/Electron Framework
목차
  1. 배경
  2. 이슈 원인
  3. 시도
  4. 해결

ZeroMQ

배경

회사 개발 업무 중 ZeroMQ 를 무조건 사용해야하는 상황이 생겼다.

협력사들이 다 이걸 쓰고 있다고 하니 맞춰야하는 상황이다. 

대충보니 ZeroMQ는 아주 간단한 메세지  통신에 사용하기에 좋아 보였다. 사용법도 간단했다.

근데 문제는 Electron Framework에 넣고 게다가 라즈베리파이 ( arm64) 환경에서 이 앱이 돌아가야 했기에.. 실행해봤다.

하....

AJavaScript error occurred in the main process
Uncaught Exception:
Error: Failed to load zeromq.js addon.node: Error: ENOENT, node_modules/zeromq/build/linux/arm64/node not found in /tmp/.mount_TestVtatC4/resources/app.asar
Error: ENOENT, node_modules/zeromq/build/linux/arm64/node not found in /tmp/.mount_TestVtatC4/resources/app.asar
    at createError (node:electron/js2c/node_init:2:2002)
    at t.readdirSync (node:electron/js2c/node_init:2:13869)
    at findAddon (/tmp/.mount_TestVtatC4/resources/app.asar/node_modules/zeromq/lib/load-addon.js:22:43)
    at Object.<anonymous> (/tmp/.mount_TestVtatC4/resources/app.asar/node_modules/zeromq/lib/load-addon.js:50:15)
    at Module._compile (node:internal/modules/cjs/loader:1484:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1564:10)
    at Module.load (node:internal/modules/cjs/loader:1295:32)
    at Module._load (node:internal/modules/cjs/loader:1111:12)
    at c._load (node:electron/js2c/node_init:2:16955)
    at Module.require (node:internal/modules/cjs/loader:1318:19)
    at findAddon (/tmp/.mount_TestVtatC4/resources/app.asar/node_modules/zeromq/lib/load-addon.js:43:15)
    at Object.<anonymous> (/tmp/.mount_TestVtatC4/resources/app.asar/node_modules/zeromq/lib/load-addon.js:50:15)
    at Module._compile (node:internal/modules/cjs/loader:1484:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1564:10)
    at Module.load (node:internal/modules/cjs/loader:1295:32)
    at Module._load (node:internal/modules/cjs/loader:1111:12)
    at c._load (node:electron/js2c/node_init:2:16955)
    at Module.require (node:internal/modules/cjs/loader:1318:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/tmp/.mount_TestVtatC4/resources/app.asar/node_modules/zeromq/lib/native.js:8:38)
[2220:1107/070036.348863:ERROR:ozone_platform_x11.cc(245)] Missing X server or $DISPLAY
[2220:1107/070036.349398:ERROR:env.cc(258)] The platform failed to initialize.  Exiting.

이 에러가 사실... Mac (intel, Apple Silicon), Window (x64), Linux(x64) 에선 잘 나왔기에 알 수 없었는데.. 라즈베리파이에서만 저렇게 뜬다.. 

이슈 원인

node_module/zeromq 를 봤다. 

빌어먹을 zeroMQ.js 에서 리눅스 ARM64용 addon.node 파일을 아예 생성조차 하지 않았다.

기존 것들도 prebuild 해준거라 사실 고마운건 알지만... ㅜㅜ 아쉽네..

딱 고것만 없네.. 나 엿 먹일려는 것 처럼

알아서 빌드해야하는 상황이다. 

package.json 에 있는 build 스크립트를 돌리면 현 본인의 네이티브 아키텍쳐와 os 기반으로 생성된다. ( cmake-ts )

VM 우분투 (Arm64) 용이 이럴때 사용되야지...

시도

VM이든 도커든 뭐든 켜서 해당 zeromq (node_modules 에 있는) 패키지를 넣어놓고 직접 빌드한 뒤, addon.node 파일을 별도로 넣어줘야한다. 

아래 압축파일을 해제하면 node_modules에 있는거랑 같다. ( 2024.11.07 자 ) 

zeromq.zip
4.99MB

# arm64 용 OS에서 진행

# 사전설치 : node.js  ( ... 이건 알아서 검색 ... ) 


sudo npm install -g npm-run-all
Sudo npm install -g yarn
sudo apt install ninja-build
sudo apt install g++
sudo apt install build-essential
sudo apt install cmake -y

# package.json 수정

"cmake-ts" 안쪽 configurations 안에 아래 항목 추가 
==================================================
{
        "name": "linux-arm64-electron",
        "os": "linux",
        "arch": "arm64",
        "runtime": "electron",
        "runtimeVersion": "12.22.12"
},
==================================================


echo "export VCPKG_FORCE_SYSTEM_BINARIES=1" >> ~/.bashrc
source ~/.bashrc

yarn install



# 빌드 시작 (yarn 으로 하든 pnpm으로 하든 npm 으로 하든 실행) 
yarn run build

이후

208.44 초 걸렸다.. [m1 (core up) mac mini UTM환경]

 

라즈베리파이는 뒷 버전은 안따지는 것 같으니 일단 arm64/node/addon.node 로 넣어줬다.

결과는 실패.. 에러메세지는 바뀌었는데 addon.node 가 호환되지 않는다고 뜬다.

같은 Arm 아키텍쳐의 CPU라고 생각하고 했는데, 애플실리콘이랑 브로드컴CPU랑은 다를거라곤 생각했지만 역시나 안됐다.

해결

결국 라즈베리파이5 내에서 직접 빌드하여 실행하니 성공..

/node_module/zeromq/linux/arm64/node 에 넣어주고 패키징하니 잘 된다. 

반응형
저작자표시 비영리 변경금지 (새창열림)

'자바스크립트 > Electron Framework' 카테고리의 다른 글

arm64 electron framework + zeromq 사용시 실행 이슈  (0) 2025.02.13
Electron Builder 로 빌드 시 cannot be closed. Please close it manually and click ret  (5) 2024.10.10
Electron Framework + ESM + TypeScript 환경 세팅  (0) 2024.01.31
[Window] Electron Builder 실행시 cannot create symbolic link 이슈  (4) 2024.01.31
  1. 배경
  2. 이슈 원인
  3. 시도
  4. 해결
'자바스크립트/Electron Framework' 카테고리의 다른 글
  • arm64 electron framework + zeromq 사용시 실행 이슈
  • Electron Builder 로 빌드 시 cannot be closed. Please close it manually and click ret
  • Electron Framework + ESM + TypeScript 환경 세팅
  • [Window] Electron Builder 실행시 cannot create symbolic link 이슈
신·기록
신·기록
개발 관련 이슈 해결방안, 활용 방법, 제품 리뷰 등을 기록하는 개인 블로그
신·기록
문제해결집
신·기록
전체
오늘
어제
  • 분류 전체보기 (175)
    • 뉴스 (9)
    • 제품 리뷰 (19)
    • 운영체제 및 서버 (53)
      • Linux (27)
      • Mac OS (8)
      • Proxmox (6)
      • Nginx (2)
      • Raspberry Pi (3)
      • Odroid M2 (4)
    • AI 인공지능 (7)
    • 모바일 (4)
      • Flutter (1)
      • 안드로이드 (1)
    • 데이터베이스 (11)
      • Mysql (9)
    • 자바 (11)
      • Spring Framework (9)
    • 자바스크립트 (19)
      • Node JS (4)
      • Electron Framework (10)
      • React & Next.js (4)
    • 클라우드 플랫폼 (4)
    • 학습 (4)
    • 이슈 (21)
    • 비디오게임 에뮬레이터 (2)
    • CPU 성능 순위 (1)
    • 그래픽카드 성능 순위 (1)
    • 기타 (7)

블로그 메뉴

  • 이용 원칙
  • 태그
  • 방명록

인기 글

최근 글

08-14 02:11
관련 문의는 방명록에 부탁드립니다.
본 블로그의 스킨 출처는 아래와 같습니다.
hELLO · Designed By 정상우.v4.2.2
신·기록
ZeroMQ + Electron Framework 앱 실행 불가 이슈
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.