Synology DiskStation: iPKG installieren

Die NAS-Systeme von Synology bringen von Haus aus jede Menge Funktionen mit und was nicht direkt dabei ist, lädt man einfach über weitere Quellen im Paketzentrum. Allerdings gibt es auch einige Helferlein, für die es keine Pakete im Paketzentrum gibt. Diese lassen sich mittels iPKG nachladen. Allerdings muss iPKG erst einmal installiert werden – und darum soll es hier gehen.

iPKG steht für „Itsy Package Management System“ und stellt selbst eine Art Paketzentrum dar.

Vorbereitung

Bevor wir uns an die eigentliche Installation machen gilt es zu aller erst heraus zu finden, welcher Prozessor im NAS schlummert, da wir das dafür kompilierte iPKG herunterladen müssen. Per SSH verbinden wir uns auf die DiskStation, nutzen dafür den Benutzernamen root und das Passwort vom Admin-Account und fragen mit folgendem Befehl den Prozessortyp ab:

DS> cat /proc/cpuinfo | more

Meine DS214Play besitzt einen Intel Atom-Prozessor.

Synology DiskStation: CPU-Informationen

Synology DiskStation: CPU-Informationen

Die Darstellung variiert je nach DiskStation Modell, hier ist also ein guter Blick gefragt. Je nachdem, welchen Prozessor Ihr für euer System identifiziert habt, verwendet Ihr eines der folgenden Pakete:

ARMMarvell Feroceon ARMv5TE compliant (armv5tejl)88F5281syno-x07
Marvell Kirkwood ARMv5TE compliant (Feroceon family)88F6180, 88F6281, 88F6282cs08q1armel
PowerPCFreescale PowerPC (ppc_6xx)MPC8241, MPC8245ds101g
Freescale PowerPC (e500v)MPC8533, MPC8533e, P1022syno-e500
x86Intel Atomalle Typensyno-i686

Nutzer von XPEnology nutzen ebenfalls syno-i686.

iPKG installieren

Wir wechseln in das Home-Verzeichnis vom root und laden das passende iPKG-Paket herunter (in meinem Fall ist syno-i686 das Richtige):

DS> cd ~
DS> wget http://ipkg.nslu2-linux.org/feeds/optware/syno-i686/cross/stable/syno-i686-bootstrap_1.2-7_i686.xsh

Die Datei syno-i686-bootstrap_1.2-7_i686.xsh wird nun herunter geladen. Wenn der Download fertig ist, müssen wir die Datei noch ausführbar machen. Das geschieht mit dem Befehl:

DS> chmod +x syno-i686-bootstrap_1.2-7_i686.xsh

Anschließend führen wir die Datei aus und starten damit die Installation:

DS> sh syno-i686-bootstrap_1.2-7_i686.xsh

Vom Grunde her ist die Installation damit abgeschlossen. Nach einem Neustart wird iPKG jedoch unter Umständen nicht mehr verfügbar sein, daher müssen wir noch die PATH-Variable anpassen. Solltet Ihr den Midnight Commander installiert haben, verwendet besser dessen integrierten Editor. Andernfalls macht es mit vi:

DS> vi /root/.profile

#
umask 022
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
export PATH

#This fixes the backspace when telnetting in.
#if [ "$TERM" != "linux" ]; then
#        stty erase
#fi

HOME=/root
export HOME

TERM=${TERM:-cons25}
export TERM

PAGER=more
export PAGER

PS1="`hostname`> "

alias dir="ls -al"
alias ll="ls -la"

In Zeile 3 fügen wir direkt hinter PATH= zusätzlich /opt/bin:/opt/sbin: ein, sodass sich dann folgender Inhalt ergibt:

PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/lo

