手順へ移動
NeuraCoreダウンロード

コマンド 1 行、どのシステムでも

NeuraCore をインストールする

NeuraCore は、お使いのコンピューターがすでに使っているソフトウェア管理のしくみでインストールされます。ですから、ほかのソフトと一緒に更新されます。下からご自分のシステムを選び、その行を端末に貼り付けてください。

現在のバージョン: 1.0.0

インストールの前に:NeuraCore とは

このソフトウェアは、Second Life の開発元であるリンデンラボが提供またはサポートするものではありません。NeuraCore は独立した第三者ビューアです。リンデンラボとの提携、推奨、公式製品のいずれでもありません。Second Life およびリンデンラボは Linden Research, Inc. の商標です。

インストール前に知っておくこと

  • NeuraCore は 3D の世界を描画しません。チャット、インベントリ、外見、移動、地図を扱う描画なしの操作クライアントで、リンデンラボのビューアのような描画表示はありません。
  • 自律的に動作できます。オートメーションエンジン、組み込みの Python インタプリタ、任意の AI コントローラが、許可した操作をあなたのアバターに代わって実行します。そのアバターはリンデンラボの規則でいうスクリプテッドエージェントに当たり、必要な申告を行う責任はあなたにあります。
  • 無料ソフトウェアではなくライセンス制です。ライセンスはインワールドで購入し、アバターに紐づきます。ライセンスを適用するため、どのアバターが接続しているかがライセンスサービスに送られます。
  • Second Life と OpenSimulator グリッドに接続し、いずれに対しても NeuraCore として自己申告します。

サポート

NeuraCore のサポートは、NeuraCore サポートポータルとインワールドの無料 NeuraCore Support HUD が窓口です。リンデンラボは提供しておらず、NeuraCore を調査することもできません。Second Life のアカウント、支払い、プラットフォームの問題はリンデンラボのサポートへご連絡ください。

プライバシー

NeuraCore が何を収集し、保持し、送信するかはプライバシー通知にすべて記載しています。これは初回起動時に同意を求められる免責事項でもあります。

プライバシー通知を読む

LinuxDebian · Ubuntu · Mint · Fedora · Arch · Garuda · Manjaro

まずターミナルを開きます

  1. Ctrl+Alt+T を押します。ほとんどのデスクトップではこれですぐに開きます。
  2. 何も起きなければ、アプリケーションメニューを開いて「ターミナル」を探してください。KDE では Konsole、GNOME ではターミナルという名前です。
  3. 文字を入力する窓が開きます。下の行はそこに貼り付けて Enter を押します。

curl も必要です

下のコマンドは、curl という小さなプログラムを使ってインストーラーを取得します。ほとんどのデスクトップ環境にはすでに入っていますが、導入したばかりの Debian にはないことがよくあります。curl --version と入力して確かめてください。「command not found」と返ってくる場合は、先に入れてください:

Debian, Ubuntu, Mint

sudo apt install curl

Fedora, RHEL

sudo dnf install curl

Arch, Garuda, Manjaro

sudo pacman -S curl

curl を入れたくない場合、wget でも同じことができます。こちらの方が入っていることが多いです:

wget -qO- https://download.neuracore.ch/install.sh | sudo sh

NeuraCore のソフトウェアリポジトリと署名鍵を追加し、NeuraCore をインストールします。お使いのシステムが apt・dnf・pacman のどれを使うかは、コマンドが自分で判断します。

curl -fsSL https://download.neuracore.ch/install.sh | sudo sh
  • その後 NeuraCore はごく普通のパッケージになります。システム全体を更新するときに一緒に更新されます。
  • パッケージは Python を同梱しています。お使いのディストリビューションの Python のバージョンは関係ありません。
  • /opt/neuracore にインストールされ、起動用のファイルを PATH に置きます。ディストリビューションが入れたものには一切影響しません。
手順を自分で実行したい

1 行のコマンドは、ちょうどこの手順を行います。スクリプトをシェルに流し込みたくない場合はご自分で実行してください。もっともな考え方ですし、スクリプトの中身はこれです。

