Plex Media Server unter Ubuntu automatisch updaten
Wer den Plex Media Server (PMS) unter OS X oder Windows betreibt, profitiert bereits seit Ende November 2014 von einer eingebauten Logik, welche automatisiert nach Plex-Updates sucht und diese auf Wunsch mit einem Klick installiert. Unter Ubuntu sieht das leider – zumindest derzeitig noch – anders aus. Updates müssen hier manuell von Hand installiert werden, was auf Dauer nervig sein kann, sofern man immer auf dem aktuellen Stand sein möchte. Mit etwas Einrichtungsaufwand per Terminal lässt sich diese praktische Update-Funktion jedoch auch unter Ubuntu nachrüsten, inklusive Update-Benachrichtigung via Push aufs iPhone. Wie das funktioniert und wie der Updatesprozess dabei komplett automatisiert werden kann, so dass keine weiteren manuellen Eingriffe mehr notwendig sind, wird in nachfolgendem Howto gezeigt.
Manuelle Updates
Die einfachste, auf Dauer gleichzeitig aber auch zeitraubendste Methode, ist der manuelle Update des Plex Media Servers per Terminal-Befehl. Dazu benötigt man erst einmal den passenden Download-Link, welcher unter https://plex.tv/downloads -> Linux -> Ubuntu -> 64-Bit zur Verfügung steht.
In nachfolgendem Beispiel lautet der Link zur aktuellen Public-Version (Stand 03.05.2015): https://downloads.plex.tv/plex-media-server/0.9.12.0.1071-7b11cfc/plexmediaserver_0.9.12.0.1071-7b11cfc_amd64.deb
Der Terminal-Befehl für die initiale Installation des Plex Media Servers und dessen spätere Updates ist unter Ubuntu identisch. Als erstes wird die aktuelle PMS-Version per wget heruntergeladen und das Installationsfile anschließend gestartet. Wie das funktioniert, zeigt nachfolgender Befehl, welcher lediglich der Veranschaulichung dient und für das weitere Vorgehen nicht notwendig ist.
Manuelles PMS-Update (und initiale Installation):
wget -P /tmp/ --no-check-certificate https://downloads.plex.tv/plex-media-server/0.9.12.0.1071-7b11cfc/plexmediaserver_0.9.12.0.1071-7b11cfc_amd64.deb && sudo dpkg -i /tmp/plexmediaserver_0.9.12.0.1071-7b11cfc_amd64.deb
Die bereits installierte PMS-Instanz wird dabei automatisch gestoppt und nach der Installation auch wieder gestartet. Dabei sind keine weiteren Befehle notwendig.
Wer den Plex Media Server dennoch einmal manuell stoppen möchte, macht dies mit dem Befehl
sudo service plexmediaserver stop
und starten ihn wieder mit
sudo service plexmediaserver start
Die manuelle Installation des Plex Media Servers kann natürlich auch dann Sinn machen, wenn – aus welchen Gründen auch immer – eine ältere PMS-Version installiert werden soll. Ältere Versionen samt notwendiger Downloadlinks stehen dabei im PMS-Download-Archiv zur Verfügung.
Automatische Updates
Auf Github wird unter https://github.com/mrworf/plexupdate von mrwolf ein fertiges Bash-Script namens „plexupdate.sh“ zur Verfügung gestellt, welches perfekt für das Autoupdate herangezogen werden kann. Es sucht nach der derzeitig installierten PMS-Version und stößt ein Update an, sofern eine neuere Version des Plex Media Servers zur Verfügung steht. Im Standard wird die Public-Version installiert, wer möchte kann jedoch aber auch die PlexPass-Version installieren lassen. Zu diesem Zweck müssen u.A. die persönlichen myplex-Zugangsdaten in das bash-Script eingetragen werden, was an dieser Stelle jedoch nicht weiter behandelt werden soll.
Damit das plexupdate-sh-Script ohne große Hürden über das Terminal installiert und regelmäßig (in diesem Fall einmal pro Tag um fünf Uhr morgens) ausgeführt werden kann, habe ich ein kleines Script namens plexupdateInstall.zip (1945 Downloads ) geschrieben, welches zum Download bereitsteht. Es lädt das „plexupdate.sh“-Script herunter und ergänzt einen Eintrag im Crontab, so dass das Script jeden morgen um fünf Uhr nach aktuellen PMS-Versionen sucht und dann etwaige Updates installiert. Das alles geschieht voll automatisch mit dem nachfolgenden Terminal-Befehl.
Automatische Updates aktivieren:
wget -q -P /tmp/ --no-check-certificate https://meintechblog.de/download/plexinstall/plexupdateInstall.zip && sudo unzip /tmp/plexupdateInstall.zip -d /tmp/ && sudo chmod +x /tmp/plexupdateInstall.sh && sudo /tmp/plexupdateInstall.sh
Die entsprechende Ausgabe im Terminal sollte wie folgt aussehen:
Sollte man noch kein unzip installiert haben, bekommt man den Fehler „sudo: unzip: command not found“ angezeigt und kann unzip mit dem Befehl „sudo apt-get install unzip“ nachinstallieren.
Das Update-Script arbeitet übrigens erst dann, sofern der Plex Media Server überhaupt auf dem System installiert ist. Wie das funktioniert, wird in obigem Schritt „Manuelles Update“ erklärt.
Ab sofort erfolgt täglich um fünf Uhr morgens ein Scan nach verfügbaren Updates, welche bei Verfügbarkeit automatisch installiert werden.
Um den Updateprozess manuell über das Terminal aufzurufen, um ihn zu testen, kann nachfolgender Terminal-Befehl genutzt werden.
Update-Script manuell starten:
sudo /opt/plexupdate/plexupdate.sh -a -p
Die Ausgabe sieht dabei so aus:
Möchte man das Ganze wieder vom System deinstallieren und keine automatischen Updates mehr durchführen, nutzt mein zweites Script namens plexupdateUninstall.zip (1421 Downloads ) , welches mit nachfolgendem Befehl heruntergeladen und ausgeführt wird.
Automatische Updates deaktivieren:
wget -q -P /tmp/ --no-check-certificate https://meintechblog.de/download/plexinstall/plexupdateUninstall.zip && sudo unzip /tmp/plexupdateUninstall.zip -d /tmp/ && sudo chmod +x /tmp/plexupdateUninstall.sh && sudo /tmp/plexupdateUninstall.sh
Die entsprechende Ausgabe im Terminal sollte wie folgt aussehen:
Jetzt sind alle Scripte wieder gelöscht und der Eintrag aus der Crontab entfernt.
Seht es mir bitte nach, dass die bereitgestellten Scripte sicherlich nicht perfekt sind, ich arbeite mich erst nach und nach in bash ein und entsprechend unbeholfen mag das auf erfahrene Programmierer auch wirken. Ich lerne immer gerne dazu, wer also Verbesserungsvorschläge beizutragen hat, kann diese gerne per Kommentar absetzen.
One more thing – Push-Mitteilungen bei Updates
Um das Ganze noch etwas abzurunden, wird eine Push-Mitteilung per Pushover an das Smartphone (und die Smart Watch, hier eine Apple Watch) gesendet, sobald der Plex Media Server aktualisiert wurde. Den Pushover-Dienst habe ich dabei schon einmal im Artikel Howto: Mit FHEM Push-Nachrichten aufs iPhone schicken (Update) vorgestellt.
Nachfolgender Code wird manuell per Texteditor in die Datei „/opt/plexupdate/plexupdate.sh“ direkt vor die abschließende Zeile „exit 0“ (ohne Anführungszeichen) eingetragen.
Um dies zu tun, kann bspw. nano genutzt werden:
sudo nano /opt/plexupdate/plexupdate.sh
Der Code für die „plexupdate.sh“ lautet:
PUSHOVER_USER="uxxxx" PUSHOVER_TOKEN="xxxxx" PUSHOVER_TITLE="PMS UPDATE" if [[ `echo -n $PUSHOVER_USER | wc -c` == 30 && `echo -n $PUSHOVER_TOKEN | wc -c` == 30 ]]; then FILENAME_VERSION=${FILENAME#*_} FILENAME_VERSION=${FILENAME_VERSION%_*} if [ "$FILENAME_VERSION" != "$INSTALLED_VERSION" ]; then curl -s -F "token=$PUSHOVER_TOKEN" -F "user=$PUSHOVER_USER" -F "title=$PUSHOVER_TITLE" -F "message=PMS $FILENAME_VERSION wurde installiert -bisher: PMS $INSTALLED_VERSION" https://api.pushover.net/1/messages.json else curl -s -F "token=$PUSHOVER_TOKEN" -F "user=$PUSHOVER_USER" -F "title=$PUSHOVER_TITLE" -F "message=PMS $FILENAME_VERSION wurde erneut installiert" https://api.pushover.net/1/messages.json fi fi
Dabei muss natürlich jeder seinen eigenen 30-stelligen PUSHOVER_USER (hier: uxxxx) und PUSHOVER_TOKEN (hier: xxxxx) ergänzen.
Ist der Code hinterlegt und mit „STRG + o“ gespeichert, kann nano wieder mit „STRG + x“ beendet werden und die Push-Benachrichtigung sollte ab sofort funktionieren.
Aus meinem täglichen Leben
Lange Zeit habe ich den Plex Media Server direkt als native QNAP-App auf meinem QNAP TS-670 Ultra und teilweise auch auf einem Intel NUC betrieben, womit ich insgesamt auch sehr zufrieden war. Leider gab es dabei einige Limitationen (z.B. Anfertigung und Zurückspielen von Backups recht unkomfortabel), so dass ich mich entschieden habe die QNAP „Virtualization Station“ zu nutzen, um zwei getrennte PMS-Server auf Basis von Ubuntu direkt auf meinem QNAP-NAS aufzusetzen. So kann ich stressfrei zwei separate PMS-Instanzen (u.A. inkl. PlexWatch und PlexWatchWeb) nutzen, welche teilweise mit dem selben Content (deutsch- und englischsprachige Audiostreams) gefüttert werden und die Bibliotheksinhalte dennoch durch abweichende Toneinstellungen (Option: „Tonspuren automatisch wählen“) je nach Server immer automatisch in der jeweils gewünschten Sprache wiedergegeben werden. Weiterhin können die virtuellen Maschinen mit nur einem Klick und innerhalb einiger Minuten über die „Snapshot“-Funktion gesichert und zurückgespielt werden.
Das zentrale Element, was mir bisher jedoch noch fehlte, um einen dauerhaft stressfreien Betrieb sicherzustellen, war die Möglichkeit eines automatischen Updates der PMS-Server auf den virtualisierten Ubuntu-Umgebungen. Da das Plex-Team regelmäßig PMS-Updates bereitstellt, die das System laufend verbessern, war das hier beschriebene automatische Update-Szenario eigentlich schon längst mehr als überfällig. Bisher laufen die Updates über die hier genutzten Scripte ohne Probleme, so dass ich hoffe, dass auch andere dauerhaft von diesen Erkenntnissen profitieren können.
6 Kommentare
Guten Tag
Erstmal vielen vielen Dank für dieses grandiose Skript und die gut gelungene Anleitung.
Ich habe dazu eine kleine Frage:
Ich habe meinen Plex Server auf meinem Raspberry Pi 2 unter Raspian laufen und deswegen müsste bei mir die ARM7 Version von PMS heruntergeladen werden und nicht die Ubuntu Version…
Leider komme ich selber nicht weiter – könnten Sie mir vielleicht helfen, damit ich das Skript soweit umschreiben könnte, dass es auch für mich funktioniert?
Ich freue mich auf Ihre Antwort.
Vielen Dank
Freundliche Grüsse
Jonas
Wie es aussieht, haben sich gerade erst die Plex-URLs geändert und das verlinkte Script funktioniert derzeitig nicht mehr ordnungsgemäß. Werde mir das mal bei Gelegenheit genauer ansehen. Bis dahin am besten erstmal manuell updaten.
Hallo, auch ich benutze den Raspberry Pi 2 als Plex Mediaserver und bekomme leider nicht das neue update auf 0.9.15 installiert. Gibt es da schon was neues zu???
Gruß
Christian
Guten Tag,
ich bin diese Woche auf den Blog hier gestoßen, da ich auf einem Pine64 Ubuntu und den PlexServer im Keller installiert habe um über unser Heimnetzwerk auf meine Filme zugriff zu haben.
Da ich in Sachen Ubuntu / Linux der totale Noob bin, habe ich mich über die Möglichkeit einer automatischen Updatefunktion für den PlexServer sehr gefreut.
Jedoch scheint etwas nicht ganz zu klappen.
Anscheinend funktioniert der Download von der angegegbenen Seite https://meintechblog.de/download/plexinstall/plexupdateInstall.zip nicht.
Versuche ich die Adresse von Hand hier im Browser einzugeben, erhalte ich nur eine Fehlermeldung, dass ich nicht berechtigt wäre auf diese Seite zuzugreifen.
Kann es sein, dass diese auch beim Versuch des Downloadens bei Ubuntu passiert und es die ZIP-Datei gar nicht herunterladen kann? Ubuntu sagt mir nämlich, dass die Install.zip nicht vorhanden wäre.
Haben Sie evtl. eine Lösung?
Mit freundlichen Grüßen
Karsten Franke
Hey, ich bekomme die Installation an sich hin. Es wird der Ordner unter /opt/plexupdate erstellt mit dem Inhalt plexupdate.sh. Führe ich aber den Testlauf aus, erhalte ich folgende Meldung:
sudo /opt/plexupdate/plexupdate.sh -a -p
/opt/plexupdate/plexupdate.sh: Zeile 100: /opt/plexupdate/plexupdate-core: Datei oder Verzeichnis nicht gefunden
Offensichtlich fehlt da etwas, aber ich kenne mich nicht gut genug mit Linux aus um mir selber zu erschließen, was da schief gelaufen ist. Hilfe?
Danke schon mal für die Arbeit hier!
Hi,
nutze das automatische Update schon lange nicht mehr, da ich meinen Plex-Server auf mein QNAP-NAS umgezogen habe. In der Zwischenzeit hat sich viel getan, deshalb kann ich leider nichts Genaues dazu sagen, was der Fehler sein könnte, sorry.