Da vi etwas tricky ist, nachfolgend eine kurze Anleitung:

  1. mit den Pfeiltasten zum Ziel navigieren (hier Zeile 3, den Cursor hinter das = setzen)
  2. durch Betätigen der Taste i in den Einfügemodus wechseln
  3. Änderungen durchführen
  4. mit der ESC-Taste zurück in den Befehlsmodus wechseln
  5. Editor verlassen
    1. mit :wq werden die Änderungen gespeichert
    2. mit :q! werden die Änderungen verworfen

Nach dem Durchführen der Änderungen starten wir die DiskStation neu:

DS> reboot

Altes Start-Stop-Script entfernen

Wenn die DiskStation den Neustart abgeschlossen hat, verbinden wir uns wieder per SSH und entfernen den Aufruf des aktuellen Start-Stop-Scriptes:

DS> vi /etc/rc.local

#!/bin/sh

# Optware setup
#[ -x /etc/rc.optware ] && /etc/rc.optware start

exit 0

Zeile 4 wird nun auskommentiert, indem wir eine # davor setzen. Anschließend verlassen wir den Editor wieder.

Verzeichnisse korrigieren

Das alte Verzeichnis /opt muss weg, um Platz für ein neues zu schaffen. Dafür müssen wir es unmounten, um es anschließend löschen zu können:

DS> umount /opt
DS> rmdir /opt

Per Symlink bringen wir das richtige Opt-Verzeichnis an seine Stelle:

ln -s /volume1/@optware /opt

Neues Start-Stop-Script anlegen

Jetzt brauchen wir noch das neue Start-Stop-Script. Das legen wir an

DS> vi /usr/local/etc/rc.d/optware.sh

und fügen folgenden Code ein:

#!/bin/sh

case $1 in
start)
    [ ! -h /opt -a ! -d /opt ] && ln -s /volume1/@optware /opt
    for i in /opt/etc/init.d/S??* ;do
        # Ignore dangling symlinks (if any).
        [ ! -f "$i" ] && continue
            case "$i" in
                *.sh)
                    # Source shell script for speed.
                    (
                        trap - INT QUIT TSTP
                        set start
                        . $i
                    )
                    ;;
                *)
                    # No sh extension, so fork subprocess.
                    $i start
                    ;;
            esac
    done
    ;;
stop)
    for i in /opt/etc/init.d/S??* ;do
        # Ignore dangling symlinks (if any).
        [ ! -f "$i" ] && continue
            case "$i" in
                *.sh)
                    # Source shell script for speed.
                    (
                        trap - INT QUIT TSTP
                        set stop
                        . $i
                    )
                    ;;
                *)
                    # No sh extension, so fork subprocess.
                    $i stop
                    ;;
            esac
    done
    ;;
*)
    echo "Usage: $0 [start|stop]"
    ;;
esac

Stört euch nicht daran, dass nach dem Einfügen in vi der Code eventuell nicht mehr so schön formatiert und eingerückt ist, sich stattdessen mit jeder Zeile weiter nach rechts verschiebt. Das spielt eigentlich keine Rolle.

Zu guter Letzt müssen wir das Script noch ausführbar machen:

DS> chmod +x /usr/local/etc/rc.d/optware.sh

Nach einem Neustart steht iPKG vollumfänglich zur Verfügung.

DS> reboot

Um das zu überprüfen verbinden wir uns nach dem Neustart erneut per SSH auf die DiskStation und führen folgenden Befehl aus:

DS> ipkg

Da wir keine weiteren Parameter angegeben haben, werden uns alle verfügbaren angezeigt – das Zeichen, dass die Installation erfolgreich war. Wenn eine Fehlermeldung erscheint, z.B.

-ash: ipkg: not found

ist wohl etwas schief gegangen. Vergewissert Euch, dass Ihr keinen Schritt ausgelassen habt und auch das richtige iPKG für Euren Prozessor ausgewählt habt.

Grafische Oberfläche für iPKG installieren

Damit iPKG etwas handlicher wird, installieren wir noch schnell eine grafische Oberfläche dafür. So lassen sich Pakete ganz bequem installieren, updaten und deinstallieren. Und falls man mal nicht weiß, was man denn genau sucht, kann man einfach durch die Liste scrollen.