Debian・Ubuntu・Mint, 鍵を追加し、リポジトリを追加し、インストールします:

sudo mkdir -p /etc/apt/keyrings
sudo curl -fsSL https://download.neuracore.ch/neuracore.asc -o /etc/apt/keyrings/neuracore.asc
echo 'deb [signed-by=/etc/apt/keyrings/neuracore.asc] https://download.neuracore.ch/apt stable main' | sudo tee /etc/apt/sources.list.d/neuracore.list
sudo apt update && sudo apt install neuracore

Fedora・RHEL・Alma・Rocky:

sudo tee /etc/yum.repos.d/neuracore.repo >/dev/null <<'EOF'
[neuracore]
name=NeuraCore
baseurl=https://download.neuracore.ch/rpm
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://download.neuracore.ch/neuracore.asc
EOF
sudo dnf install neuracore

Arch・Garuda・Manjaro・EndeavourOS, フィンガープリントは下のリンク先の鍵のページに記載されています:

curl -fsSL https://download.neuracore.ch/neuracore.asc -o /tmp/neuracore.asc
sudo pacman-key --add /tmp/neuracore.asc
sudo pacman-key --lsign-key <fingerprint>
printf '\n[neuracore]\nSigLevel = Required DatabaseOptional\nServer = https://download.neuracore.ch/arch\n' | sudo tee -a /etc/pacman.conf
sudo pacman -Sy neuracore

必要なもの

  • 64 ビットの x86 システム(ほとんどのデスクトップやノートパソコンがこれです)。Raspberry Pi など 64 ビット ARM の機器には、このページに専用のカードがあります。
  • 2024 年以降にリリースされたディストリビューション。Debian 13、Ubuntu 24.04、Fedora 41、または最新の Arch・Garuda・Manjaro。それより古い版はシステムライブラリが古すぎて、このビルドを実行できません。
  • グラフィカルなデスクトップ環境。NeuraCore に 3D 表示はありませんが、ウィンドウを使うアプリケーションです。
  • ディスクの空き容量 約 200 MB。
  • リポジトリを追加するための root 権限(一度だけ)。

このシステム向けの公開版: 1.0.0

Raspberry PiRaspberry Pi OS 64-bit · Ubuntu · Pi 4 · Pi 5 · Pi 400 · Pi 500 · Pi Zero 2 W

まず、ターミナルを開きます

  1. Raspberry Pi のデスクトップで Ctrl+Alt+T を押します。すぐに開きます。
  2. 何も起きない場合は、左上の Raspberry メニューから アクセサリ、続いて ターミナル を開きます。
  3. 文字の入力欄があるウィンドウが開きます。下の一行はそこに貼り付けて、Enter キーを押します。

まず 64 ビット版かどうかを確認します

NeuraCore は 64 ビット版の Raspberry Pi OS 向けにのみ公開しています。uname -m と入力してください。aarch64 なら準備できています。armv7l や armv6l なら 32 ビット版で、これは古いボードでは今も既定のダウンロードです。Pi 4、5、400、500、Zero 2 W のいずれかで、Raspberry Pi Imager を使い 64 ビット版を選んで入れ直してください。curl も必要ですが、Raspberry Pi OS には最初から入っています。

アーキテクチャを確認する

uname -m

curl がなければ入れる

sudo apt install curl

curl を入れたくない場合は、wget でも同じことができます。

wget -qO- https://download.neuracore.ch/install-raspberry.sh | sudo sh

これは 64 ビット ARM 向けの NeuraCore ソフトウェアリポジトリと署名鍵を追加し、NeuraCore をインストールします。デスクトップ機が使うリポジトリとは別になっているので、このボードで動く版が必ず提供されます。

