OPKG (en)

Aus Gemini-Wiki
Zur Navigation springen Zur Suche springen
Deutsch.png - auf Deutsch English.png - in English

OPKG (short for Open PacKaGe Management) is a leightweight package management system for embedded systems such as the Dreambox. OPKG is a fork of IPKG and was introduced in the Deambox world since OE 1.6.

The package management in the shell is a powerful tool for the Dreambox, and offers far more possibilities compared to the package management with the remote control. Of course, using the remote control is easy and most of the time adequate. But maybe this article can convince you to give it a try via telnet or SSH.

This article explains how to search / install / remove packages and some more interesting commands which offers OPKG. If you want to learn all options of OPKG, enter following command in the Terminal:

opkg

Install packages via internet

To be able to install a package, the feed defined in the /etc/opkg, should be updated. If this is not done, the installation will be terminated with the error message: Unknown package ..... Always enter the following command before installing:

opkg update
Ambox warning.png Be careful when integrating 3rd party package feeds. If the feed is not available, or not maintained correctly, upgrading the firmware or installing packages will fail!

Installation

The installation of a package is done with the following command:

opkg install $package_name

$package_name should be replaced by the correct name. E.g. when installing webadmin, the command is:

root@dm8000:~# opkg install enigma2-plugin-extensions-webadmin
Installing enigma2-plugin-extensions-webadmin (4.0) to root...
Downloading http://dreamboxupdate.com/opendreambox/2.0.3/ipk/mips32el/enigma2-plugin-extensions-webadmin_4.0_mips32el.ipk.
Configuring enigma2-plugin-extensions-webadmin.

The question is, how can you know the correct package name. The name can be found here in the wiki, or in the board. Or you can search with the package management system, as described below.

Ambox notice.png If the installation results in an error message, this means the package is not on the feed (Unknown package...), or there are some dependencies to other required packages missing (Cannot satisfy the following dependencies...).

Search package

There are different ways to search a package. First of all the package management offers the option search, but unfortunately this option doesn't work quite well. Better results are obtained with the option list. The following command shows how to use grep to search for any string.

opkg list | grep search_term

E.g. when searching for webadmin, the search result is as follows. The name of the package, which is needed for the installation, is on the left side. The correct package name for the webadmin is enigma2-plugin-extensions-webadmin.

root@dm8000:~# opkg list | grep webadmin
enigma2-plugin-extensions-webadmin - 4.0 - Additional plugins for Enigma2

It's also possible to use an Asterisk symbol as wildcard in the search term. The search for *webadmin*, results iin:

root@dm8000:~# opkg list *webadmin*
enigma2-plugin-extensions-webadmin - 4.0 - Additional plugins for Enigma2
Extension for enigma2 webinterface to install Ipkgs telnet client

Constrain the package search

Once you know the naming convention for packages (plugins, skin etc.), the search can be optimized to find faster the desired package. With the following search terms it's easy to filter the package names from the available feeds.

  • gemini → shows the different GP3 Addons
  • gp-skin → shows all the available GP3 Skins
  • gp-icons → shows all the different GP3 Icon Packages
  • enigma2-plugin-systemplugins → shows the Enigma2 System Plugins
  • enigma2-plugin-extensions → shows Enigma2 extentions

Deinstallation

Removing a package is done like this:

opkg remove $package_name

For $package_name the correct name must be used. E.g. for removing the webadmin, use the following command:

root@dm8000:~# opkg remove enigma2-plugin-extensions-webadmin
Removing package enigma2-plugin-extensions-webadmin from root...

Lokal gespeicherte Pakete installieren

Pakete (z.B. Skins, Plugin, usw.) die z.B. im IhaD-Forum angeboten werden, aber nicht auf einem Softwarefeed liegen, können sehr einfach über die Paketverwaltung installiert werden. Natürlich benutzen wir nicht die Softwareverwaltung, den GP3 Datei Browser oder den eCommander, sondern wir installieren das Paket via Telnet oder SSH.

Ladet das Paket herunter und kopiert es via FTP in das Verzeichnis /tmp der Dreambox. Nun aktualisiert ihr wieder die Paketlisten, dass Abhängigkeiten (sofern benötigt) zu dem Paket aufgelöst und installiert werden können. Der Befehl ist wie folgt.

opkg update
Ambox warning.png Beachtet bitte, dass Fremdpakete das System beschädigen können!
Ambox attention.png Benutzt die korrekte Paketarchitektur, für die verschiedenen Dreamboxen und verwendeten OpenEmbedded Versionen!

Installation eines Pakets

Installiert das Paket mit dem folgenden Befehl.

opkg install /tmp/$Dateiname_des_Pakets

Beachtet bitte, dass der komplette Dateiname angegeben werden muss. Wenn z.B. der Skin gp-skin-ln.hd_gp32-20130903_all.ipk installiert wird, dann ist der Befehl wie folgt. Benutzt hier TAB um den Dateinamen automatisch zu vervollständigen.

opkg install /tmp/gp-skin-ln.hd_gp32-20130903_all.ipk

Man kann natürlich auch das Sternchen Symbol (Asterisk) verwenden als Platzhalter, damit man nicht den ganzen Namen schreiben muss, z.B. so.

opkg install /tmp/gp-skin*

Installation mehrerer Pakete

