{{Template:Articles}}<center><font color=red>''This article is based on original work from nix and edited by frontalot from www.linkstationwiki.org''</font></center>

+

{{Template:Articles|General|Ipkg|}}

−

+

<small><font color=red>This article is based on original work from nix and edited by frontalot from www.linkstationwiki.org</font></small>

== Overview ==

== Overview ==

−

−

''ipkg'' (officially iPKG) is a lightweight, simplistic package management system. A package management system does just that -- it manages precompiled software which has been bundled into modular, interdependent packages.

''ipkg'' (officially iPKG) is a lightweight, simplistic package management system. A package management system does just that -- it manages precompiled software which has been bundled into modular, interdependent packages.

−

''ipkg'' was originally designed for embedded systems such as the iPAQ but works equally well for small Linux systems such as the LinkStation. ipkg allows for dynamic installation/removal of software packages and dependency checking, much like Debian's dpkg system. The ipkg system is being used quite successfully by several embedded Linux hacking groups such as [http://www.openwrt.org OpenWRT] and [http://www.nslu2-linux.org NSLU2-Linux]. Documentation at the official [http://handhelds.org/moin/moin.cgi/Ipkg ipkg home page] is sparse and in some instances inaccurate. We will try to cover as much information as possible here.

+

''ipkg'' was originally designed for embedded systems such as the iPAQ but works equally well for small Linux systems such as the LinkStation. ipkg allows for dynamic installation/removal of software packages and dependency checking, much like Debian's dpkg system. The ipkg system is being used quite successfully by several embedded Linux hacking groups such as [http://www.openwrt.org OpenWRT] and [http://www.nslu2-linux.org NSLU2-Linux]. Documentation at the official ipkg home page is sparse and in some instances inaccurate. We will try to cover as much information as possible here.

=== Advantages ===

=== Advantages ===

Line 32:

Line 30:

== The Client ==

== The Client ==

−

[[Image:Bar.png|frame| '''Client Program Name'''<br> On some platforms the '''ipkg''' client program is named '''ipkg-cl'''

+

[[Image:Bar.png|frame| '''Client Program Name'''<br> On some platforms the '''ipkg''' client program is named '''ipkg-cl'''.

−

'''ipkg''' on the LS is controlled through a single client program, the appropriately named '''ipkg'''. It is used to install, remove, and manage packages. '''ipkg''' is capable of obtaining packages from a remote server called a [http://ipkg.linkstationwiki.net/ feed], similar to Debian's '''apt-get''' functionality. It can also install packages from a provided '''.ipk''' package file.]]

+

The ''ipkg'' system on the LS is controlled through a single client program, the appropriately named '''ipkg'''. It is used to install, remove, and manage packages. '''ipkg''' is capable of obtaining packages from a remote server called a [http://ipkg.nas-central.org/ feed], similar to Debian's '''apt-get''' functionality. It can also install packages from a provided '''.ipk''' package file.]]

[[Image:Bar.png|frame| '''ipkg documentation'''<br>Some ipkg commands and options are not properly documented here. This is due to the fact that ipkg in general comes without any documentation. To understand the exact working of some of the commands the study of the source code is required. Please add documentation for commands and options if you are becoming aware of their working. ]]

[[Image:Bar.png|frame| '''ipkg documentation'''<br>Some ipkg commands and options are not properly documented here. This is due to the fact that ipkg in general comes without any documentation. To understand the exact working of some of the commands the study of the source code is required. Please add documentation for commands and options if you are becoming aware of their working. ]]

Line 66:

Line 64:

;print_architecture:Prints the architecture

;print_architecture:Prints the architecture

;print_installation_architecture:?

;print_installation_architecture:?

−

;whatdepends ['''-A'''] [''pkgname''|''pat'']+:List all packages that depend on ''pkgname''

+

;whatdepends ['''-A'''] [''pkgname''|''pat''] :List all packages that depend on ''pkgname''

Contents

Overview

ipkg (officially iPKG) is a lightweight, simplistic package management system. A package management system does just that -- it manages precompiled software which has been bundled into modular, interdependent packages.

ipkg was originally designed for embedded systems such as the iPAQ but works equally well for small Linux systems such as the LinkStation. ipkg allows for dynamic installation/removal of software packages and dependency checking, much like Debian's dpkg system. The ipkg system is being used quite successfully by several embedded Linux hacking groups such as OpenWRT and NSLU2-Linux. Documentation at the official ipkg home page is sparse and in some instances inaccurate. We will try to cover as much information as possible here.

Advantages

The ipkg client and libraries are relatively small

The installed meta-data is minimal yet fully functional

Actively maintained

Well developed, active user base

Disadvantages

Limited features, e.g., extra scripts are required to set up users or groups

Documentation is limited and often outdated or inaccurate

Significant changes in development can cause incompatibilities between versions

Root access is generally required to build a package and to install a package

Limited control over owner, group, and access permissions of package contents

The Client

Client Program Name On some platforms the ipkg client program is named ipkg-cl. The ipkg system on the LS is controlled through a single client program, the appropriately named ipkg. It is used to install, remove, and manage packages. ipkg is capable of obtaining packages from a remote server called a feed, similar to Debian's apt-get functionality. It can also install packages from a provided .ipk package file.

ipkg documentationSome ipkg commands and options are not properly documented here. This is due to the fact that ipkg in general comes without any documentation. To understand the exact working of some of the commands the study of the source code is required. Please add documentation for commands and options if you are becoming aware of their working.

The Configuration Files

The configuration files control the server(s) from which ipkg update and ipkg get will pull package information and packages.
/etc/ipkg.conf Defines destination locations, feeds and global and proxy settings. Each line in the file is either a comment, an empty line (ignored), or consists of a configuration parameter. The following parameters are supported:

# comment

Comments

src feed-namefeed-url

Name and location of a feed.

dest dest-namedest-location

Installation destination name and directory.

option namevalue

Configuration options. Option names are:

http_proxy

Proxy to use for HTTP connections

ftp_proxy

Proxy to use for FTP connections

proxy_username

Proxy user name

proxy_password

Proxy password

offline_root

Root for offline installation, e.g. into some flash memory.

/etc/ipkg/feed-name.conf There isn't any official documentation for the contents of feed-name.conf files

/etc/ipkg/feed-name.conf

Defines feed-specific settings for the feed feed-name.

The Packages

The software packages are contained in special .ipk files. An .ipk file is a specially constructed ar archive (previous versions of .ipk files were gzipped tar archives, like .deb files - this is a discouraged but still supported format) containing three parts:

./data.tar.gz

Contains the actual files belonging to this package, organized as they should appear after installation

./control.tar.gz

Contains a file describing the package meta-data and any installation/removal scripts for the package

./debian-binary

This file is for comparability with Debian's package system and currently is ignored by ipkg