curl -fsSL https://download.neuracore.ch/install-raspberry.sh | sudo sh
  • その後 NeuraCore は通常のパッケージです。sudo apt update && sudo apt upgrade でシステム全体と一緒に最新になります。
  • パッケージは Python を自分で同梱しているため、Raspberry Pi OS が用意する版は関係ありません。
  • /opt/neuracore にインストールし、起動用のコマンドを PATH に置きます。Raspberry Pi OS が入れたものには触れません。
  • 画面のない Pi でも動きます。neuracore --headless はウィンドウをまったく開かずに起動するので、ルーターの裏に置いたボードでも役に立ちます。
手順を自分で実行したい

1 行のコマンドは、ちょうどこの手順を行います。スクリプトをシェルに流し込みたくない場合はご自分で実行してください。もっともな考え方ですし、スクリプトの中身はこれです。

鍵を追加し、ARM 用リポジトリを追加し、インストールします。

sudo mkdir -p /etc/apt/keyrings
sudo curl -fsSL https://download.neuracore.ch/neuracore.asc -o /etc/apt/keyrings/neuracore.asc
echo 'deb [arch=arm64 signed-by=/etc/apt/keyrings/neuracore.asc] https://download.neuracore.ch/apt-arm64 stable main' | sudo tee /etc/apt/sources.list.d/neuracore.list
sudo apt update && sudo apt install neuracore

必要なもの

  • 64 ビット版 Raspberry Pi OS が動く Raspberry Pi 4、5、400、500、Zero 2 W のいずれか。uname -m が aarch64 と答える必要があります。
  • Raspberry Pi OS Bookworm 以降、または Raspberry Pi 向け Ubuntu 22.04 以降。
  • Raspberry Pi のデスクトップ。--headless で動かす場合は不要です。NeuraCore は 3D の世界を描かないため、グラフィック性能は問いません。
  • カードまたはディスクに約 200 MB の空き。メモリは 4 GB あると快適です。
  • リポジトリを追加するための root 権限が一度だけ必要です。

このシステム向けの公開版: 1.0.0

WindowsWindows 10 · Windows 11

まずターミナルを開きます

  1. スタートボタンを右クリックして「ターミナル」を選びます。Windows 10 では Windows PowerShell という名前です。
  2. または Windows キーを押し、「terminal」と入力して Enter を押します。
  3. 文字を入力する窓が開きます。下の行を貼り付けて Enter を押します。

この PowerShell コマンドでインストーラースクリプトをダウンロードして実行します。NeuraCore を Program Files にインストールし、スタートメニューとデスクトップにショートカットを作成します:

irm https://download.neuracore.ch/install.ps1 | iex
  • PowerShell または Windows Terminal で実行します。管理者権限が必要な場合は Windows が昇格を求めます。
  • NeuraCore を Program Files にインストールし、スタートメニューとデスクトップにショートカットを作成します。
  • 後日の更新は、同じコマンドを再度実行してください。

直接ダウンロード(.zip)

スクリプトを実行せずに手動でインストールしたい場合は、ポータブルな zip アーカイブを直接ダウンロードしてください:

Windows 版 NeuraCore をダウンロード (v1.0.0)

NeuraCore-1.0.0-windows-x64.zip · 29 MB

  • zip アーカイブを任意のフォルダー(Program Files など)に展開します。
  • NeuraCore.exe を実行してアプリケーションを起動します。
  • 必要に応じて、デスクトップやスタートメニューに手動でショートカットを作成してください。

必要なもの

  • Windows 10 バージョン 1809 以降、または Windows 11 の 64 ビット版。
  • Windows PowerShell または Windows ターミナル(Windows に付属)。
  • ディスクの空き容量 約 200 MB。
  • Program Files へインストールする際、確認画面で管理者権限の許可。

このシステム向けの公開版: 1.0.0

macOSApple シリコン · Intel

まずターミナルを開きます

  1. Cmd+スペースを押し、「terminal」と入力して Enter を押します。
  2. または Finder → アプリケーション → ユーティリティ → ターミナルと進みます。
  3. 文字を入力する窓が開きます。下の行を貼り付けて Enter を押します。

このコマンドはインストールスクリプトをダウンロードして実行します。NeuraCore をアプリケーションフォルダにインストールし、ターミナル用コマンドを作成します:

