はじめに

インストール

Ferret は macOS、Windows、Linux で動くデスクトップアプリです。macOS 版は Developer ID で署名され、Apple の公証を受けています。Windows 版と Linux 版はまだコード署名が無いため、初回の起動で OS から確認を求められます。

#ダウンロード

ダウンロードページから、自分の OS と CPU に合うファイルを取ります。ファイルは GitHub Releases ではなく Cloudflare R2 から配っており、残すのは新しい10版だけです。

OSファイル
macOS(Apple silicon / Intel)Ferret-<version>-mac-arm64.dmg、Ferret-<version>-mac-x64.dmg
Windows(x64 / arm64)Ferret-<version>-win-x64.exe、Ferret-<version>-win-arm64.exe(NSIS インストーラー)
Linux(x64)Ferret-<version>-linux-x86_64.AppImage、Ferret-<version>-linux-amd64.deb

0.1.x までは旧名で、MOVIE-ADE-<version>-… として公開していました。Ferret-… の名前は 0.2.0 からです。

Ferret は macOS、Windows、Linux に対応しています。Windows 版と Linux 版はまだコード署名が無いため、初回の起動で確認を求められます(下の手順を参照)。

#ダウンロードを検証する(署名付き SHA256SUMS)

どの版にも SHA256SUMS ファイルと、その署名 SHA256SUMS.sig が付いています。署名には Ferret のリリース鍵を使い、この鍵はダウンロードサーバーとは別に保管しています。そのため、ダウンロードサーバー上でインストーラーが書き換えられても、正しい署名は付けられません。公開鍵はダウンロードサーバーから取らないでください。リポジトリ(build/release-signing/allowed_signers (新しいタブで開きます))から取るか、ここからコピーします。

[email protected] ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEpXERU8ST0MEOIMbzoL4zShkjIrMB4++NL3xBohKAS9

フィンガープリントは SHA256:c7dvwwJQyY9qSstkmrO8JoVZ90DCaFZBAzjqV04N8zQ です。同じファイルは GitHub の各リリースにも添付しています。ssh-keygen(macOS、Windows 10 以降、Linux に入っています)で署名を確かめ、ダウンロードしたファイルのハッシュを署名済みの一覧と比べます。

# the download server (currently the R2 public URL; it may move to a custom domain)
BASE=https://pub-588d93b3e875464f98d6cf98dc711a0c.r2.dev
VERSION=$(curl -s $BASE/latest.json | jq -r .version)
curl -sO $BASE/releases/$VERSION/SHA256SUMS
curl -sO $BASE/releases/$VERSION/SHA256SUMS.sig

# save the public key above as allowed_signers, then:
ssh-keygen -Y verify -f allowed_signers -I [email protected] -n ferret-release -s SHA256SUMS.sig < SHA256SUMS
# → Good "ferret-release" signature for [email protected] …

# macOS
shasum -a 256 -c SHA256SUMS --ignore-missing
# Linux
sha256sum -c SHA256SUMS --ignore-missing
# Windows (PowerShell): compare with the line for your file in SHA256SUMS
Get-FileHash .\Ferret-<version>-win-x64.exe -Algorithm SHA256

ssh-keygen が Good "ferret-release" signature と出さないとき、またはハッシュが一覧に無いときは、使わずに止めてください。Ferret の 更新を確認 も、アプリに組み込んだ鍵で同じ確認をし、署名が合わない版は案内しません。macOS では spctl -a -vv /Applications/Ferret.app で Developer ID の署名と公証も確かめられます。Windows と Linux のインストーラーは、まだ Microsoft や Linux ディストリビューションによるコード署名がありません。0.3.0 までの版は署名を始める前に公開したもので、releases/<version>/manifest.json にある署名なしのハッシュだけです。

#macOS

  1. .dmg を開き、Ferret.app を /Applications にドラッグします。
  2. 起動します。アプリは Developer ID で署名され、Apple の公証を受けている(チケットを添付済み)ので、警告なしで開きます。

署名を自分で確かめるには:

spctl -a -vv /Applications/Ferret.app
# accepted
# source=Notarized Developer ID

古い版(0.2.0 build 2 以前)だけは署名がありません。その版では macOS が「開発元を検証できません」と出します。ダイアログを閉じて システム設定 → プライバシーとセキュリティ を開き、Ferret のメッセージの横の このまま開く を押し、開く で確定します。「壊れている」と出るときは、検疫属性を外します。

xattr -dr com.apple.quarantine /Applications/Ferret.app

#Windows

  1. Ferret-<version>-win-<arch>.exe を実行します。
  2. SmartScreen が「Windows によって PC が保護されました」と出したら、詳細情報 を押してから 実行 を押します。
  3. インストール先のフォルダを選びます。インストーラーはデスクトップにショートカットを作ります。

#Linux

AppImage:

chmod +x Ferret-<version>-linux-x86_64.AppImage
./Ferret-<version>-linux-x86_64.AppImage

Debian / Ubuntu:

sudo apt install ./Ferret-<version>-linux-amd64.deb

deb は ferret パッケージとコマンドを入れます。

Ubuntu 23.10 以降では、AppArmor が Electron のサンドボックスの使うユーザー名前空間を制限するため、AppImage が起動時にサンドボックスのエラーで止まることがあります。その場合は代わりに .deb を入れてください。サンドボックスの補助プログラムも設定されます。

#ソースからビルドする

Node.js 20 以上(CI と手元の開発では 22)、pnpm、git が必要です。

git clone https://github.com/JapanMarketing-Dev/ferret.git
cd ferret
pnpm install          # postinstall prepares node-pty for Electron
pnpm dev              # run in development mode

インストーラーを作るには次を使います(出力は dist/release/、設定は electron-builder.config.cjs)。Linux 版のビルドは Linux でしか動きません。

pnpm dist:mac     # dmg (arm64, x64)
pnpm dist:win     # NSIS installers (x64, arm64)
pnpm dist:linux   # AppImage + deb (x64)

build:<os>:dev スクリプトは展開済みのアプリだけ(--dir)を作るので、手元での確認には速く済みます。

Windows では、pnpm install は再ビルドせず、node-pty に同梱のビルド済みバイナリを使います(再ビルドには Visual Studio の C++ ビルドツールが要るため)。再ビルドさせたいときは ADE_FORCE_NATIVE_REBUILD=1 を設定します。

ターミナルに node-pty を読み込めなかったと出るときは、pnpm rebuild:native を実行してください。

#アップデート

Ferret は自動ではアップデートしません。フッターの アップデート を開き、更新を確認 を押します。ダウンロードサーバー(R2)から latest.json を取って版を比べ、ダウンロードページへのリンクを出します。0.4.0 からは、その版の SHA256SUMS の署名もアプリに組み込んだリリース鍵で確かめ、署名を検証できない版は案内しません。押すまでは何も確認せず、自動で入れることもありません。

GitHub でこのページの翻訳を手伝う (新しいタブで開きます)