OPKG (en): Unterschied zwischen den Versionen
Mfgeg (Diskussion | Beiträge) (→OE 2.0) |
|||
| (37 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 3: | Zeile 3: | ||
|[[Bild:english.png]] - [[OPKG (en)|in English]] | |[[Bild:english.png]] - [[OPKG (en)|in English]] | ||
|} | |} | ||
[http://code.google.com/p/opkg/ OPKG] (short for '''O'''pen '''P'''ac'''K'''a'''G'''e Management) is a leightweight [http://en.wikipedia.org/wiki/Package_management_system package management system] for [https://en.wikipedia.org/wiki/Embedded_system embedded systems] such as the Dreambox. OPKG is a fork of [[IPKG (en)|IPKG]] and was introduced in the Deambox world since [http://www.openembedded.org/wiki/Main_Page OE] 1.6. | [http://code.google.com/p/opkg/ OPKG] (short for '''O'''pen '''P'''ac'''K'''a'''G'''e Management) is a leightweight [http://en.wikipedia.org/wiki/Package_management_system package management system] for [https://en.wikipedia.org/wiki/Embedded_system embedded systems] such as the Dreambox. OPKG is a fork of [[IPKG (en)|IPKG]] and was introduced in the Deambox world since [http://www.openembedded.org/wiki/Main_Page OE] 1.6. (For dreamboxes with OE 2.2, [[APT (en)|APT]] is used.) | ||
The package management in the [[Shell (en)|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 (en)| | The package management in the [[Shell (en)|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 (en)|Telnet]] or [[SSH (en)|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 [[Shell (en)|Terminal]]: | 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 [[Shell (en)|Terminal]]: | ||
| Zeile 36: | Zeile 36: | ||
=== Search package === | === Search package === | ||
There are different ways to search a package. First of all the package management offers the option <code>search</code>, but unfortunately this option doesn't work quite well. Better results are obtained with the option <code>list</code>. The following command shows how to use <code>[[ | There are different ways to search a package. First of all the package management offers the option <code>search</code>, but unfortunately this option doesn't work quite well. Better results are obtained with the option <code>list</code>. The following command shows how to use <code>[[BusyBox (en)#Important_shell_commands|grep]]</code> to search for any string. | ||
<syntaxhighlight> | <syntaxhighlight> | ||
opkg list | grep search_term | opkg list | grep search_term | ||
| Zeile 131: | Zeile 131: | ||
=== Install multiple packages from the feeds === | === Install multiple packages from the feeds === | ||
<syntaxhighlight> | <syntaxhighlight> | ||
opkg install | opkg install $package_name $package_name $package_name $package_name | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Deinstall multiplpe packages === | === Deinstall multiplpe packages === | ||
<syntaxhighlight> | <syntaxhighlight> | ||
opkg remove | opkg remove $package_name $package_name $package_name $package_name | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Zeile 149: | Zeile 150: | ||
The following command can be used to search for an installed package. If the package is installed the name is shown with the version number. If no output is displayed, the package is not installed ot the name of the package is wrong. | The following command can be used to search for an installed package. If the package is installed the name is shown with the version number. If no output is displayed, the package is not installed ot the name of the package is wrong. | ||
<syntaxhighlight> | <syntaxhighlight> | ||
opkg list-installed $ | opkg list-installed $package_name | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Show upgradable packages === | === Show upgradable packages === | ||
<syntaxhighlight> | <syntaxhighlight> | ||
| Zeile 162: | Zeile 164: | ||
opkg list-upgradable | more | opkg list-upgradable | more | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | === Install packages from a website === | ||
Packages can be installed directly from a web adress, e.g. with following command. | |||
<syntaxhighlight> | <syntaxhighlight> | ||
opkg install http://www.yyy.com/zzzz/ | opkg install http://www.yyy.com/zzzz/$package_name.ipk | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | |||
=== Download package from the feed === | |||
<syntaxhighlight> | <syntaxhighlight> | ||
opkg download | opkg download $package_name | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | |||
=== Show package information === | |||
<syntaxhighlight> | <syntaxhighlight> | ||
opkg info | opkg info $package_name | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | |||
=== Show package dependencies === | |||
Lists packages which are '''mandatory''' for an installation. | |||
<syntaxhighlight> | <syntaxhighlight> | ||
opkg depends | opkg depends $package_name | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | |||
=== Show packages which require the package as dependency === | |||
Shows the packages which have the <code>$package_name</code> as required dependency. | |||
<syntaxhighlight> | <syntaxhighlight> | ||
opkg whatdepends | opkg whatdepends $package_name | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | |||
=== Simulate package installation === | |||
Loads the package and simulates the installation. Ideal to check if an installation would be performed succesfully. | |||
<syntaxhighlight> | <syntaxhighlight> | ||
opkg --noaction | opkg --noaction $package_name | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | |||
=== Deinstall package with all dependencies === | |||
Removes a package and all installed dependencies. | |||
<syntaxhighlight> | <syntaxhighlight> | ||
opkg --autoremove | opkg --autoremove $package_name | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | |||
=== Set package on hold === | |||
Prevent an update of a package (using the flag <code>'''hold'''</code>). | |||
<syntaxhighlight> | <syntaxhighlight> | ||
opkg hold | opkg flag hold $package_name | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | |||
=== Release package === | |||
Release a package which is on '''<code>hold</code>'''. | |||
<syntaxhighlight> | <syntaxhighlight> | ||
opkg flag user | opkg flag user $package_name | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | |||
=== List the compatible package architectures === | |||
Shows the content of the file <code>/etc/opkg/arch.conf</code>. | |||
<syntaxhighlight> | <syntaxhighlight> | ||
opkg print-architecture | opkg print-architecture | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == Tips and Tricks == | ||
=== Proxy Server === | === Proxy Server === | ||
When using a [http://en.wikipedia.org/wiki/Proxy_server Proxy Server] to install packages, edit the configuration file <code>/etc/opkg/opkg.conf</code>. The entries should be self explaining ;) | |||
=== Package architecture for local installations === | === Package architecture for local installations === | ||
Keep in mind, for each [[Enigma2 (en)|Enigma2]] [[Dreambox-Varianten|Dreambox type]] and used [http://www.openembedded.org/wiki/Main_Page Openembedded] Version (OE 1.6 / [[OE 2.0 (en)|OE 2.0]]), the corresponding packages for a [[OPKG_(en)#Install_local_packages|manual installation]] are required. If not, the installation will be aborted with an error message - <code>....incompatible with the architectures configured</code>. When downloading packages from the board, read the thread and pay attention to the file extention as listet below. | |||
==== | ==== Packages for all architectures ==== | ||
* *.all.ipk | * *.all.ipk | ||
==== OE 1.6 ==== | ==== OE 1.6 ==== | ||
* *.mipsel.ipk | * *.mipsel.ipk packages | ||
==== OE 2.0 ==== | ==== [[OE 2.0 (en)|OE 2.0]] ==== | ||
* *.mips32el.ipk | * *.mips32el.ipk for all Box types, except the DM 800HD PVR. | ||
* *.mips32el-nf.ipk | * *.mips32el-nf.ipk only for DM 800HD PVR | ||
=== IPK | === Unpack IPK packages === | ||
Packages can be unpacked on a home computer. With Linux no extra tools are required, for Windows users the programm [http://www.7-zip.org/ 7-Zip] can be used. And for MAC users [http://macitbetter.com/ BetterZIP]. | |||
=== Write text file with list of installed packages === | |||
With following command it's possible to create a list of installed packages, and write the list in a text file. The example creates the list for the *extensions*. Of course the command can be adapted for *systemplugins* or GP3 Addons (*gemini*), etc.. | |||
The list with the name <code>'''e2plugins'''</code> can be found in the directory <code>/home/root</code>. This file can be used to show the installed packages, and reinstall the plugins after a new image was flashed. Of course you have to copy the list from the Dreambox on your computer (e.g. using [[FTP (en)|FTP]]). Otherwise the file is deleted after flashing the Dreambox ;) | |||
<syntaxhighlight> | |||
opkg list-installed *extensions* | awk '{ print $1 }' > /home/root/e2plugins | |||
</syntaxhighlight> | |||
Install the content of the list is possible with following command. Make sure the text file is in the directory <code>/home/root</code>. And of course the packages should be available on the feeds. | |||
<syntaxhighlight> | |||
opkg update && opkg install $(cat /home/root/e2plugins) | |||
</syntaxhighlight> | |||
An other method to install multiple packages is described in the chapter [[OPKG (en)#Install multiple packages from the feeds|other interesting commands]]. But you need to know the names of the packages. | |||
<syntaxhighlight> | |||
opkg update && opkg install $paketname $paketname $paketname $paketname | |||
</syntaxhighlight> | |||
[[Kategorie:Instructions (en)]] | [[Kategorie:Instructions (en)]] | ||
[[Kategorie:Enigma2 (en)]] | [[Kategorie:Enigma2 (en)]] | ||
Aktuelle Version vom 6. November 2016, 12:06 Uhr
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. (For dreamboxes with OE 2.2, APT is used.)
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| 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.
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_termE.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 Enigma2It'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 clientConstrain 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_nameFor $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...Install local packages
Packages (e.g. skins, plugin, ets.) which are offered in the IhaD board, but which are not on a feed, can be installed easily by the package management. Of course we don't use the software management, the GP3 File Browser or the eCommander, but we use telnet or SSH.
Download the package and use FTP to copy the file in the directory /tmp of the Dreambox. Now update the package lists, this way the dependencies (if required) for the package will be resolved and installed. The command is:
opkg update
| Please keep in mind, packages from external sources can damage the system! |
| Use the correct package architecture, for the different Dreamboxes and used OpenEmbedded versions! |
Installation of one package
Use the following command for the installation.
opkg install /tmp/$file_name_of_the_packageKeep in mind, the complete file name must be specified. E.g. if installing the skin gp-skin-ln.hd_gp32-20130903_all.ipk, the command is as follows. Use the TAB to complete the file name automatically.
opkg install /tmp/gp-skin-ln.hd_gp32-20130903_all.ipkOf course it's also possible to use an asterisk as wildcard, this way you don't need to write the complete name. E.g:
opkg install /tmp/gp-skin*Installation of multiple packages
The installation of multiple packages is also easy, once all files are copied with FTP in the directory /tmp on the Dreambox. Use the following command to install all packages. By the way, this works also for the installation of one package ;)
opkg install /tmp/*.ipkDeinstallation
The removal of a package is also done with the package name (without the version and the extention ipk) and the following command:
opkg remove $package_nameOf course the $package_name needs to be replaced by the correct name. If you want to remove the ln.hd skin, use the command:
root@dm8000:~# opkg remove gp-skin-ln.hd
Removing package gp-skin-ln.hd from root...Other interesting commands
Update sources
Allways update the sources before any package manipulation (e.g. installation, search, download of packages), with the command:
opkg updateUpgrade Firmware
With the following command it's possible to install all available updates for your Dreambox.
opkg upgradeChain commands
With two "and" symbols (&&) it's possible to chain commands. This way the second command is executed, as soon as the first is succesfully performed. The following command is very often used, to update the sources and the firmware.
opkg update && opkg upgradeInstall multiple packages from the feeds
opkg install $package_name $package_name $package_name $package_nameDeinstall multiplpe packages
opkg remove $package_name $package_name $package_name $package_nameShow all available packages from the feeds
opkg listShow all installed packages
opkg list-installedShow installed package
The following command can be used to search for an installed package. If the package is installed the name is shown with the version number. If no output is displayed, the package is not installed ot the name of the package is wrong.
opkg list-installed $package_nameShow upgradable packages
opkg list-upgradableShow packages page by page
Packages can be shown with the command more. Use the space or ↵ Enter to continue.
opkg list | more
opkg list-installed | more
opkg list-upgradable | moreInstall packages from a website
Packages can be installed directly from a web adress, e.g. with following command.
opkg install http://www.yyy.com/zzzz/$package_name.ipkDownload package from the feed
opkg download $package_nameShow package information
opkg info $package_nameShow package dependencies
Lists packages which are mandatory for an installation.
opkg depends $package_nameShow packages which require the package as dependency
Shows the packages which have the $package_name as required dependency.
opkg whatdepends $package_nameSimulate package installation
Loads the package and simulates the installation. Ideal to check if an installation would be performed succesfully.
opkg --noaction $package_nameDeinstall package with all dependencies
Removes a package and all installed dependencies.
opkg --autoremove $package_nameSet package on hold
Prevent an update of a package (using the flag hold).
opkg flag hold $package_nameRelease package
Release a package which is on hold.
opkg flag user $package_nameList the compatible package architectures
Shows the content of the file /etc/opkg/arch.conf.
opkg print-architectureTips and Tricks
Proxy Server
When using a Proxy Server to install packages, edit the configuration file /etc/opkg/opkg.conf. The entries should be self explaining ;)
Package architecture for local installations
Keep in mind, for each Enigma2 Dreambox type and used Openembedded Version (OE 1.6 / OE 2.0), the corresponding packages for a manual installation are required. If not, the installation will be aborted with an error message - ....incompatible with the architectures configured. When downloading packages from the board, read the thread and pay attention to the file extention as listet below.
Packages for all architectures
- *.all.ipk
OE 1.6
- *.mipsel.ipk packages
OE 2.0
- *.mips32el.ipk for all Box types, except the DM 800HD PVR.
- *.mips32el-nf.ipk only for DM 800HD PVR
Unpack IPK packages
Packages can be unpacked on a home computer. With Linux no extra tools are required, for Windows users the programm 7-Zip can be used. And for MAC users BetterZIP.
Write text file with list of installed packages
With following command it's possible to create a list of installed packages, and write the list in a text file. The example creates the list for the *extensions*. Of course the command can be adapted for *systemplugins* or GP3 Addons (*gemini*), etc..
The list with the name e2plugins can be found in the directory /home/root. This file can be used to show the installed packages, and reinstall the plugins after a new image was flashed. Of course you have to copy the list from the Dreambox on your computer (e.g. using FTP). Otherwise the file is deleted after flashing the Dreambox ;)
opkg list-installed *extensions* | awk '{ print $1 }' > /home/root/e2pluginsInstall the content of the list is possible with following command. Make sure the text file is in the directory /home/root. And of course the packages should be available on the feeds.
opkg update && opkg install $(cat /home/root/e2plugins)An other method to install multiple packages is described in the chapter other interesting commands. But you need to know the names of the packages.
opkg update && opkg install $paketname $paketname $paketname $paketname