curl -fsSL https://download.neuracore.ch/install.sh | sudo sh
  • ターミナルで実行してください。管理者権限が必要な場合、macOS がパスワードの入力を求めます。
  • あとから更新する場合は同じコマンドを再度実行してください。
  • NeuraCore はアドホック署名されていますが Apple による公証をまだ受けていないため、macOS は隔離属性を付けて起動を拒否します。インストーラはインストール直後に /Applications/NeuraCore.app からその属性を解除します。それでも開けない場合は自分で実行してください: xattr -dr com.apple.quarantine /Applications/NeuraCore.app

必要なもの

  • macOS 13(Ventura)以降。
  • ディスクの空き容量 約 200 MB。
  • 「アプリケーション」へインストールするための管理者権限(確認時)。

このシステム向けの公開版: 1.0.0

NeuraCore を最新に保つ

NeuraCore が自分自身を置き換えることはありません。パッケージマネージャ、またはインストールスクリプトの再実行によって更新されます。

Debian・Ubuntu・Mint・Raspberry Pi OS

sudo apt update && sudo apt upgrade

Fedora・RHEL

sudo dnf upgrade

Arch・Garuda・Manjaro

sudo pacman -Syu

Windows

irm https://download.neuracore.ch/install.ps1 | iex

macOS

curl -fsSL https://download.neuracore.ch/install.sh | sudo sh

新しいバージョンがあるとき、NeuraCore はステータスバーでお知らせします。そのメッセージをクリックすると、お使いのコンピューター向けの正確なコマンドを示すウィンドウが開きます。

NeuraCore を削除する

NeuraCore は 1 つのコマンドで完全に削除できます。動き続けるものは残らず、ほかのものには触れません。

Debian・Ubuntu・Mint・Raspberry Pi OS

sudo apt remove neuracore

Fedora, RHEL

sudo dnf remove neuracore

Arch, Garuda, Manjaro

sudo pacman -R neuracore

Windows

Remove-Item -Recurse -Force "$env:ProgramFiles\NeuraCore"

macOS

sudo rm -rf /Applications/NeuraCore.app /usr/local/bin/neuracore

作成した個人用ファイルは意図的に残されます。ホームディレクトリの NeuraCore フォルダにはアバター、設定、暗号化されたパスワードが保存されており、プログラムを削除してもこれらは消去されません。何も残したくない場合はご自身でそのフォルダを削除してください。Linux ではインストーラが追加したリポジトリ(/etc/apt/sources.list.d、/etc/yum.repos.d、/etc/pacman.conf)を削除することもできます。

本物かどうかを確かめる

NeuraCore のパッケージはすべて署名されており、お使いのソフトウェア管理のしくみは、何かをインストールする前にその署名を検証します。このサイトからお使いのコンピューターまでの間でパッケージが改変されていれば、インストールは中止されます。

署名鍵の公開側はここで配布しています。インストールのコマンドの一部としてシステムが自動的に取り込むので、ご自身で扱う必要はありません。ご自身で確認できるように公開しています。

署名鍵を見る
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
=oCLH
-----END PGP PUBLIC KEY BLOCK-----

ファイルそのもの: /neuracore.asc

1 行のインストールコマンドは、スクリプトをダウンロードして実行します。実行する前に読む価値のあるものですから、各手順に注釈を付けた、読みやすい素のファイルにしてあります。

インストールスクリプトを読む
#!/bin/sh
#
# NeuraCore installer.
#
#   curl -fsSL https://download.neuracore.ch/install.sh | sudo sh
#
# On Linux, this adds the NeuraCore package repository and its signing key,
# then installs NeuraCore from it as an ordinary package.
# On macOS, this downloads the signed application bundle, installs it to
# /Applications, clears the quarantine mark, and symlinks the terminal command.
#
# It is generated by NeuraCoreDeploy and carries this release's signing
# fingerprint. Read it before running it; that is what the pipe into `sh`
# deserves.

set -eu

