Un comando, qualunque sistema
Installare NeuraCore
NeuraCore si installa tramite il gestore di software che il tuo computer usa già, quindi si aggiorna insieme a tutto il resto. Scegli il tuo sistema qui sotto e copia la riga in un terminale.
Versione attuale: 1.0.0
Prima di installare: che cos'è NeuraCore
Questo software non è fornito né supportato da Linden Lab, i creatori di Second Life. NeuraCore è un visualizzatore di terze parti indipendente. Non è affiliato a Linden Lab, non è approvato da Linden Lab e non è un prodotto ufficiale. Second Life e Linden Lab sono marchi di Linden Research, Inc.
Cose da sapere prima di installare
- NeuraCore non disegna il mondo in 3D. È un client di controllo senza rendering: chat, inventario, aspetto, movimento e mappa, senza la vista renderizzata del visualizzatore di Linden Lab.
- Può agire da solo. Un motore di automazione, un interprete Python integrato e un controller IA facoltativo possono eseguire per il tuo avatar le azioni che abiliti, il che rende quell'avatar un agente con script secondo le regole di Linden Lab. Dichiararlo dove quelle regole lo richiedono spetta a te.
- È software su licenza, non software libero. La licenza si acquista in world ed è legata a un avatar; al servizio di licenza viene comunicato quali avatar sono collegati, per poterla applicare.
- Si collega a Second Life e alle griglie OpenSimulator, e a ciascuna si identifica come NeuraCore.
Assistenza
L'assistenza per NeuraCore arriva dal portale di supporto NeuraCore e dall'HUD gratuito NeuraCore Support in world. Linden Lab non la fornisce e non può diagnosticare NeuraCore. Per un problema di account, pagamento o piattaforma di Second Life, rivolgiti al supporto di Linden Lab.
Riservatezza
Che cosa NeuraCore raccoglie, conserva e invia è scritto per intero nell'informativa sulla riservatezza, che è anche la liberatoria che ti viene chiesto di accettare al primo avvio.
LinuxDebian · Ubuntu · Mint · Fedora · Arch · Garuda · Manjaro
Per prima cosa, apri un terminale
- Premi Ctrl+Alt+T. Sulla maggior parte dei desktop ne apre uno subito.
- Se non succede nulla, apri il menu delle applicazioni e cerca «Terminale», su KDE si chiama Konsole, su GNOME Terminale o Console.
- Compare una finestra con un prompt di testo. È lì che va la riga qui sotto: incollala e premi Invio.
Ti serve anche curl
Il comando qui sotto usa un piccolo programma chiamato curl per scaricare l’installatore. La maggior parte dei sistemi desktop ce l’ha già; una Debian appena installata spesso no. Verifica scrivendo curl --version, se risponde «command not found», installalo prima:
Debian, Ubuntu, Mint
sudo apt install curlFedora, RHEL
sudo dnf install curlArch, Garuda, Manjaro
sudo pacman -S curlSe preferisci non installare curl, wget fa la stessa cosa ed è presente più spesso:
wget -qO- https://download.neuracore.ch/install.sh | sudo shQuesto aggiunge il repository software di NeuraCore e la sua chiave di firma, poi installa NeuraCore. Il comando capisce da solo se il tuo sistema usa apt, dnf o pacman.
curl -fsSL https://download.neuracore.ch/install.sh | sudo sh- Dopo, NeuraCore è un pacchetto qualunque. Si aggiorna quando si aggiorna il resto del sistema.
- Il pacchetto porta con sé la propria copia di Python, quindi non importa quale versione fornisca la tua distribuzione.
- Si installa in /opt/neuracore e mette un avviatore nel tuo PATH, perciò non può disturbare nulla di ciò che la distribuzione ha installato.
Preferisco eseguire i passaggi da solo
Il comando su una riga esegue esattamente questi passaggi. Eseguili tu stesso se preferisci non inviare uno script a una shell: è una preferenza ragionevole, ed ecco che cosa fa lo script.
Debian, Ubuntu e Mint: aggiungere la chiave, aggiungere il repository, installare:
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 neuracoreFedora, RHEL, Alma e 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 neuracoreArch, Garuda, Manjaro ed EndeavourOS: l'impronta è indicata nella pagina della chiave collegata qui sotto:
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 neuracoreChe cosa serve
- Un sistema x86 a 64 bit (quello di quasi tutti i computer fissi e portatili). Un Raspberry Pi, o qualsiasi altra macchina ARM a 64 bit, ha una scheda tutta sua in questa pagina.
- Una distribuzione uscita nel 2024 o dopo: Debian 13, Ubuntu 24.04, Fedora 41, oppure un Arch, Garuda o Manjaro aggiornato. Le versioni precedenti hanno una libreria di sistema troppo vecchia per questa compilazione.
- Un ambiente desktop grafico. NeuraCore non ha una vista 3D, ma è un'applicazione a finestre.
- Circa 200 MB di spazio su disco.
- Accesso root, una volta sola, per aggiungere il repository.
Pubblicato per questo sistema: 1.0.0
Raspberry PiRaspberry Pi OS 64-bit · Ubuntu · Pi 4 · Pi 5 · Pi 400 · Pi 500 · Pi Zero 2 W
Per prima cosa, apri un terminale
- Premi Ctrl+Alt+T sul desktop del Raspberry Pi. Ne apre uno subito.
- Se non succede nulla, apri il menu Raspberry in alto a sinistra, poi Accessori, poi Terminale.
- Compare una finestra con un prompt testuale. È lì che va la riga qui sotto: incollala e premi Invio.
Controlla prima che sia il sistema a 64 bit
NeuraCore è pubblicato solo per il Raspberry Pi OS a 64 bit. Scrivi uname -m: aarch64 vuol dire che sei pronto, armv7l o armv6l che sei sul sistema a 32 bit, che resta il download predefinito per le schede più vecchie. Reinstalla con Raspberry Pi Imager scegliendo l’edizione a 64 bit, su un Pi 4, 5, 400, 500 o Zero 2 W. Serve anche curl, che Raspberry Pi OS installa di serie.
Controllare l’architettura
uname -mInstallare curl se manca
sudo apt install curlSe preferisci non installare curl, wget fa la stessa cosa:
wget -qO- https://download.neuracore.ch/install-raspberry.sh | sudo shQuesto aggiunge il repository software di NeuraCore per ARM a 64 bit e la sua chiave di firma, poi installa NeuraCore. È un repository separato da quello dei computer desktop, quindi offre sempre la versione che gira su questa scheda.
curl -fsSL https://download.neuracore.ch/install-raspberry.sh | sudo sh- Dopo NeuraCore è un pacchetto ordinario. sudo apt update && sudo apt upgrade lo tiene aggiornato insieme al resto del sistema.
- Il pacchetto porta con sé la propria copia di Python, quindi la versione fornita da Raspberry Pi OS non conta.
- Si installa in /opt/neuracore e mette un avviatore nel tuo PATH, quindi non può disturbare nulla di quanto ha installato Raspberry Pi OS.
- Anche un Pi senza schermo può eseguirlo: neuracore --headless lo avvia senza alcuna finestra, ed è questo che lo rende utile su una scheda nascosta dietro un router.
Preferisco eseguire i passaggi da solo
Il comando su una riga esegue esattamente questi passaggi. Eseguili tu stesso se preferisci non inviare uno script a una shell: è una preferenza ragionevole, ed ecco che cosa fa lo script.
Aggiungere la chiave, aggiungere il repository ARM, installare:
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 neuracoreChe cosa serve
- Un Raspberry Pi 4, 5, 400, 500 o Zero 2 W con il Raspberry Pi OS a 64 bit. Controlla con uname -m, che deve rispondere aarch64.
- Raspberry Pi OS Bookworm o successivo, oppure Ubuntu 22.04 o successivo per il Raspberry Pi.
- Il desktop del Raspberry Pi, o niente affatto se lo esegui con --headless. NeuraCore non disegna alcun mondo 3D e non chiede nulla all’hardware grafico.
- Circa 200 MB di spazio sulla scheda o sul disco, e 4 GB di memoria stanno comodi.
- Accesso root, una volta sola, per aggiungere il repository.
Pubblicato per questo sistema: 1.0.0
WindowsWindows 10 · Windows 11
Per prima cosa, apri un terminale
- Fai clic destro sul pulsante Start e scegli Terminale. Su Windows 10 si chiama Windows PowerShell.
- Oppure premi il tasto Windows, scrivi «terminale» e premi Invio.
- Compare una finestra con un prompt di testo. Incolla la riga qui sotto e premi Invio.
Questo comando PowerShell scarica ed esegue il nostro script di installazione. Installa NeuraCore in Program Files e crea collegamenti nel menu Start e sul desktop:
irm https://download.neuracore.ch/install.ps1 | iex- Eseguilo in PowerShell o Terminale Windows. Se sono richiesti i permessi di amministratore, Windows richiederà l'elevazione.
- Installa NeuraCore in Program Files e crea collegamenti nel menu Start e sul desktop.
- Per aggiornare in seguito, esegui nuovamente lo stesso comando.
Download diretto (.zip)
Se preferisci un'installazione manuale senza eseguire uno script, scarica direttamente l'archivio zip portatile:
- Estrai l'archivio zip in qualsiasi cartella, ad esempio Program Files.
- Avvia NeuraCore.exe per eseguire l'applicazione.
- Se lo desideri, crea manualmente un collegamento sul desktop o nel menu Start.
Che cosa serve
- Windows 10 versione 1809 o successiva, oppure Windows 11, a 64 bit.
- Windows PowerShell o Terminale Windows (inclusi in Windows).
- Circa 200 MB di spazio su disco.
- Permessi di amministratore quando richiesti per l'installazione in Program Files.
Pubblicato per questo sistema: 1.0.0
macOSApple silicon · Intel
Per prima cosa, apri un terminale
- Premi Cmd+Spazio, scrivi «terminale» e premi Invio.
- Oppure apri il Finder, poi Applicazioni, poi Utility, poi Terminale.
- Compare una finestra con un prompt di testo. Incolla la riga qui sotto e premi Invio.
Questo comando scarica ed esegue il nostro script di installazione. Installa NeuraCore nella cartella Applicazioni e crea un collegamento per il terminale:
curl -fsSL https://download.neuracore.ch/install.sh | sudo sh- Eseguilo nel Terminale. Se sono richiesti i privilegi di amministratore, macOS chiederà la password.
- Aggiorna in seguito eseguendo nuovamente lo stesso comando.
- NeuraCore è firmato ad hoc ma non è ancora notarizzato da Apple, quindi macOS lo mette in quarantena e rifiuta di aprirlo. L'installatore toglie quel contrassegno da /Applications/NeuraCore.app subito dopo l'installazione. Se macOS rifiuta ancora, eseguilo tu: xattr -dr com.apple.quarantine /Applications/NeuraCore.app
Che cosa serve
- macOS 13 (Ventura) o successivo.
- Circa 200 MB di spazio su disco.
- Permessi di amministratore quando richiesti per l'installazione in Applicazioni.
Pubblicato per questo sistema: 1.0.0
Tenere NeuraCore aggiornato
NeuraCore non si sostituisce mai da solo. Viene aggiornato tramite il gestore di pacchetti o eseguendo nuovamente lo script di installazione.
Debian, Ubuntu, Mint, Raspberry Pi OS
sudo apt update && sudo apt upgradeFedora, RHEL
sudo dnf upgradeArch, Garuda, Manjaro
sudo pacman -SyuWindows
irm https://download.neuracore.ch/install.ps1 | iexmacOS
curl -fsSL https://download.neuracore.ch/install.sh | sudo shQuando esiste una versione più recente, NeuraCore lo dice nella barra di stato. Facendo clic su quel messaggio si apre una finestra con il comando esatto per il computer che stai usando.
Rimuovere NeuraCore
NeuraCore può essere rimosso completamente con un solo comando. Non resta nulla in esecuzione e nient'altro sulla macchina viene toccato.
Debian, Ubuntu, Mint, Raspberry Pi OS
sudo apt remove neuracoreFedora, RHEL
sudo dnf remove neuracoreArch, Garuda, Manjaro
sudo pacman -R neuracoreWindows
Remove-Item -Recurse -Force "$env:ProgramFiles\NeuraCore"macOS
sudo rm -rf /Applications/NeuraCore.app /usr/local/bin/neuracoreI tuoi file vengono lasciati intenzionalmente: la cartella NeuraCore nella tua cartella home contiene i tuoi avatar, le impostazioni e le password cifrate, e rimuovere il programma non li elimina. Elimina quella cartella da te se non vuoi lasciare nulla. Su Linux puoi anche rimuovere il repository software aggiunto dall'installatore, in /etc/apt/sources.list.d, /etc/yum.repos.d o /etc/pacman.conf.
Verificare che sia autentico
Ogni pacchetto NeuraCore è firmato, e il tuo gestore di software verifica quella firma prima di installare qualsiasi cosa. Se un pacchetto venisse alterato tra questo sito e il tuo computer, l'installazione si fermerebbe.
La metà pubblica della chiave di firma è pubblicata qui. Il tuo sistema la importa come parte del comando di installazione; non devi mai maneggiarla tu, ed è disponibile perché tu possa farlo.
Vedi la chiave di firma
-----BEGIN PGP PUBLIC KEY BLOCK-----
xsFNBGqVbAABEAC6jXS90PnvT4jlcOBssfaKJlLiONN4KP2zL2S68IeONuYuXj2K
MA2y+Pe3QRGqIoUMe8+txFHyACzKLM44x+j0M89+pC+lb9F852Fsl6L3m8Jut231
Q6a7BV+P92CXRcwYsdy7vBlLWD7h9qeLFi8HNYiiF0F9R2280EXsBn3iFlz5PV66
IFmLELSmQHJWk10cCaityXvgd05kZkmtdL/JURIaV9VHij3O0oXRSue1pamUgVnp
J9EyU+vMssF9Gst1yU7iJmQnVh9kmplVjiVk46E9rDr/36qxMIjppvJ5H8qlfh/X
mNKdvqbBxXG0Cgwv/bq++7hV5ieBP80NwS9V1uA6cO+xY6QUHs/Q9xIddUoUUCZS
qLmEdWbCSV2wooVWnGuBBoASJBArLBhz/wWb8vzbSLJlXyG3QxTz2jK5ZeEmMVfY
qqbMO/vo68A9lXG/SsifM5gDyBYgsWcA+EyFXaBRNdySpoNUmlRuG5ytjUEsTAAD
eT4W4UHjfRfcPi4BZFdn+dkmssSK0hGNlJrTI6+jt0gtkKhZUOJlBZXGnADIxheD
AgALu2o2ervFsCgoqKnh7KV4QxsJMdZlxBy4PU1kUynhVU9YiKrEqtObehlkFklK
SyZXGn7F+dL+UwoHMQ1vlSmtqVCQB0Zeed141ZDbKBPmLbIqWC03hQUq6wARAQAB
zTBOZXVyYUNvcmUgUGFja2FnZXMgPGhlbGxvK3BhY2thZ2VzQG5ldXJhY29yZS5j
aD7CwYQEEwEIAC4FAmqVbCUWIQSF2NazbuetCJIulEBUAe0EyL4CqAIbAQIeAQEL
ARUBFgEnAhkBAAoJEFQB7QTIvgKoS7oQALViQvdSno73t50vh7l+W/IPtOUrNVsC
AClGKypf/LXKLWfDXO3tQC2/Ctz/FFcq7tDU2TwsZ7M4r61Ig0QcKq9Pq2PE8qEJ
REAWWhvn3lP91VHyJrSkwHcph7IwoEcuCjl60O2KAfull8AS60L48n5P2kAwLOrX
X8XYKkTHWJ4tfwSn+aMgRbdskagGTwOKDhtKtnypP5+Hx8xdVXFNxsMvXqQJlBvo
e21YRIJLQLGRGd3e9L4poLrl+nu90L6bUgWC86I3c/Zl3U3D63hzNfCjHNZSwZNc
0GWP2K6CSLsaFNChVnZ8OLOGF4X/T5RmABisY1QK6hhOPRXabcyZFn6e3AdAkKlQ
HR+Q2+po611MlzjT4EVPbOirn8zhJgGFmhYWsdY/WNcTQc8Oot4bYmrA0QjZ0rpL
qNbA1x4KJLWqA77rxFzA36qEQToFBFnKdTMMcFNQvzKuj116QOQBywSLgeWr34bW
NeB/9SCQOYnXk3lX++cgCb1llxjzhVUKyhvLDD8f2BZfZVn014p+fZXyQuop6thj
yPtazfnMwOz2GngfvUE3rQDf6W1F6jylGFXvLfxQVE6jr+ENArXYbfNHiDi3YZcS
FybgKwFAtAY2VT7ZRNe5849jqpdfpyjU0o+f351z3XaIMETOOPJirzZMUr7JJtn+
4qyHDfEPSBHLzsFNBGqVbAABEADQ/rD7/MReQHEH7teCSD7GtqDIxO54bm56ZjXY
sYCTx3i8yCUxiGil+0En9kue/aFtWnIZ4Bztmyb+qZmCXC/QYFg9Pk5UHfL7UFCX
4M8cus27EmOe1bzCVkamGVBslgHtCO6ILd05dWaFMWQ+JhySrRK/56q3TqM97q7O
Tv5bFuDlxfcSs0Mbyy+ByGWBEh+AEO7Hhp8qtYD4rUCZrdrdUqXEmYbclAT7bB+9
r3D7Ucks2fVfv8D/vxEgTNO/R2gFsmPvqMLl0BBzIsU0ee2J6wDUFGIu1J3VX6og
DNKAbmxTzfLfX2mZ+xdqMLbEXp+oiRsObtnAizn1AXYjufncJf1QLujP7MyQV9dK
pfJX82X3CtxpqYW1zdbOvzhsS5ibLHnJ02YLptGW4BMXhtiQoeNHY4R6WZj27u0n
ftuBqrrFzsgxrEhlyBpNkNj/L5BoanwXwX4MBlBFiJMnhiH/uHHKenjxIN9lZ2zO
dyVjVN41vbccp7z60lxhgVOdK3ASE2rtiPCehl0cyL1y+YTNTQ6z40rHs4ZhYCgg
yVw0dHG+D1+Sj92vEmm8q/cRM5V0+MdnlEOQhYq58bgTMHLXibk9oigv5nmPvHCw
zgA5XnpUVTZ2+LHtbsFnccRkp6cbaPK/CGVsRUAO5UoVEP4URXDXqf+prEM5DD48
W0NyawARAQABwsOsBBgBCAJWBQJqlWwmAhsCFiEEhdjWs27nrQiSLpRAVAHtBMi+
AqjBdCAEGQEIAB0FAmqVbCUWIQQiJPyK7ya+BpZPVDcVGFtjGFpCBwAKCRAVGFtj
GFpCB5XhEACNulRSbi1Va8StHGmGzaph2KG/2ItjzZuSEs4t6oSKcGakFGW/mAzq
odJfUtjEH9g4NxapUWKhjxt/B8c5VpEYLr0YPcCXoZQmuNyhd0PoKy4hDxmSs9oR
szjgEGb7LA6Y9njVjRR9xk0BNb2Erf8SCRON24kZwEDDxEw97OZr/D6/doYqh3kg
U7zZ+TBTRUjjWMm+bJYsnFj4iwCbdh86d3ZEe9XxBzX7teMyhfph7vU7N7U/FLcu
48KfEdJ46L9MYfmWZ2PW5nxpX5utV1+2l8qjvp5YtRqGuEYNnrMh3Xx9EtA4K8mw
hnmlL9LDNyL8jdlQh5opCRD0djA65QdVVs1Fh/82dVh3gqHeHfzQhGTbf5DTCf/k
ehuWr4klWg/IeJmjOtSpGaXfQQ5ekltUBvnIHgCTWZjG9VdUfdDI8Y4P+0ijdyNn
owkmtkyquJmuzAZiZU6fGebUNgjgMzAF8YsqqgAcFug8mqncoUmZDHIS5McJtfDs
SJgMLcZZQJ9tqxNssy1VUksIkyz8yz51YTPy6toVSDdAWqSTGl4CchFgSICaAhHu
cyho8AWZugtiDUC7PhCKIxjqpQvHhHbQZD2EJtRw9yZpqiqS00Wy8BfzhgZmt5VH
YsNE4dE/OM94KtlpLz/fp84ZidAWL5PKH6B6/evBZ8pW2FAy6ua4SgAKCRBUAe0E
yL4CqJ5yEACJK/1Z85mwCgcqfNBmsGze2MFpVPc/2vXqZ3mS0+YsFCZT1wcX+iZJ
V1K7ILUlaR6SHSO1zWyHp4WmgrvfDlEj+h71fFQ3wZ31N+rvhdc7YtHBSxOIrRKW
IEiJyriduAJqzPrW7q5Mq4sQb+N8lh85vdTscJvNYAAjQQ2caBBl22WqeqskPRXP
uvcscXPc6Lm0gah+EHdfG9T6XXLlErv1Ih10VmJRJlbhCfnPkXKKOFAWjaqNDuNe
larVsSDxiN5IICgvzpiKv1RCkKDdt+LJHMW5Nw4gC47QC5/OLKs6v66FfUF/2O5F
E7fmAXfW5SaFc0Wa+jBs/Hc0WE/eqfy+VZupmlXlRMMhQyQ/Hy5cFhRkFmFNQAMv
SKV2hfUcv6k84cq+3kpB+NMsWcppG1JHbbclKRnwO25+flNjySZ4xJfXuoyl9EHJ
/XC1xI26jF5m8R/3pi5h1s9dLjIgKPUMcUdfBcGlOLyVR384rsjp+WdXD6GqnLBY
fG7Qf7YHPl/iMMQwuTM0LUnoakwdvQ3rG8wrlbPaAEWDS1EvQl1TBHM1RyzSOmqa
Mc0SVeGwZ4pOifXxmg8dJ530mQbhn7Wo2QoIWSoZ7y9UTkoo2qL6INf84ePZg/Li
EKVuJKQwI/J6kcUXZR5GF2HECf/ai6Yu06gBuJ8wIhERSptmKybLJw==
=oCLH
-----END PGP PUBLIC KEY BLOCK-----
Il comando su una riga scarica uno script e lo esegue. Merita di essere letto prima di essere eseguito: perciò è un file semplice e leggibile, con un commento a ogni passaggio.
Leggi lo script di installazione
#!/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."
Il Raspberry Pi si installa con uno script tutto suo, perché aggiunge un repository diverso e controlla che il sistema sia quello a 64 bit. È qui per intero per la stessa ragione.
Leggi lo script di installazione per 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."