6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ElectronでLinux向けに書き出すまで(macOS)

Last updated at Posted at 2024-10-31

環境のセットアップからクロスコンパイルするところまで試しました。
WinとMacはすんなりビルドできたのですが、Linux(Raspberry Pi)への書き出しで戸惑ったので、まとめておきます。

使用環境

OS : macOS Ventura 13.0
Electron : v31.7.3
Node : v20.18.0

セットアップ

いくつか方法があるようですが、Viteを使うことが多いので今回はelectron-viteを利用しました。
https://electron-vite.org/

electronを導入するときの設定も自動で行ってくれるので、簡単に起動できます。

% npm create @quick-start/electron

% cd electron-app
% npm run dev

スクリーンショット 2024-10-30 14.10.42.png

あとは自由にHTMLを書きます。

ビルド

Linux向けに書き出します。
デバイスはRaspberry Pi 4でOSはRaspberry Pi OS(64bit)を使用しています。

# linux
% npm run build:linux

エラーが出ました。

   snapcraft is not installed, please: brew install snapcraft
   /Users/mypcname/web/electron-app/node_modules/app-builder-bin/mac/app-builder_arm64 process failed ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
Exit code:
1  failedTask=build stackTrace=Error: /Users/mypcname/web/electron-app/node_modules/app-builder-bin/mac/app-builder_arm64 process failed ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
Exit code:
1
    at ChildProcess.<anonymous> (/Users/mypcname/web/electron-app/node_modules/builder-util/src/util.ts:252:14)
    at Object.onceWrapper (node:events:629:26)
    at ChildProcess.emit (node:events:514:28)
    at maybeClose (node:internal/child_process:1091:16)
    at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5)

どうやらsnapcraftが必要なようなので、brewを使ってインストールします。

% brew install snapcraft

再度チャレンジしますが、またエラーが発生しました。

You need 'multipass' set-up to build snaps: https://multipass.run.
   exit status 2
github.com/develar/app-builder/pkg/util.ExecuteAndPipeStdOutAndStdErr
	/Volumes/data/Documents/app-builder/pkg/util/exec.go:23
github.com/develar/app-builder/pkg/package-format/snap.buildWithoutTemplate
	/Volumes/data/Documents/app-builder/pkg/package-format/snap/snap.go:352
github.com/develar/app-builder/pkg/package-format/snap.Snap
	/Volumes/data/Documents/app-builder/pkg/package-format/snap/snap.go:204
github.com/develar/app-builder/pkg/package-format/snap.ConfigureCommand.func1
	/Volumes/data/Documents/app-builder/pkg/package-format/snap/snap.go:82
github.com/alecthomas/kingpin.(*actionMixin).applyActions
	/Volumes/data/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/actions.go:28
github.com/alecthomas/kingpin.(*Application).applyActions
	/Volumes/data/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:557
github.com/alecthomas/kingpin.(*Application).execute
	/Volumes/data/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:390
github.com/alecthomas/kingpin.(*Application).Parse
	/Volumes/data/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:222
main.main
	/Volumes/data/Documents/app-builder/main.go:90
runtime.main
	/usr/local/Cellar/go/1.17/libexec/src/runtime/proc.go:255
runtime.goexit
	/usr/local/Cellar/go/1.17/libexec/src/runtime/asm_arm64.s:1133
   /Users/mypcname/web/electron-app/node_modules/app-builder-bin/mac/app-builder_arm64 process failed ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
Exit code:
1  failedTask=build stackTrace=Error: /Users/mypcname/web/electron-app/node_modules/app-builder-bin/mac/app-builder_arm64 process failed ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
Exit code:
1
    at ChildProcess.<anonymous> (/Users/mypcname/web/electron-app/node_modules/builder-util/src/util.ts:252:14)
    at Object.onceWrapper (node:events:629:26)
    at ChildProcess.emit (node:events:514:28)
    at maybeClose (node:internal/child_process:1091:16)
    at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5)

またエラー。今度はmultipassが必要らしいです。
コメントにあるhttps://multipass.run/から、macOS用のインストーラーを入手し、インストールします。

再度ビルドを試します。

% npm run build:linux

暫くして.debファイルが生成され、ビルドが成功しました。
この.debファイルをUSBなどでRaspberry Piに転送します。

GUI版では、ファイルを右クリックしてインストールが可能です。

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?