SITE="https://download.neuracore.ch"
KEY_FINGERPRINT="85D8D6B36EE7AD08922E94405401ED04C8BE02A8"

say() { printf '%s\n' "$*"; }
fail() { printf '%s\n' "$*" >&2; exit 1; }

# Root is needed to install software, and asking for it up front is better than
# failing halfway through with a permission error.
[ "$(id -u)" = "0" ] || fail "Please run this with sudo:  curl -fsSL $SITE/install.sh | sudo sh"

OS="$(uname -s)"
if [ "$OS" = "Darwin" ]; then
    say "macOS detected. Installing NeuraCore ..."

    command -v curl >/dev/null 2>&1 || fail "curl is required to install NeuraCore."
    command -v tar >/dev/null 2>&1 || fail "tar is required to unpack NeuraCore."

    say "Checking latest release from $SITE/latest.json ..."
    LATEST_JSON=$(curl -fsSL "$SITE/latest.json" 2>/dev/null || true)
    TARBALL_PATH=$(printf '%s\n' "$LATEST_JSON" | grep -o 'files/[^"]*macos[^"]*\.tar\.gz' | head -n 1 || true)
    if [ -z "$TARBALL_PATH" ]; then
        VERSION=$(printf '%s\n' "$LATEST_JSON" | grep -o '"version"[[:space:]]*:[[:space:]]*"[^"]*"' | head -n 1 | cut -d'"' -f4 || true)
        if [ -n "$VERSION" ]; then
            TARBALL_PATH="files/$VERSION/NeuraCore-$VERSION-macos.tar.gz"
        fi
    fi

    if [ -z "$TARBALL_PATH" ]; then
        for V in 2.0.0 1.0.1 1.0.0; do
            if curl -fsI "$SITE/files/$V/NeuraCore-$V-macos.tar.gz" 2>/dev/null | grep -q "200 OK"; then
                TARBALL_PATH="files/$V/NeuraCore-$V-macos.tar.gz"
                break
            fi
        done
    fi

    [ -n "$TARBALL_PATH" ] || fail "Could not locate a macOS release archive on $SITE."

    DOWNLOAD_URL="$SITE/$TARBALL_PATH"
    TMPDIR=$(mktemp -d /tmp/neuracore.XXXXXX)
    trap 'rm -rf "$TMPDIR"' EXIT INT TERM

    say "Downloading $DOWNLOAD_URL ..."
    curl -fsSL "$DOWNLOAD_URL" -o "$TMPDIR/macos.tar.gz" || fail "Failed to download NeuraCore from $DOWNLOAD_URL"

    say "Extracting archive ..."
    tar -xzf "$TMPDIR/macos.tar.gz" -C "$TMPDIR" || fail "Failed to extract NeuraCore archive."

    APP_SRC=""
    if [ -d "$TMPDIR/neuracore/NeuraCore.app" ]; then
        APP_SRC="$TMPDIR/neuracore/NeuraCore.app"
    elif [ -d "$TMPDIR/NeuraCore.app" ]; then
        APP_SRC="$TMPDIR/NeuraCore.app"
    fi
    [ -n "$APP_SRC" ] || fail "Archive does not contain NeuraCore.app."

    say "Installing NeuraCore.app to /Applications ..."
    rm -rf /Applications/NeuraCore.app
    cp -R "$APP_SRC" /Applications/

    say "Clearing quarantine mark ..."
    xattr -dr com.apple.quarantine /Applications/NeuraCore.app 2>/dev/null || true

    say "Linking terminal command to /usr/local/bin/neuracore ..."
    mkdir -p /usr/local/bin
    ln -sf /Applications/NeuraCore.app/Contents/MacOS/neuracore /usr/local/bin/neuracore

    say ""
    say "NeuraCore is installed. Start it from your Applications folder, Launchpad, Spotlight, or run: neuracore"
    say "To upgrade later, run this installer command again."
    exit 0
fi