Wir loggen uns als Admin im DiskStation Manager ein und steuern direkt das Paketzentrum an. Im oberen Bereich klicken wir auf die Schaltfläche „Einstellungen“.

Synology DiskStation: Paketquellen hinzufügen

Synology DiskStation: Paketquellen hinzufügen

Im Tab „Paketquellen“ fügen wir, falls noch nicht vorhanden, die Quelle Community Package Hub mit der Adresse http://www.cphub.net hinzu. Anschließend verlassen wir dieses Fenster mit der Schaltfläche OK.

Zurück im Paketzentrum-Hauptfenster wechseln wir zunächst in den Bereich Dienstprogramme und installieren Perl. Danach besuchen wir den Community-Bereich, suchen das Paket iPKGgui und installieren es.

Anschließend verlassen wir das Paketzentrum und starten iPKGgui. Das Fenster ist zunächst noch leer, füllt sich aber, sobald man oben links die Schaltfläche „Aktualisieren“ betätigt.

Synology DiskStation: iPKGgui

Synology DiskStation: iPKGgui

Der Rest erklärt sich weitestgehend von selbst:
Um Pakete zu installieren klickt man mit der rechten Maustaste darauf und wählt „Markiere für Installation“ mit der Optionen „Überschreiben“. Weitere Pakete, die zum Betrieb des ausgewählten Paketes benötigt werden, werden automatisch mit installiert.
Um Pakete zu deinstallieren geht man genau so vor, nur dass man im „Markiere für Entfernung“ wählt. Als Optionen stehen zur verfügung:

  • „Ignoriere Abhängigkeitsfehler“: nur das tatsächlich markierte Paket wird entfernt
  • „Rekursiv“: andere Pakete, die von diesem Paket abhängig sind, werden ebenfalls entfernt. Allerdings werden nicht alle Pakete im Bestätigungsfenster angezeigt, trotzdem aber entfernt. Hier ist also etwas Vorsicht geboten.

Wenn alle gewünschten Pakte ausgewählt wurden, klickt man in der oberen Menüzeile auf „Anwenden“ und im Folgefenster auf „Ausführen“. Die Pakete werden nun installiert, deinstalliert, aktualisiert – was auch immer ihr ausgewählt habt.

Quellen und weiterführende Links:

Sebastian

Sebastian

...ist staatlich geprüfter Techniker für Elektrotechnik, Schwerpunkt Prozessautomatisierung und Energietechnik. Die Themen Automatisierung und Programmierung haben es ihm besonders angetan.
Außerdem ist er für jede technische Spielerei zu haben 😉
Sebastian