Die Installation von mehreren Pakete ist auch sehr einfach, wenn alle via FTP in das /tmp Verzeichnis der Dreambox kopiert worden sind. Gebt den folgenden Befehl ein, um die Pakete zu installieren. Funktioniert übrigens auch für die Installation von einem Paket ;)

opkg install /tmp/*.ipk

Deinstallation

Das deinstallieren von einem Paket, erfolgt wieder über den Paketnamen (ohne der Version und der Endung ipk) und dem folgenden Befehl.

opkg remove $paketname

Für $paketname muss natürlich der korrekte Name eingegeben werden. Wenn ihr den ln.hd Skin entfernen möchtet, dann wäre der Befehl wie folgt:

root@dm8000:~# opkg remove gp-skin-ln.hd
Removing package gp-skin-ln.hd from root...

Weitere interessante Befehle

Paketquellen aktualisieren

Aktualisiert die Paketquellen immer vor Paketmanipulationen (z.B. Installationen, Suchen, Herunterladen von Paketen), mit folgendem Befehl:

 opkg update

Firmware aktualisieren

Mit dem folgenden Befehl könnt ihr die Dreambox immer auch den neusten Softwarestand (Firmwareaktualisierung) bringen, sofern Aktualisierungen zur Verfügung stehen.

opkg upgrade

Befehle verknüpfen

Mit zwei Und-Zeichen (&&) könnt ihr Befehle miteinander verknüpfen. So wird der zweite Befehl ausgeführt, sobald der erste erfolgreich abgearbeitet ist. Ein sehr oft benutzter Befehl, um Paketlisten und die Firmware zu aktualisieren, ist wie folgt.

opkg update && opkg upgrade

Mehrere Pakete aus den Softwarequellen installieren

opkg install &paketname &paketname &paketname &paketname

Mehrere Pakete deinstallieren

opkg remove &paketname &paketname &paketname &paketname

Alle verfügbaren Pakete der Softwarequellen anzeigen

opkg list

Alle installierten Pakete anzeigen

opkg list-installed

Installiertes Paket anzeigen

Mit folgendem Befehl könnt ihr gezielt nach einem installierten Paket suchen. Erscheint der gesuchte Paketname, inklusive Version, dann ist es installiert. Erfolgt keine Ausgabe, dann ist es nicht installiert oder der Name des Pakets ist falsch geschrieben.

opkg list-installed $paketname

Aktualisierbare Pakete anzeigen

opkg list-upgradable

Pakete seitenweise anzeigen

Pakete könnt ihr seitenweise anzeigen lassen, mittels dem Befehl more. Benutzt die Leertaste oder ↵ Enter um das auflisten zu beeinflussen.

opkg list | more
opkg list-installed | more
opkg list-upgradable | more

Pakete von einer Web-Adresse installieren

Pakete können direkt von einer Web-Adresse installiert werden, z.B. mit folgendem Befehl.

opkg install http://www.yyy.com/zzzz/&paketname.ipk

Pakete aus den Softwarequellen herunterladen

opkg download &paketname

Paketinformationen anzeigen

opkg info &paketname

Paket Abhängigkeiten anzeigen

Listet Pakete auf, welche für eine Installation zwingend erforderlich sind.

opkg depends &paketname

Abhängigkeiten zu einem Paket anzeigen

Zeigt die Pakete, welche den &paketnamen als Abhängigkeit benötigen.

opkg whatdepends &paketname

Paketinstallation simulieren

Lädt das Paket und simuliert die Installation. Ideal um zu sehen, ob eine Installation erfolgreich verlaufen wird.

opkg --noaction &paketname

Paket und seine Abhängigkeiten entfernen

Entfernt ein Paket mit seinen Abhängigkeiten, die installiert sind.

opkg --autoremove &paketname

Paket auf hold setzen

Aktualisierung eines Pakets verhindern (durch setzen des hold flags).

opkg hold &paketname

Paket freigeben

Ein auf hold gesetztes Paket freigeben.

opkg flag user &paketname

Auflisten der kompatiblen Paketarchitekturen

Zeigt den Inhalt der Datei /etc/opkg/arch.conf.

opkg print-architecture

Tipps und Tricks

Proxy Server

Wenn ihr über einen Proxy Server Pakete installieren wollt, dann editiert bitte die Konfigurationsdatei /etc/opkg/opkg.conf. Die Eingaben sollten selbsterklärend sein ;)

Paket Architektur für lokale Installationen

Beachtet, dass je nach Enigma2 Dreamboxtyp und verwendeter Openembedded Version (OE 1.6 / OE 2.0), die korrekten Pakete für manuelle Installation verwendet werden müssen. Ansonsten bricht die Installation mit dem Fehler - ....incompatible with the architectures configured ab. Wenn ihr also Pakete aus dem Forum holt, dann lest den entsprechenden Beitrag und beachtet immer die Dateiendungen und folgende Punkte.

Plattformunabhängige Pakete

  • *.all.ipk

OE 1.6

  • *.mipsel.ipk Pakete

OE 2.0

  • *.mips32el.ipk für alle Boxtypen, ausser der DM 800HD PVR.
  • *.mips32el-nf.ipk nur für DM 800HD PVR

IPK Pakete entpacken

Pakete können am heimischen PC einfach entpackt werden. Unter Linux klappt das ohne Umwege, für Windows Benutzer ist z.B. das Programm 7-Zip interessant. Und für MAC Benutzer das Programm BetterZIP.