# Linux package manager detection
if command -v apt-get >/dev/null 2>&1; then
    say "Debian or Ubuntu detected. Adding the NeuraCore repository ..."

    # Which of the two apt repositories this machine belongs to. They are
    # separate roots because an apt suite's Release file names the
    # architectures it serves, so one root per architecture is the only
    # arrangement in which publishing for one cannot break the other. A
    # Raspberry Pi pasting the generic command lands here, and has to be sent
    # to its own root or apt finds the repository and no installable package
    # in it.
    APT_ROOT="apt"
    DPKG_ARCH=$(dpkg --print-architecture 2>/dev/null || echo unknown)
    case "$DPKG_ARCH" in
        arm64) APT_ROOT="apt-arm64" ;;
        amd64) APT_ROOT="apt" ;;
        armhf|armel)
            fail "NeuraCore needs a 64-bit system, and this one is running a 32-bit ($DPKG_ARCH) Debian. On a Raspberry Pi, install the 64-bit Raspberry Pi OS and run this again."
            ;;
        *)
            say "This machine reports the $DPKG_ARCH architecture, which NeuraCore is not published for. Trying the 64-bit x86 repository; see $SITE if apt finds no package."
            ;;
    esac

    mkdir -p /etc/apt/keyrings
    # The armoured key is used directly. apt has read `signed-by` keyrings in
    # this form since 2.4 (Debian 12, Ubuntu 22.04), and it keeps the key out of
    # the deprecated system-wide trusted set, where it would have been trusted
    # for every repository on the machine rather than only this one.
    curl -fsSL "$SITE/neuracore.asc" -o /etc/apt/keyrings/neuracore.asc
    chmod 0644 /etc/apt/keyrings/neuracore.asc
    printf '%s\n' \
        "deb [signed-by=/etc/apt/keyrings/neuracore.asc] $SITE/$APT_ROOT stable main" \
        > /etc/apt/sources.list.d/neuracore.list
    apt-get update
    apt-get install -y neuracore

elif command -v dnf >/dev/null 2>&1; then
    say "Fedora or RHEL detected. Adding the NeuraCore repository ..."
    # `repo_gpgcheck=1` verifies the repository metadata as well as the package.
    # Without it dnf checks only the package signature, and an attacker who could
    # replace the metadata could hide an upgrade rather than forge one.
    cat > /etc/yum.repos.d/neuracore.repo <<REPO
[neuracore]
name=NeuraCore
baseurl=$SITE/rpm
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=$SITE/neuracore.asc
metadata_expire=300
REPO
    dnf install -y neuracore

elif command -v pacman >/dev/null 2>&1; then
    say "Arch detected. Adding the NeuraCore repository ..."
    curl -fsSL "$SITE/neuracore.asc" -o /tmp/neuracore.asc
    pacman-key --add /tmp/neuracore.asc
    # Locally signing the key is what moves it from "known" to "trusted".
    # Without this step pacman imports the key and then refuses every package
    # signed with it, reporting them as being from an unknown trust source.
    pacman-key --lsign-key "$KEY_FINGERPRINT"
    rm -f /tmp/neuracore.asc
    if ! grep -q '^\[neuracore\]' /etc/pacman.conf; then
        cat >> /etc/pacman.conf <<REPO

[neuracore]
SigLevel = Required DatabaseOptional
Server = $SITE/arch
REPO
    fi
    pacman -Sy --noconfirm neuracore

else
    fail "This system has none of apt, dnf or pacman. See $SITE for the other ways to install NeuraCore."
fi

say ""
say "NeuraCore is installed. Start it from your applications menu, or run: neuracore"
say "It will upgrade with the rest of your system from now on."

ファイルそのもの: /install.sh

Raspberry Pi は専用のスクリプトでインストールします。追加するリポジトリが異なり、64 ビット版かどうかも確認するためです。同じ理由で、その全文をここに載せています。

