Plex su NAS Synology: aggiornamento automatico (DS 216j)

| |

E invece mi sbagliavo. Per una volta che ho voluto dare “fiducia in anticipo” a uno script Bash che – almeno a leggerlo – avrebbe dovuto fare il suo sporco lavoro, ho fallito. In realtà ha fallito lui, ma ho fallito io nel consigliarlo e dire “ehi vai tranqui zio, sono certo che funzionerà“.
Sì perché l’aggiornamento di Plex è uscito, e stanotte (a ora che sto scrivendo) il mio NAS ha tentato di installare la versione più aggiornata del software senza però riuscirci. La colpa pare essere dell’architettura del DS216j, che fa sì parte della schiera NAS su DSM 7 basata su processori ARM, ma con quella particolarità del ramo “neon” e non “hf“, la stessa di cui fanno parte (direttamente preso dal sito di Plex) ARMv7 (x15 Series (excluding DS115j and RS815), x16 Series (excluding DS216se), x17 Series, x18 Series, and DS414j)“.

Hey, cowboy, help me!

Lo script che ti ho consigliato in origine tirava fuori l’architettura della macchina basandosi banalmente sul classico comando uname -m di Linux, il tutto però senza andare più nello specifico, cosa che invece fa nativamente lo script di cowboy che ti avevo consigliato come alternativa nell’altro articolo, quello che trovi all’indirizzo github.com/cowboy/synology-update-plex, dovrai solo scaricarlo e renderlo eseguibile, quindi:

wget https://raw.githubusercontent.com/cowboy/synology-update-plex/master/update-plex.sh
chmod +x update-plex.sh

L’unica pecca era dovuta alla mancanza della voce specifica di mappatura tra modello e architettura del processore adatta a cercare il download corretto tra quelli disponibili sul sito ufficiale di Plex.
Eseguendolo, infatti, andavo direttamente incontro a un errore che non permetteva di fare alcunché:

ash-4.4# ./update-plex.sh 
Checking for a Plex Media Server update...

[ Initializing notification system ]
Notifications disabled (file /var/cache/texts/ita/mails not found)

[ Retrieving DSM version ]
Found DSM version 7

[ Retrieving version data ]
Available version: 1.29.2.6364-6d72b0cf6
Installed version: 1.29.1.6316-7000

New version available!

[ Finding release ]
FAIL: Unable to find release for DS216j-j/armv7l/armv7hfneon

Done, with errors

C’è una funzione precisa dello script che si occupa proprio di individuare l’architettura di sistema e permettere così il download del file SPK adatto, questo:

function get_arch() {
  local arch machine=$1 hw_version=$2
  if [[ "$machine" =~ armv7 ]]; then
    declare -A model_machine_map
    model_machine_map[DS414j]=armv7hf_neon
    model_machine_map[DS115j]=armv7hf
    model_machine_map[RS815]=armv7hf
    model_machine_map[DS216se]=armv7hf
    model_machine_map[DS215jv10-j]=armv7hf_neon
    if [[ "${model_machine_map[$hw_version]+_}" ]]; then
      arch=${model_machine_map[$hw_version]}
    elif [[ "${hw_version//[^0-9]/}" =~ 1[5-8]$ ]]; then
      arch=armv7hf_neon
    else
      arch=armv7hf
    fi
  elif [[ "$machine" =~ i686 ]]; then
    arch=x86
  else
    arch=$machine
  fi
  echo $arch
}

Nel file JSON sul sito web di Plex, andando a filtrare ARMv7, si può notare come il gruppo di NAS Synology di cui parlavo a inizio articolo (ARMv7 (x15 Series (excluding DS115j and RS815), x16 Series (excluding DS216se), x17 Series, x18 Series, and DS414j)) abbiano un’architettura linux-armv7neon che poi è quello che fa la differenza.

Plex su NAS Synology: aggiornamento automatico (DS 216j) 2

Basterà quindi andare a inserire una nuova voce model_machine_map per raggiungere l’obiettivo: model_machine_map[DS216j-j]=armv7neon. Salvato ed eseguito nuovamente lo script, la magia può ora avvenire:

Plex è stato aggiornato correttamente!
Io nel frattempo ho proposto una modifica allo script originale per integrare anche la mia modifica, direttamente su GitHub: github.com/cowboy/synology-update-plex/pull/44; non resta che attendere (spero) il merge (anche se a vedere la data di ultimo aggiornamento del progetto …). Mal che vada terrò il mio fork e proverò a mantenerlo aggiornato :-)

Ora pianificalo

Ok, lo script modificato funziona, serve solo tornare nell’Utilità di Pianificazione Synology per modificare l’evento programmato che avevo già creato l’altra volta, basterà puntarlo allo script bash giusto:

Mi ripeto quindi: conoscendo la posizione del tuo script rispetto al volume dove si trovano i tuoi file e cartelle (nell’esempio, quindi nel mio caso, Volume1), ho chiesto di eseguire ogni domenica alle 2:00 del mattino lo script tramite bash (bash /volume1/Backup/Bash/update-plex.sh), inviando tutti i dettagli dell’esecuzione (l’output dello script) al mio indirizzo di posta elettronica, per dare un’occhiata a quello che ha combinato l’operazione pianificata :-) (puoi sempre chiedere all’Utilità di Pianificazione di scriverti solo in caso di errore o non scriverti affatto, è solo una tua scelta).

Il risultato? Questo:

Plex su NAS Synology: aggiornamento automatico (DS 216j) 1

Ok, ora posso ritenermi soddisfatto sul serio e scusarmi ancora una volta per non aver testato fino in fondo un metodo che poi si è rivelato non essere quello adatto a questo tipo di NAS / architettura. Se possiedi un differente modello di NAS Synology lo script originale che ti ho suggerito la scorsa volta potrebbe in realtà funzionare senza battere ciglio, ma almeno adesso conosci il metodo per usare un’alternativa e dichiarare nello specifico il tuo modello / architettura per evitare che il download e l’installazione di una nuova versione di Plex falliscano.

In caso di dubbi, usa pure l’area commenti per fare le tue domande su questo specifico articolo :-)

#StaySafe


immagine di copertina GR Stocks on Unsplash
Plex su NAS Synology: aggiornamento automatico (DS 216j) 6 GWall

Se hai correzioni o suggerimenti puoi lasciare un commento nell'apposita area qui di seguito o contattarmi privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! Puoi usare Satispay, PayPal, Buy Me A Coffee o Patreon :-)

Condividi l'articolo con i tuoi contatti:
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Commenti
Inline Feedbacks
View all comments