Aller aux instructions
NeuraCoreTéléchargement

Une commande, n'importe quel système

Installer NeuraCore

NeuraCore s'installe par le gestionnaire de logiciels que votre ordinateur utilise déjà : il se met donc à jour en même temps que le reste. Choisissez votre système ci-dessous et copiez la ligne dans un terminal.

Version actuelle : 1.0.0

Avant d'installer : ce qu'est NeuraCore

Ce logiciel n'est ni fourni ni pris en charge par Linden Lab, les créateurs de Second Life. NeuraCore est une visionneuse tierce indépendante. Elle n'est ni affiliée à Linden Lab, ni approuvée par lui, ni un produit officiel. Second Life et Linden Lab sont des marques de Linden Research, Inc.

À savoir avant d'installer

  • NeuraCore n'affiche pas le monde en 3D. C'est un client de contrôle sans rendu : chat, inventaire, apparence, déplacements et carte, sans la vue rendue que donne la visionneuse de Linden Lab.
  • Elle peut agir seule. Un moteur d'automatisation, un interpréteur Python intégré et un contrôleur IA facultatif peuvent effectuer pour votre avatar les actions que vous autorisez, ce qui fait de cet avatar un agent scripté au sens des règles de Linden Lab. Il vous revient de le déclarer là où ces règles l'exigent.
  • C'est un logiciel sous licence, pas un logiciel libre. Une licence s'achète en monde et est liée à un avatar ; le service de licence est informé des avatars connectés afin de la faire respecter.
  • Elle se connecte à Second Life et aux grilles OpenSimulator, et s'identifie auprès de chacune sous le nom NeuraCore.

Assistance

L'assistance NeuraCore passe par le portail de support NeuraCore et le HUD gratuit NeuraCore Support en monde. Linden Lab ne la fournit pas et ne peut pas diagnostiquer NeuraCore. Pour un problème de compte, de paiement ou de plateforme Second Life, adressez-vous au support de Linden Lab.

Confidentialité

Ce que NeuraCore collecte, conserve et envoie est décrit intégralement dans l'avis de confidentialité, qui est aussi la clause de non-responsabilité que l'on vous demande d'accepter au premier lancement.

Lire l'avis de confidentialité

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

D’abord, ouvrez un terminal

  1. Appuyez sur Ctrl+Alt+T. Sur la plupart des bureaux, cela en ouvre un directement.
  2. Si rien ne se passe, ouvrez le menu des applications et cherchez « Terminal », sous KDE il s’appelle Konsole, sous GNOME Terminal ou Console.
  3. Une fenêtre avec une invite de texte apparaît. C’est là que va la ligne ci-dessous : collez-la et appuyez sur Entrée.

Il vous faut aussi curl

La commande ci-dessous utilise un petit programme appelé curl pour télécharger l’installateur. La plupart des systèmes de bureau l’ont déjà ; une Debian fraîchement installée souvent pas. Vérifiez en tapant curl --version, si la réponse est « command not found », installez-le d’abord :

Debian, Ubuntu, Mint

sudo apt install curl

Fedora, RHEL

sudo dnf install curl

Arch, Garuda, Manjaro

sudo pacman -S curl

Si vous préférez ne pas installer curl, wget fait la même chose et est présent plus souvent :

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

Ceci ajoute le dépôt de logiciels NeuraCore et sa clé de signature, puis installe NeuraCore. La commande détermine si votre système utilise apt, dnf ou pacman et fait ce qu'il faut.

curl -fsSL https://download.neuracore.ch/install.sh | sudo sh
  • Ensuite, NeuraCore est un paquet ordinaire. Il se met à jour en même temps que le reste de votre système.
  • Le paquet apporte sa propre copie de Python : la version fournie par votre distribution n'a donc aucune importance.
  • Il s'installe dans /opt/neuracore et place un lanceur dans votre PATH ; il ne peut donc rien perturber de ce que votre distribution a installé.
Je préfère exécuter les étapes moi-même

La commande en une ligne fait exactement ces étapes. Exécutez-les vous-même si vous préférez ne pas envoyer un script dans un interpréteur, préférence tout à fait raisonnable, et voici ce que fait le script.

Debian, Ubuntu et Mint, ajouter la clé, ajouter le dépôt, installer :

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 et 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 et EndeavourOS, l'empreinte est indiquée sur la page de la clé, en lien ci-dessous :

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