Raspberry Pi 用インストールスクリプトを読む
#!/bin/sh
#
# NeuraCore installer for the Raspberry Pi.
#
#   curl -fsSL https://download.neuracore.ch/install-raspberry.sh | sudo sh
#
# This adds the NeuraCore package repository for 64-bit ARM and its signing
# key, then installs NeuraCore from it as an ordinary package. Afterwards
# `sudo apt update && sudo apt upgrade` keeps it current along with the rest of
# the system, and nothing here ever replaces a file behind apt's back.
#
# It is generated by NeuraCoreDeploy and carries this release's signing
# fingerprint. Read it before running it; that is what the pipe into `sh`
# deserves.

set -eu

SITE="https://download.neuracore.ch"
KEY_FINGERPRINT="85D8D6B36EE7AD08922E94405401ED04C8BE02A8"

say() { printf '%s\n' "$*"; }
fail() { printf '%s\n' "$*" >&2; exit 1; }

# Root is needed to install software, and asking for it up front is better than
# failing halfway through with a permission error.
[ "$(id -u)" = "0" ] || fail "Please run this with sudo:  curl -fsSL $SITE/install-raspberry.sh | sudo sh"

command -v apt-get >/dev/null 2>&1 || fail "This does not look like Raspberry Pi OS or any other Debian system: apt-get is not here. See $SITE for the other ways to install NeuraCore."
command -v curl >/dev/null 2>&1 || fail "curl is required to fetch the signing key:  sudo apt install curl"

# What the firmware calls this board. Present on every Raspberry Pi and absent
# on an ordinary PC, so it is reported when it is there and skipped when it is
# not, rather than being required.
if [ -r /proc/device-tree/model ]; then
    MODEL=$(tr -d '\0' < /proc/device-tree/model)
    say "Installing NeuraCore on: $MODEL"
fi

# The architecture, which is what decides whether there is a package at all.
# A 32-bit Raspberry Pi OS is the common case worth answering properly: it is
# the default download on the Raspberry Pi site for older boards, it runs
# perfectly well, and NeuraCore is not published for it. apt on its own would
# say only that there is no installation candidate.
DPKG_ARCH=$(dpkg --print-architecture 2>/dev/null || echo unknown)
case "$DPKG_ARCH" in
    arm64)
        ;;
    armhf|armel)
        fail "This Raspberry Pi is running the 32-bit ($DPKG_ARCH) Raspberry Pi OS, and NeuraCore is published only for the 64-bit one. Check with: uname -m . A Pi 3, 4, 5, 400, 500 or Zero 2 W can run the 64-bit system; reinstall it with Raspberry Pi Imager, choosing the 64-bit edition, and run this again."
        ;;
    amd64)
        fail "This is a 64-bit x86 machine rather than a Raspberry Pi, so it wants the ordinary installer:  curl -fsSL $SITE/install.sh | sudo sh"
        ;;
    *)
        fail "This machine reports the $DPKG_ARCH architecture, and NeuraCore is published for arm64 and amd64 only. See $SITE."
        ;;
esac

say "Adding the NeuraCore repository for 64-bit ARM ..."
mkdir -p /etc/apt/keyrings
# The armoured key is used directly. apt has read `signed-by` keyrings in this
# form since 2.4, which is every Raspberry Pi OS from Bookworm on, and it keeps
# the key out of the deprecated system-wide trusted set where it would have
# been trusted for every repository on the machine rather than only this one.
curl -fsSL "$SITE/neuracore.asc" -o /etc/apt/keyrings/neuracore.asc
chmod 0644 /etc/apt/keyrings/neuracore.asc

# Its own repository root, not the x86 one. An apt suite's Release file names
# the architectures it serves, so the two releases are served from two roots
# and a publication of either cannot disturb the other.
printf '%s\n' \
    "deb [arch=arm64 signed-by=/etc/apt/keyrings/neuracore.asc] $SITE/apt-arm64 stable main" \
    > /etc/apt/sources.list.d/neuracore.list

apt-get update
apt-get install -y neuracore

say ""
say "NeuraCore is installed. Start it from your applications menu, or run: neuracore"
say "It will upgrade with the rest of your system from now on."
say "The signing key this repository is verified against is $KEY_FINGERPRINT."

ファイルそのもの: /install-raspberry.sh