IPKG is a very lightweight package management system. It was designed for Linux installations with severe storage limitations such as handheld computers. iPKG is more than just an embedded Linux flash image builder, (although it does that fairly well). It also allows for dynamic installation/removal of packages on a running system.
iPKG is itsy in several ways:
The control programs themselves are small, (currently about 13kB)
– The installed meta-data tries to be only what is absolutely essential, (currently about 38kB for a 16MB compressed flash iPAQ distribution)
– The available packages are small. (The idea is that the package tree should be as fine-grain as possible. Much of this still needs some work)
Configuration Files
The /etc/ipkg.conf file controls the server from which ipkg-update and ipkg-get will pull package information and packages. As of Familiar v0.7 (ipkg 0.99.87) the configuration files are as follows:
A: /etc/ipkg.conf Defines destination locations and proxy settings (e.g. dest root /)
B: /etc/ipkg/familiar-ipaqsa.conf - Architectures listing.
C: /etc/ipkg/.conf Defines individual feed locations.
See the comments in ipkg.conf for more details.
How do I use it?
he ipkg program has many different sub-commands, (provided by the first command-line
argument in a manner similar to cvs).
Here is a current snapshot of the available commands:
usage: ipkg [options...] sub-command [arguments...]
where sub-command is one of:
Package Manipulation:
update Update list of available packages
upgrade Upgrade all installed packages to
latest version
install Download and install
(and dependencies)
install Install package
configure [] Configure unpacked packages
remove Remove package
flag ... Flag package(s)
(=hold|noprune|user|ok|installed|unpacked (one per invocation))
Informational Commands:
list List available packages and descriptions
files List all files belonging to
search Search for a package providing
info [pkg []] Display all/some info fields for or all
status [pkg []] Display all/some status fields for or all
download Download to current directory.
compare_versions (compare versions using <= < > >= = << >>)
print_architecture prints the architecture.
print_installation_architecture
whatdepends [-A] [pkgname|pat]+
whatdependsrec [-A] [pkgname|pat]+
whatprovides [-A] [pkgname|pat]+
whatconflicts [-A] [pkgname|pat]+
whatreplaces [-A] [pkgname|pat]+
Options:
-A Query all packages with whatdepends,
whatprovides, whatreplaces, whatconflicts
-V Set verbosity level to . If no value is
--verbosity provided increase verbosity by one. Verbosity levels:
0 errors only
1 normal messages (default)
2 informative messages
3 debug output
-f Use as the ipkg configuration file
-conf Default configuration file location
is /etc/ipkg.conf
-d Use as the the root directory for
-dest package installation, removal, upgrading.
should be a defined dest name
from the configuration file, (but can also
be a directory name in a pinch).
-o Use as the root directory for
-offline offline installation of packages.
-verbose_wget more wget messages
Force Options (use when ipkg is too smart for its own good):
-force-depends Make dependency checks warnings instead of
errors and install/remove package in spite offailed dependences
-force-defaults Use default options for questions asked
ipkg. (no prompts). Note that this will not
prevent package installation scripts from
prompting.
-force-reinstall Allow ipkg to reinstall a package.
-force-overwrite Allow ipkg to overwrite files from another
package during an install.
-force-removal-of-dependent-packages
-force_space Install even if there does not seem to be
enough space.
-noaction No action -- test only
-nodeps Do not follow dependences
-recursive Allow ipkg to remove package and all that
depend on it.
-test No action -- test only
-t Specify tmp-dir.
--tmp-dir Specify tmp-dir.
Examples:
Install the ftp program:
ipkg install ftp
Install from an url (ipkg version >=0.9):
ipkg install http://url/to/some/package.ipk
Perform a limited local "ipkgfind" (assuming you've already run ipkg update):
ipkg list|grep searchstring