Electron パッケージガイドライン

From ArchWiki
Jump to navigation Jump to search
パッケージ作成ガイドライン

CLRクロスEclipseElectronFree PascalGNOMEGoHaskellJavaKDEカーネルLispMinGWNode.jsNonfreeOCamlPerlPHPPythonRRubyRustVCSウェブWine

このドキュメントでは ElectronPKGBUILD を書く時の標準とガイドラインについて触れています。

Electron システムを使う

Arch Linux には electronelectron2 パッケージがあり、これらを使うことでシェルスクリプトのラッパーを介して Electron アプリケーションを実行できます:

#!/bin/sh

exec electron /path/to/appname/ "$@"

appname/ ディレクトリあるいは appname.asar という名前のファイルバンドルは resources/app/ フォルダ (または resources/app.asar) などのビルド済み Electron アプリケーションとして存在します。他のファイルは全て Electron ランタイムのコピーであり、パッケージからは削除しても問題ありません。

コンパイル済みの拡張をシステムの Electron でビルド

一部の Electron アプリケーションは Electron ランタイムにリンクされたコンパイル済みのネイティブ拡張を含んでおり、適切なバージョンの Electron を使ってビルドする必要があります。npm/yarn は常にビルド済みのプライベートな Electron コピーでビルドしてしまうため、package.json から Electron の依存関係にパッチをあてて、システムの Electron と同じバージョンを使うようにしてください。ビルドシステムは必要なビルド済みコピーをダウンロードして、ネイティブ拡張をコンパイルし、パッケージを作成するので、package() で不要なファイルを削除します。

もしくは、package.json から Electron の依存を削除して、npm の実行前に環境変数を設定することもできます:

export npm_config_target=$(cat /usr/lib/electron/version | tail -c +2)
export npm_config_arch=x64
export npm_config_target_arch=x64
export npm_config_disturl=https://atom.io/download/electron
export npm_config_runtime=electron
export npm_config_build_from_source=true
HOME="$srcdir/.electron-gyp" npm install

HOME$srcdir のパスに設定することで、ビルド時に HOME ディレクトリにファイルが作られなくなります。.electron-gyp キャッシュを利用するコマンドのパスは調整してください。

詳しくは こちら を参照。

アーキテクチャ

PKGBUILD#arch を見てください。

コンパイル済みのネイティブ拡張を含む Electron パッケージはアーキテクチャに依存します。他のパッケージはアーキテクチャに依存しません。

パッケージにビルド済みの Electron のコピーが含まれる場合、常にアーキテクチャに依存しています。

ディレクトリ構造

パッケージがアーキテクチャ依存の場合、resources/app/ ディレクトリを /usr/lib/appname/ にインストールしてください。非依存の場合は /usr/share/appname/ を使ってください。

パッケージにビルド済みの Electron のコピーを含む場合、全て /opt/appname にコピーしてください。