Ce qu'il vous faut

  • Un système x86 64 bits (celui de presque tous les ordinateurs de bureau et portables). Un Raspberry Pi, ou toute autre machine ARM 64 bits, a sa propre carte sur cette page.
  • Une distribution parue en 2024 ou après : Debian 13, Ubuntu 24.04, Fedora 41, ou tout Arch, Garuda ou Manjaro à jour. Les versions plus anciennes ont une bibliothèque système trop ancienne pour cette compilation.
  • Un bureau graphique. NeuraCore n'a pas de vue 3D, mais c'est une application fenêtrée.
  • Environ 200 Mo d'espace disque.
  • Un accès root, une seule fois, pour ajouter le dépôt.

Publié pour ce système : 1.0.0

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

D’abord, ouvrez un terminal

  1. Appuyez sur Ctrl+Alt+T sur le bureau du Raspberry Pi. Cela en ouvre un directement.
  2. Si rien ne se passe, ouvrez le menu Raspberry en haut à gauche, puis Accessoires, puis Terminal.
  3. Une fenêtre avec une invite de texte apparaît. C’est là que va la ligne ci-dessous : collez-la et appuyez sur Entrée.

Vérifiez d’abord qu’il s’agit du système 64 bits

NeuraCore n’est publié que pour le Raspberry Pi OS 64 bits. Tapez uname -m : aarch64 signifie que tout est prêt, armv7l ou armv6l que vous êtes sur le système 32 bits, qui reste le téléchargement par défaut des cartes plus anciennes. Réinstallez avec Raspberry Pi Imager en choisissant l’édition 64 bits, sur un Pi 4, 5, 400, 500 ou Zero 2 W. Il vous faut aussi curl, que Raspberry Pi OS installe par défaut.

Vérifier l’architecture

uname -m

Installer curl s’il manque

sudo apt install curl

Si vous préférez ne pas installer curl, wget fait la même chose :

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

Ceci ajoute le dépôt de logiciels NeuraCore pour ARM 64 bits et sa clé de signature, puis installe NeuraCore. C’est un dépôt distinct de celui des ordinateurs de bureau, il propose donc toujours la version qui fonctionne sur cette carte.

curl -fsSL https://download.neuracore.ch/install-raspberry.sh | sudo sh
  • Ensuite, NeuraCore est un paquet ordinaire. sudo apt update && sudo apt upgrade le met à jour en même temps que le reste du système.
  • Le paquet apporte sa propre copie de Python : la version fournie par Raspberry Pi OS n’a donc aucune importance.
  • Il s’installe dans /opt/neuracore et place un lanceur dans votre PATH ; il ne peut donc rien perturber de ce que Raspberry Pi OS a installé.
  • Un Pi sans écran peut aussi l’exécuter : neuracore --headless le démarre sans aucune fenêtre, ce qui le rend utile sur une carte posée derrière un routeur.
Je préfère exécuter les étapes moi-même

La commande en une ligne fait exactement ces étapes. Exécutez-les vous-même si vous préférez ne pas envoyer un script dans un interpréteur, préférence tout à fait raisonnable, et voici ce que fait le script.

Ajouter la clé, ajouter le dépôt ARM, installer :

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

Ce qu'il vous faut

  • Un Raspberry Pi 4, 5, 400, 500 ou Zero 2 W sous Raspberry Pi OS 64 bits. Vérifiez avec uname -m, qui doit répondre aarch64.
  • Raspberry Pi OS Bookworm ou plus récent, ou Ubuntu 22.04 ou plus récent pour le Raspberry Pi.
  • Le bureau du Raspberry Pi, ou rien du tout si vous l’exécutez avec --headless. NeuraCore ne dessine aucun monde 3D et ne demande donc rien au matériel graphique.
  • Environ 200 Mo d’espace sur la carte ou le disque, et 4 Go de mémoire pour être à l’aise.
  • Un accès root, une seule fois, pour ajouter le dépôt.

Publié pour ce système : 1.0.0

WindowsWindows 10 · Windows 11

D’abord, ouvrez un terminal

  1. Faites un clic droit sur le bouton Démarrer et choisissez Terminal. Sous Windows 10, il s’appelle Windows PowerShell.
  2. Ou appuyez sur la touche Windows, tapez « terminal » et appuyez sur Entrée.
  3. Une fenêtre avec une invite de texte apparaît. Collez la ligne ci-dessous et appuyez sur Entrée.

Cette commande PowerShell télécharge et exécute notre script d'installation. Elle installe NeuraCore dans Program Files et crée des raccourcis dans le menu Démarrer et sur le bureau :

irm https://download.neuracore.ch/install.ps1 | iex
  • Exécutez-la dans PowerShell ou Terminal. Si les droits d'administrateur sont requis, Windows demande une élévation.
  • Elle installe NeuraCore dans Program Files et crée les raccourcis sur le bureau et le menu Démarrer.
  • Pour mettre à jour plus tard, réexécutez la même commande.

