Справочник

Расширенная установка

Проверка подписи загрузки, сборка Ferret из исходного кода, получение старой версии и то, как работают обновления. Для установки Ferret ничего из этого не требуется.

#Все загрузки

Файлы раздаются из Cloudflare R2, а не из GitHub Releases, и хранятся только 10 последних версий. Все они перечислены на странице загрузки.

ОСФайлы
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 (установщик)
Linux (x64)Ferret-<version>-linux-x86_64.AppImage, Ferret-<version>-linux-amd64.deb

Выпуски до 0.1.x публиковались под старым названием, как MOVIE-ADE-<version>-…. Имена Ferret-… используются начиная с 0.2.0.

#Проверка загрузки (подписанный 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 можно также проверить подпись Developer ID и нотаризацию командой spctl -a -vv /Applications/Ferret.app. Для выпусков до 0.3.0 сравнивайте с хешами в releases/<version>/manifest.json.

#Старые версии для macOS

Для версий до 0.2.0 build 2: если macOS сообщает, что не удаётся проверить разработчика, закройте диалог, откройте Системные настройки → Конфиденциальность и безопасность, нажмите Всё равно открыть рядом с сообщением о Ferret и подтвердите кнопкой Открыть. Если система сообщает, что приложение «повреждено», снимите атрибут карантина:

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

#Сборка из исходного кода

Нужны 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 не обновляется автоматически. В нижней панели откройте Обновления и нажмите Проверить обновления. Ferret загрузит latest.json с сервера загрузки (R2), сравнит версии и проверит подпись SHA256SUMS этой версии ключом выпусков, встроенным в приложение. Если доступна более новая версия, нажмите Скачать: Ferret скачает установщик для вашего компьютера, проверит, что его SHA-256 совпадает с подписанным SHA256SUMS, сохранит его в папку «Загрузки» и покажет там. Страница загрузки выполняет ту же проверку в браузере, прежде чем сохранить файл. Пока вы не нажмёте кнопку, ничего не проверяется, и ничего не устанавливается автоматически.

Помочь с переводом этой страницы на GitHub (откроется в новой вкладке)