APT (en)

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

APT (short for Advanced Packaging Tool) is a package management system which finds it origin in the Debian GNU/Linux operating system, and is based on the dpkg package management.

APT was introduced in the Deambox world since OE 2.2. (For dreamboxes with OE 1.6 or OE 2.0, OPKG 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.

Compared to the older Package Management Systems, IPG or OPKG, there is not only one command for the manipulation of packages. Several commands are possible, e.g.:

  • apt-get - This command installs packages from the available sources. It considers the dependencies for the installed packages. Of course the can also be used to uninstall packages and many more manipulations.
  • apt-cache - This command will not change the system. It's used to analyze (e.g. search) the package cache. The cache stores the meta-data for all available packages of the software feed
  • dpkg - Is used for the manual installation / uninstall of packages. Keep in mind, dpkg is considering the dependencies during the installation / uninstall.
  • apt - This command offers the most important commands of the package manger, incl. the colorized output.

This article explains how to search / install / remove packages and some more interesting commands which offers APT. Additional interesting features of the commands can be obtained over the option --help.

apt-get --help
apt-cache --help
dpkg --help
apt --help


Install packages from the internet

Before the installation the packages sources defined in /etc/apt/sources.list.d, need to be updated with the following command:

apt-get update
Ambox warning.png Be careful with integrating 3rd party sources. If the repository is not available, or not up to date, this can cause problems with updating the firmware, installing packages or even damage the operating system!

Installation

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

apt-get install $package_name

Replace $package_name with the correct name. E.g. if you want to install WebAdmin, the command is:

root@dm7080:~# apt-get install enigma2-plugin-extensions-webadmin
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  enigma2-plugin-extensions-webadmin
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 221 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://dreamboxupdate.com/opendreambox/2.2/unstable/r0/dm7080/deb/mips32el/ ./ enigma2-plugin-extensions-webadmin 4.2.0+git25+93609ff651-r0.0 [221 kB]
Fetched 221 kB in 1s (211 kB/s)                              
Selecting previously unselected package enigma2-plugin-extensions-webadmin.
(Reading database ... 10348 files and directories currently installed.)
Preparing to unpack .../enigma2-plugin-extensions-webadmin_4.2.0+git25+93609ff651-r0.0_mipsel.deb ...
Unpacking enigma2-plugin-extensions-webadmin (4.2.0+git25+93609ff651-r0.0) ...

If additional packages are required, the installation needs to be confirmed with y. If n is pressed, the installation will be aborted. To perform the installation without confirmation, the option -y can be used, e.g.:

apt-get install -y $package_name

Now you wonder how to get the correct package name. The names can be found in the articles here in the wiki, or in the board. But you can also search with the package management system, as described below.

Ambox notice.png If the command results in an error, the package is not available on the feed (Unable to locate package...), or some required dependencies are missing.

Search package

To search a package, the command apt-cache with the option search can be used. The search term parses the package cache and checks the names and the descriptions.

apt-cache search $search_term

Filter the package search

If you know the structure of the package names for plugins, skins etc. you can use the search to get to the wanted result. The following examples of search terms might help to filter the corresponding package from the sources.

  • gemini → shows the different GP3 Addons
  • gp-skin → all available GP3 Skins
  • gp-icons → lists the different GP3 Icon packages
  • enigma2-plugin-systemplugins → lists Enigma2 system plugins
  • enigma2-plugin-extensions → shows Enigma2 addons

Deinstallation

The deinstallation of a package, can be done with the following command.

apt-get remove $package_name

The $package_name must be the correct name. E.g. if you want to remove WebAdmin, the command is:

root@dm7080:~# apt-get remove enigma2-plugin-extensions-webadmin
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  enigma2-plugin-extensions-webadmin
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y

Confirm the deinstallation with y. If n is pressed, the deinstallation will be aborted. To perform the deinstallation without confirmation, use the following command:

root@dm7080:~# apt-get remove -y enigma2-plugin-extensions-webadmin

Install local saved packages

Packages (e.g. skin, plugin, etc.) which are offered e.g. in the IhaD board, but are not available on the feed, can be installed very easily with the package management system. We won't use the Software Manager, the GP3 File Browser nor the eCommander, but we'll install the package via telnet or SSH.

Ambox warning.png Keep in mind, 3rd party packages can damage the system!
Ambox attention.png Use the correct package architecture for the different dreambox models and the used OpenEmbedded versions! For OE 2.2 *.deb packages are required.
Ambox notice.png The command dpkg will not resolve automatically the dependencies to other packages!

Installation of a package

Install the package with the following command.

dpkg -i /tmp/$name_of_the_package

The complete file name must be specified. E.g. to in stall the skin gp-skin-holo-black_gp33-20141107-r586_all.deb use the following command. It's possible to use the TAB to auto-complete the file name.

dpkg -i /tmp/gp-skin-holo-black_gp33-20141107-r586_all.deb

Of course, it's also possible to use an asterisk as wildcard, this way you can use a part of the package name, e.g. below.

dpkg -i /tmp/gp-skin*

If after the installation an error might be displayed,

dpkg: error processing package gp-skin-holo-black (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
gp-skin-holo-black

this means there are some dependencies required to use the package. The list of missing dependencies can be showed with following command::

root@dm7080:~# apt-get check
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
gp-skin-holo-black : Depends: enigma2 (>= 4.2.0r15) but 4.2.0r11-dm7080-r0.0 is installed
                     Depends: enigma2-plugin-skincomponents-eventlist but it is not installed
                     Depends: enigma2-plugin-skincomponents-eventposition but it is not installed
                     Depends: enigma2-plugin-skincomponents-extcomponents but it is not installed

These missing dependencies can be installed easily, if they are available on the feed. Use the following command to update the package list and install the missing dependencies.

apt-get update && apt-get -f install

Confirm the question to install the dependencies with y.

Install several packages at once

The installation of various packages is also easy. First of all copy the files with FTP in the /tmp directory of the dreambox. Use following command to install all packages at once. Work also for the installation of one package ;)

dpkg -i /tmp/*.deb

If there are missing dependencies, use the following command to install these packages:

apt-get update && apt-get -f install

Deinstallation

The removal of a package is also done with the package name (without the version and extension deb), with the following command.

dpkg -r $package_name

Replace $package_name by the correct name. To uninstall the skin gp-skin-holo-black, use the following command to remove the package.

dpkg -r gp-skin-holo-black
(Reading database ... 10258 files and directories currently installed.)
Removing gp-skin-holo-black (gp33-20141107-r586) ...

If the package you want to remove is a dependency, required by other packages, the installation will be aborted. The following example shows the corresponding error message. In this example the package can not be removed because it is used by the skins gp-skin-holo-black.

root@dm7080:~# dpkg -r enigma2-plugin-skincomponents-eventposition
dpkg: dependency problems prevent removal of enigma2-plugin-skincomponents-eventposition:
gp-skin-holo-black depends on enigma2-plugin-skincomponents-eventposition.

It might be better to use the command apt-get remove. This will also take care of the dependencies. Example:

apt-get remove enigma2-plugin-skincomponents-eventposition

Confirm the message with y.

Ambox attention.png Packages which require the removed package (dependency) will also be uninstalled.

Update the image

First of all update the package list, use following command:

apt-get update

Subsequently one of following commands can be used to update the dreambox.

Upgrade

This command will only upgrade installed packages. It will never install or remove packages, also in case the package is no longer required. The upgrade is done with:

apt-get upgrade

Dist-Upgrade

This command will upgrade all packages from the feed. On top it will install new packages if required automatically. This is done with:

apt-get dist-upgrade

Update and Upgrade together

All in one go:

apt-get update && apt-get upgrade

or

apt-get update && apt-get dist-upgrade

Other useful commands

Check dependencies

The missing dependencies can be checked with the following command:

apt-get check

Install missing dependencies

apt-get -f install

Delete downloaded packages

the downloaded *.deb files, which remain in /var/cache/apt/archives after the installation, can be deletes with following command:

apt-get clean

Search package

apt-cache search $package_name

or

apt-cache search . | grep $package_name

Remove packages

With the following command it's possible to remove one or several packages. Manually changed, or configuration files created by a package will remain on the dreambox.

sudo apt-get remove $package_name $package_name

Remove package with configuration files

sudo apt-get purge $package_name

Additional commands to remove a package

This command will remove packages, installed by other packages but no longer needed.

apt-get autoremove

To remove an installed package, and the corresponding dependencies.

apt-get autoremove $package_name

And finally, remove the installed package with configuration files and dependencies.

apt-get --purge autoremove $package_name

Download packages from software feed

apt-get download $package_name

Show installed packages

apt list --installed

Show available updates

apt list --upgradable

Show package information

apt show $package_name

Disable updates for a package

apt-mark hold $package_name

The following command resets the hold status.

apt-mark unhold $paketname

Tips and Tricks

Package architecture for local installations

Keep in mind, for each Enigma2 Dreambox type and used Openembedded Version (OE 2.2 / OE 2.5), 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.deb

OE 2.2

  • *.mipsel.deb for all Box types

OE 2.5

  • *.mipsel.deb for all Box types, except DM 900
  • *.armhf.deb for DM 900

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.

Wiki - Thread

This article belongs to this thread in the IhaD Board. Use this thread to report errors or to request improvements and additional items. Of course you can also edit the article, if you are registered in the wiki.