Téléchargement direct (.zip)

Si vous préférez une installation manuelle sans exécuter de script, téléchargez directement l'archive zip portable :

Télécharger NeuraCore pour Windows (v1.0.0)

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

  • Extrayez l'archive zip dans le dossier de votre choix, par exemple Program Files.
  • Lancez NeuraCore.exe pour démarrer l'application.
  • Créez manuellement un raccourci sur le bureau ou dans le menu Démarrer si vous le souhaitez.

Ce qu'il vous faut

  • Windows 10 version 1809 ou ultérieure, ou Windows 11, en 64 bits.
  • Windows PowerShell ou Windows Terminal (inclus avec Windows).
  • Environ 200 Mo d'espace disque.
  • Droits d'administrateur, lorsque demandés, pour installer dans Program Files.

Publié pour ce système : 1.0.0

macOSApple silicon · Intel

D'abord, ouvrez un terminal

  1. Appuyez sur Cmd+Espace, tapez « terminal » et appuyez sur Entrée.
  2. Ou ouvrez le Finder, puis Applications, puis Utilitaires, puis Terminal.
  3. Une fenêtre avec une invite de texte apparaît. Collez la ligne ci-dessous et appuyez sur Entrée.

Cette commande télécharge et exécute notre script d'installation. Elle installe NeuraCore dans votre dossier Applications et crée un raccourci pour le terminal :

curl -fsSL https://download.neuracore.ch/install.sh | sudo sh
  • Lancez-la dans le Terminal. Si les autorisations d'administrateur sont nécessaires, macOS vous demandera votre mot de passe.
  • Mettez à jour plus tard en relançant la même commande.
  • NeuraCore est signé ad hoc mais n'est pas encore notarisé par Apple, donc macOS le met en quarantaine et refuse de l'ouvrir. L'installateur retire cette marque de /Applications/NeuraCore.app juste après l'installation. Si macOS refuse encore, lancez-la vous-même : xattr -dr com.apple.quarantine /Applications/NeuraCore.app

Ce qu'il vous faut

  • macOS 13 (Ventura) ou ultérieur.
  • Environ 200 Mo d'espace disque.
  • Autorisation administrateur, lorsque demandée, pour installer dans Applications.

Publié pour ce système : 1.0.0

Garder NeuraCore à jour

NeuraCore ne se remplace jamais lui-même. Il est mis à jour par votre gestionnaire de paquets ou en relançant le script d'installation.

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

Lorsqu'une version plus récente existe, NeuraCore l'indique dans sa barre d'état. Un clic sur ce message ouvre une fenêtre donnant la commande exacte pour l'ordinateur que vous utilisez.

Désinstaller NeuraCore

NeuraCore peut être supprimé complètement en une seule commande. Rien ne continue de tourner et rien d'autre sur la machine n'est modifié.

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

Vos propres fichiers sont délibérément conservés : le dossier NeuraCore dans votre dossier personnel contient vos avatars, réglages et mots de passe chiffrés, et désinstaller le programme ne les supprime pas. Supprimez ce dossier vous-même si vous ne voulez rien laisser. Sous Linux, vous pouvez également supprimer le dépôt de paquets ajouté par l'installateur, dans /etc/apt/sources.list.d, /etc/yum.repos.d ou /etc/pacman.conf.

Vérifier l'authenticité

Chaque paquet NeuraCore est signé, et votre gestionnaire de logiciels vérifie cette signature avant d'installer quoi que ce soit. Si un paquet était modifié entre ce site et votre ordinateur, l'installation s'arrêterait.

La moitié publique de la clé de signature est publiée ici. Votre système l'importe dans le cadre de la commande d'installation ; vous n'avez jamais à la manipuler vous-même, et elle est disponible pour que vous le puissiez.

Voir la clé de signature
-----BEGIN PGP PUBLIC KEY BLOCK-----

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

Le fichier lui-même : /neuracore.asc

La commande en une ligne télécharge un script et l'exécute. Cela mérite d'être lu avant son exécution : c'est un fichier simple et lisible, avec des commentaires expliquant chaque étape.

Lire le script d'installation
#!/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."

Le fichier lui-même : /install.sh

Le Raspberry Pi s’installe avec un script qui lui est propre, parce qu’il ajoute un dépôt différent et vérifie que le système est bien le 64 bits. Il est ici intégralement, pour la même raison.

Lire le script d’installation 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."

Le fichier lui-même : /install-raspberry.sh