32 Comments

    • Sebastian
      Antworten Sebastian

      Vielen Dank für Deinen Hinweis. Sicher kann der Eine oder Andere damit sein Vorhaben umsetzen.

  1. Avatar
    Antworten PG

    Hallo Sebastian

    ich hatte auf meiner RS2414+ bash installiert und die Welt war noch heil.
    Nach dem Update auf DSM 5.0 war ipkg und bash leider nicht mehr auszuführen.

    In der Zwischenzeit habe ich schon viel probiert und auf der Suche nach Hilfe auch deine Anleitung gefunden.
    Leider habe ich bis jetzt ipkg und somit bash nicht mehr zum laufen gebracht.

    Intel Atom D2700
    DSM 5.2-5644

    Die passende Bootstrap Datei hatte ich noch von der letzten Installation vor 5.0 und somit sollte diese passen hoffe ich.

    syno-i686-bootstrap_1.2-7_i686.xsh

    Die Datei habe ich unter /volume1/public abgelegt und mit sh gestartet (eingeloggt als root)

    sh syno-i686-bootstrap_1.2-7_i686.xsh

    Optware Bootstrap for syno-i686.
    Extracting archive… please wait
    bootstrap/
    bootstrap/bootstrap.sh
    bootstrap/ipkg-opt.ipk
    bootstrap/ipkg.sh
    1216+1 records in
    1216+1 records out
    bootstrap/optware-bootstrap.ipk
    bootstrap/wget.ipk
    Backup your configuration settings, then type:
    rm -rf /volume1/@optware
    rm -rf /usr/lib/ipkg
    This will remove all existing optware packages.

    You must *reboot* and then restart the bootstrap script.

    BusyBox v1.16.1 (2015-11-12 18:00:37 CST) built-in shell (ash)
    Enter ‚help‘ for a list of built-in commands.

    Die Datei /root/.profile wurde auch editiert mit

    PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
    PATH=/opt/bin:/opt/sbin:$PATH
    export PATH

    Das # in die 4. Zeile am Anfang der /etc/rc.local habe ich eingefügt.

    ln -s /volume1/@optware /opt
    Symlink von opt -> /volume1/@optware mit allen Rechten 777 ist vorhanden.

    Star-Stop Script hab ich auch angelegt unter /usr/local/etc/rc.d/optware.sh
    mit dem Inhalt von deiner Seite.

    Rechte für den Zugriff habe ich auch gesetzt!

    Interessant finde ich das unter /opt/ kein bin oder sbin Verzeichnis vorhanden ist!
    Diese werden ja in der .profile unter path für den Zugriff auf die Programme angeführt.

    Wie kann ich weiter vorgehen um mein Problem zu lösen und zum Schluss ipkg und bash zum Laufen zu bringen.

    Kannst du mir da helfen oder einen Tipp geben?

    Schöne Grüße

    • Sebastian
      Antworten Sebastian

      Hallo PG,

      hast Du die Anleitung 1:1 befolgt?
      Mich wundert die Ausgabe im Terminal, wenn Du die Installation startest. Für mich sieht das so aus, als würde das Paket nur entpackt, jedoch nicht installiert werden. So geschieht es zum Beispiel, wenn iPKG bereits installiert ist. Könnte vielleicht daran liegen, dass Du vorher etwas herum probiert hast und jetzt noch die Reste davon im System liegen. In Deiner Terminalausgabe steht auch etwas in der Richtung. Allerdings liegen die Dateien bei mir teils an anderen Stellen.

      Du solltest iPKG komplett entfernen und neu installieren. Folgende Dateien und Verzeichnisse müssen dazu gelöscht werden:
      ~/bootstrap,
      /etc/rc.local,
      /opt,
      /volume1/@optware.
      Zusätzlich auch die entsprechenden Dateien aus Deinem public-Verzeichnis entfernen.

      Für die Neuinstallation ist es empfehlenswert, das home-Verzeichnis vom root zu nutzen. Die Terminalausgabe für die vollständige Installation sollte in etwa so aussehen:

      root@XPEnology ~ $ sh syno-i686-bootstrap_1.2-7_i686.xsh
      Optware Bootstrap for syno-i686.
      Extracting archive... please wait
      bootstrap/
      bootstrap/bootstrap.sh
      bootstrap/ipkg-opt.ipk
      bootstrap/ipkg.sh
      bootstrap/optware-bootstrap.ipk
      bootstrap/wget.ipk
      1216+1 records in
      1216+1 records out
      Creating temporary ipkg repository...
      Installing optware-bootstrap package...
      Unpacking optware-bootstrap.ipk...Done.
      Configuring optware-bootstrap.ipk...Modifying /etc/rc.local
      Done.
      Installing ipkg...
      Unpacking ipkg-opt.ipk...Done.
      Configuring ipkg-opt.ipk...Done.
      Removing temporary ipkg repository...
      Installing wget...
      Installing wget (1.12-2) to root...
      Configuring wget
      Successfully terminated.
      Creating /opt/etc/ipkg/cross-feed.conf...
      Setup complete.
      
      
      BusyBox v1.16.1 (2015-06-29 18:21:52 CST) built-in shell (ash)
      Enter 'help' for a list of built-in commands.
      
      root@XPEnology ~ $
      
  2. Avatar
    Antworten jog

    Sehr coole Anleitung! Auf DSM 5.2 und RS814+ hab ich das problemlos zum laufen bekommen. Vielleicht wäre es noch gut etwas Werbung für den Nano als Editor zu machen – der ist weniger sperrig als vi 😉
    Jetzt geb ich mich an autossh dran…

  3. Avatar
    Antworten Patrick

    Also ich bekomme ned gebacken, exakt nach der Anleitung gehalten unter DSM6 aber no way, immer ipkg not found

    • Avatar
      Antworten Stefan

      Hallo Patrick
      ich habe es unter DSM6 zum Laufen bekommen. Man muss allerdings die Änderung des „Path“ in einer anderen Datei durchführen, nämlich in „/etc/profile“ statt in „/root/.profile“.
      Grüße
      Stefan

  4. Avatar
    Antworten ALex K.

    Hallo Sebastian,

    vielen Dank für die Mühe! Es hat super geklappt!

    Viele Gruesse aus Muenchen
    Alex

    english: IPKG INSTALLATION WORKED PERFECTLY ON MY DS810+ RUNNING DSM 5.2-5644 Update 8

  5. Avatar
    Antworten Michael

    Hallo Sebastian,

    vielen Dank für die tolle Beschreibung. Leider scheitere ich an der Installation des IPKG. Nachdem der erste Versuch nicht von Erfolg gekrönt war, habe ich alles gelöscht (wie von Dir bei der Frage von PG geschrieben). Dann habe ich im root neu installiert. Bis zur Installation von wget sieht meine Terminalausgabe auch so aus, die von Dir (bei PG) beschrieben. Dann aber kommt es zu folgendem Fehler:
    /opt/bin/ipkg: error while loading shared libraries: /opt/lib/libipkg.so.0: ELF file OS ABI invalid

    Kannst Du mir dazu helfen?

    Danke und viele Grüße

    Michael

  6. Avatar
    Antworten Toni

    Hallo Sebastian, wenn ich das alte start-stop-script entfernen möchte mit vi /etc/rc.local kommt bei mir nur ein leeres Terminal. hat hier das Verzeichnis geändert wie beim änder der path-variablen?

    • Sebastian
      Antworten Sebastian

      Hallo Toni,

      wenn sich nur der Editor ohne jeglichen Inhalt öffnet, dann ist das meist ein Indiz dafür, dass die Datei nicht existiert. Eventuell hat sich seit ich diesen Beitrag schrieb etwas am Paket geändert.

    • Avatar
      Antworten Siggi63

      Hallo Sebastian,
      nach einem update meiner DS 110j von 4.2 auf 4.3 funktioniert IPKG nicht mehr.
      Ich habe dann alles gemäß deiner Anleitung gemacht aber keinen Erfolg gehabt.
      Wenn ich mich jetzt als root über putty anmelden will geht putta nach Eingabe des Passworts sofort aus.
      Als Admin geht es.
      Leider brauche ich den root Zugang.
      Hättest du eine Lösung für mich ?

  7. Avatar
    Antworten CrazyCreator

    Erstmal danke für Anleitung … hat scheinbar alles funktioniert, Auch wenn der PATH in DSM 6.1 nicht vorhanden war, also die ganzen 3 Zeilen nicht.

    Aber hab sie hinzugefügt und es läuft.

    Ich habe jetzt mal testhalber Transmission installiert. Aber habe keine Ahnung wie ich das jetzt starten soll/kann?

  8. Avatar
    Antworten Mészi

    Hallo, auf meiner DS1517+ (DSM 6.1.5-15254) wird allem Anschein nach der PATH nicht wie angenommen exportiert. Das hat zur Folge, dass IPKG und auch der testweise installierte MC nur über den vollen Pfad angesprochen werden können. Was könnte hier „falsch“ gelaufen sein?

    PS: Die Angabe einer Emailadresse, die den Alias „spam“ nutzt, wird als selbiger missverstanden. Das ist schade.

  9. Avatar
    Antworten ulrich

    Hallo,
    ich bekomme nach dem Ausführen von
    sh syno-i686-bootstrap_1.2-7_i686.xsh
    die Fehlermeldung
    cannot create directory ‘/volume1/@optware’: Permission denied
    trotzdem ich als ADMIN eingeloggt bin.
    Eigentlich sollte der Admin alle erf. Rechte haben.
    Was kann fehlern ?

  10. Avatar
    Antworten Ulrich

    Hallo Sebastian,
    ich wüsste nicht woher das Verzeichnis gekommen sein sollte, sicher bin ich mir aber nicht.
    Ich bin neu im Thema Telnet/SSH und hangel mich gern selbst tief rein, bräuchte aber Starthilfe.
    Ich habe versucht mich 1:1 an das beschriebene Vorgehen zu halten und der Fehler kam bereits beim ersten Versuch.
    Kann ich das Vorhandensein des Verzeichnis mit einem ‚DIR‘ checken ? Ich würde es heute Spätnachmittag prüfen wollen.
    Was müsste ich tun, falls es das Verzeichnis gibt bzw. nicht gibt ?
    Fehlende Rechte können es bei einem Admin Account doch eigentlich nicht sein, oder ?

    • Sebastian
      Antworten Sebastian

      Hi Ulrich,
      Das war ein Fehler meinerseits. Die Meldung besagt ja, dass die Rechte nicht reichen, nicht dass das Verzeichnis schon existiert…
      Es ist tatsächlich so, dass admin nicht die benötigten Rechte besitzt, die besitzt nur root.

      • Avatar
        Antworten Ulrich

        OK, dann habe ich Prinzip hier noch nicht ganz verstanden.
        In der Benutzerverwaltung gibt es ja den User root nicht.
        Wo finde ich dann das passende Passwort oder wo lege ich es in der Systemsteuerung fest ?

        • Sebastian
          Antworten Sebastian

          Sorry, aber es ist vielleicht besser, wenn du dir erstmal ein paar Grundlagen anließt, bevor du Änderungen am System vornimmst.
          Im Zuge von DSM 6 gab es auch eine Änderung was das Thema admin und root angeht. Da ich noch immer mit DSM 5 arbeite, kann ich dir, was das angeht, leider nicht weiterhelfen.

  11. Avatar
    Antworten Copperfield

    Hallo Sebastian, ich wollte deiner Anleitung folge leisten, stehe aber jetzt vor einem (für mich) großem Problem.
    Nachdem ich die Datei runtergeladen und installiert habe, bin ich nach root/.profile gegangen und habe mir die Datei angeschaut. Dort gab es keine PATH Angaben drin, also habe ich PATH dort angelegt mit den Orten „/opt/bin:/opt/sbin:“, wie es in der Anleitung steht.
    Nach dem Neustart kann ich allerdings in der Konsole nichts mehr machen, weil er KEINE Befehler mehr kennt, weder vi noch ls noch sonstwas.
    Ich brauche dringend deine Hilfe! Weiß nicht was ich jetzt tun soll????
    Ich bin übrigens auf DSM 6.

    Danke!

  12. Avatar
    Antworten Copperfield

    Ich habe das Problem zum Glück alleine wieder in den Griff bekommen.
    Das war mal ein Schreck! 🙂
    Ich Depp habe aber gesehen, dass ich ipkg bereits vor langer Zeit bereits installiert hatte.
    Muss ich jetzt noch irgendwas beachten, nachdem ich ja die installation ausgeführt habe?
    Oder kann ich einfach alles so lassen?

    Grüße
    Copperfield

    • Sebastian
      Antworten Sebastian

      Hi,
      Freut mich für dich, dass du es doch noch hinbekommen hast. Wenn alles läuft brauchst du auch nicht mehr daran herumstellen.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.