Portál AbcLinuxu, 30. dubna 2025 23:03

AToL: Packages for embedded devices

23.3.2009 07:07 | Přečteno: 933× | Linux | Výběrový blog | poslední úprava: 20.3.2009 21:10

Author: Jaromír Dobiáš
Packages are nowadays the most usual way of installation of a new software in Unix-like operating systems. I would like to mention general properties of packages used by package management systems in this article. I would like to focus on description of basic properties of Ipk packages which are dedicated for embedded devices based on GNU/Linux.

1. Packages and package management systems

Packages might be nothing new for the most of you. They have become an ordinary part of modern Unix-like environments and many people get used to them as the most used way for the software installation. However not all of those people might be aware of what are the biggest pros of packages. Let us therefore have a look at what are the most essential advantages of packages in comparison with conventional ways of software installation in Unix-like operating systems.

1.1 What is the package ?

Term "package" denotes a simple file or set of several files which can be used for installation of a new software in Unix-like operating systems. There are two basic types of packages. First type, which is most widely spread today, uses structure where all the data, precompiled from the source codes, are included directly in the simple package file. Second type of packages, which is typical for Gentoo GNU/Linux distribution, uses another approach where package itself is used for coordination of download and compilation of source codes and subsequent deployment in the targeted system.

1.2 Advantages of packages

Data is recorder to desired locations of the file-structure of the targeted system during installation of a package. Package management systems store information about location of each particular file which is deployed to the system. Hence it is possible to easily seek out what files have been recorded and where, when installing a particular package. On the other hand this is not the case of conventional installation (e.g. using ./configure, make and make install). The system can be more transparent and better organized when packages are used as a resource of a data.

Another advantage of packages is that they usually consist of precompiled data, which has been compiled on a single machine prior to its' distribution. Installation of such packages is therefore much faster because we don't need to compile it separately in each targeted system.

Some packages can be rapidly smaller than the original source files which they were built from. This should be taken into consideration especially when Internet is the primary source for distribution of packages. In such a case packages can help us to save more time and bandwidth.

Package management systems take advantage of storing several packages in particular locations called "repositories". In advanced package management systems it is sufficient to set up one or possibly more URLs of desired repositories, where to take the packages from. The system is then able to synchronize the list of available packages with those repositories. The advantage is, that it's faster to find a specific package using repository than it is using ordinary search engines.

More advanced package management systems are capable of solving dependency issues. Those systems can provide automation of download and installation of additional packages which our packages relay on (typically libraries).

1.3 Pros and cons of packages

From the previous follows, that the main advantage of packages lies in reduction of time needed for installation of desired data. Packages allow us to have actualized programs, data and the system itself in a shorter time and with less effort when compared to native ways of installation.

On the other hand some problems might arise when using packages. Typical problem might occur when the application installed from package is not equipped with desired functionality as a result of not being compiled with certain parameter or switch (e.g. SSH daemon without pluggable authentication modules support). For such situation there usually exist tools which enables you to build your own package from the source codes. In some more specific cases it might be more desirable to install the application in an ordinary way without the help of packaging.

2. Ipk package format

Ipk is package format for Itsy Package Management System (IPKG). It is very lightweight format designated for embedded devices operating with Unix-like operating system. Ipk packages are used e.g. in smartphone devices working with Openmoko OS (GNU/Linux for mobile phones). We can use Ipk packages in some Linux-based WiFi routers as well (e.g. equipped with OpenWrt distribution).

2.1 Structure of the Ipk package format

Ipkg package is in fact just a simple tar or tar-gzip compressed file. When it is decompressed we can get 3 files of the package:

  1. ./control.tar.gz
    This file is compressed archive as well. It contains the main data (e.g. application, library, game etc.) which the package was made from. Data files from this archive are extracted and deployed to the targeted system during the installation of the package. Files are stored in prepared directory locations according to the final location in the targeted system.
  2. ./data.tar.gz
    This file is compressed archive as well. It contains the main data (e.g. application, library, game etc.) which the package was made from. Data files from this archive are extracted and deployed to the targeted system during the installation of the package. Files are stored in prepared directory locations according to the final location in the targeted system.
  3. ./debian-binary
    Last file included in the Ipk package archive is a simple text file which tells the version of a binary package. In the time of writing this article, the only content of this file is a string "2.0". This file is actually ignored by the Ipk package management system and has no impact on the package.

2.2 How to get the Ipk packages

There is a search engine dedicated for searching the Ipk packages available at http://ipkgfind.handhelds.org/. Generally holds that each embedded device architecture has its' own repository of packages created for that specific platform.

t is also possible to create packages on your own using the Ipkg-utils tool or by using the script ipkg-build.sh. In order to create your own package it is necessary to make the directory structure and fill it with the files according to the desired structure in the targeted system. When creating the package the structure of directories should be created in some particular directory which represents the root of the file-system tree of the targeted system. It is necessary to create subdirectory called CONTROL in this root representative and subdirectory CONTROL should contain a file called control in it. As mentioned before, control is a meta-data file which has several attributes describing the package. Each attribute is on a single line and their names and meanings are the following:

Additional attributes are optional in the file control and does not have to exist there by default:

3. Summary

Packages and package management systems are fast and effective way for installation and upgrade of data in Unix-like environment. In this article, I tried to point out the main advantages of packages and I tried to emphasize their role in Linux-based systems of embedded devices. When talking about embedded devices it is necessary to keep in mind their memory and performance limitations above all. Therefore functionality of the software installed to such devices must be reduced.

4. Resources

       

Hodnocení: 56 %

        špatnédobré        

Anketa

How do you rate this article?
 (0 %)
 (82 %)
 (18 %)
Celkem 17 hlasů

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

Grunt avatar 23.3.2009 20:53 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: AToL: Packages for embedded devices
Odpovědět | Sbalit | Link | Blokovat | Admin

Zrovna se chystám kompilovat nějaké balíčky pro OpenWRT, takže díky za článek.

BTW: Hodilo by se to i do Wikiny jakožto nějaký úvod.

Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
=^..^= AmigaPower® avatar 24.3.2009 15:33 =^..^= AmigaPower® | skóre: 30 | blog: BLB | Praha
Rozbalit Rozbalit vše Re: AToL: Packages for embedded devices
Odpovědět | Sbalit | Link | Blokovat | Admin
Začnu psát zápisky korejsky...
I♥DRX * www.KERNELULTRAS.org

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.