ipkg package
Information on this package is covered here.
|
Package
|
Description
|
License
|
|
ipkg
|
The Itsy Package Manager
|
|
Summary
IPKG, or the Itsy(*) Package Management System, is a lightweight package management system designed specifically for use in Linux devices with limited storage. It is similar to RPMs and DPKGs. In fact, the iPKG file format is based on the Debian package management system (DPKG).
IPKG allows for addition, update or removal of packages on a running system. Like its larger cousins, it supports versioning, dependency tracking and conflict management.
IPKG is small in several ways:
- The control programs themselves are designed to be very small.
- The meta-data that is maintained on the device about both installed and available packages is limited to what is essential wherever possible.
- The packages themselves are stripped down to the bare minimum needed on an embedded device. This includes stripping binaries to remove unnecessary symbolic & debug information, as well as removing most of an application's documentation.
Itsy is the name of a prototype device produced as part of a research project at what is now the HP Western Research Lab to develop small, potentially even wearable, computing devices with enough processing power to enable applications such as speech recognition. See
http://research.compaq.com/wrl/projects/itsy/ for more information on this project.
Usage
Runtime Configuration
ipkg has a number of runtime configuration files. The most important of these in terms of defining the behavior of the tool is /etc/ipkg.conf.
This file contains definitions of the source(s) that are available for downloading packages, known as 'feeds' in ipkg parlance, and the destinations in the device file system where packages are installed. In most cases there will only be one destination, but depending on the application there could be several source feeds. Here is an example ipkg.conf file:
src stable http://support.devicescape.com/ipkgs/ixdpg425/stable
The format of the two lines is:
src <Name> <URI_to_feed>
dest <Name> <local_fs_path>
The source name is used internally to maintain a list of packages available to that source. The destination name can be used on the command line (see "Command Line Options: -d, -dest" below) to specify where the package should be installed.
The remaining files that ipkg maintains, all under /usr/lib/ipkg are:
status - Record of the current state of all installed packages
info/ - per-package tracking information
lists/ - per-feed list of available packages
None of these should be touched directly; they are maintained by ipkg.
Command Line Options
Syntax
ipkg [options...] sub-command [arguments...]
Options
|
Option
|
Description
|
|
-A
|
Query all packages with whatdepends, whatprovides, whatreplaces, whatconflicts.
|
|
-V <level>
--verbosity <level>
|
Set verbosity level to <level>. If no value is provided increase verbosity by one. Verbosity levels:
|
|
-f <conf_file>
|
Use <conf_file> as the ipkg configuration file
|
|
-conf <conf_file>
|
Default configuration file location is /etc/ipkg.conf
|
|
-d <dest_name>
-dest <dest name>
|
Use <dest_name> as the root directory for package installation, removal, upgrading. <dest_name> should be a defined dest name from the configuration file, (but can also be a directory name in a pinch).
|
|
-o <offline_root>
-offline <offline_root>
|
Use <offline_root> as the root directory for offline installation of packages.
|
|
-verbose_wget
|
More wget messages
|
Force Options
Use these force options use when ipkg is too smart for its own good.
|
Option
|
Description
|
|
-force-depends
|
Make dependency checks warnings instead of errors. Install/remove package in spite of failed dependences.
|
|
-force-defaults
|
Use default options for questions asked by 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 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 --tmp-dir
|
Specify tmp-dir.
|
Subcommands and Arguments
|
Subcommand [Arguments . . .]
|
Description
|
|
Package Manipulation Subcommands
|
|
update
|
Update list of available packages
|
|
upgrade
|
Upgrade all installed packages to latest version
|
|
install <pkg>
|
Download and install <pkg> (and dependencies)
|
|
install <file.ipk>
|
Install package <file.ipk>
|
|
configure [<pkg>]
|
Configure unpacked packages
|
|
remove <pkg|regexp>
|
Remove package <pkg|packages following regexp>
|
|
flag <flag> <pkg> ...
|
Flag package(s) <pkg> <flag>=hold|noprune|user|ok|installed|unpacked
(one per invocation)
|
|
Informational Subcommands
|
|
list
|
List available packages and descriptions
|
|
files <pkg>
|
List all files belonging to <pkg>
|
|
search <file|regexp>
|
Search for a package providing <file>
|
|
info [pkg|regexp]
|
Display all info for <pkg>
|
|
status [pkg|regexp]
|
Display all status for <pkg>
|
|
download <pkg>
|
Download <pkg> to current directory.
|
|
compare_versions <v1> <op> <v2>
|
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]+
|
Prints the installation architecture
|
Building the Package
ipkg is itself built as a package, and can be upgraded like any other package in the running system. Follow the regular instructions for building packages from source to build a new version of ipkg.
Follow standard instructions for building userspace packages in the Devicescape Developer Guide topic on "Building the Packages", see subtopic: "Building a Userspace Package from a Source RPM"
Getting More Information on ipkg
If want to learn more about the Itsy Package Management System (ipkg), there are a number of good places on the internet to look for more information. Here are some good sites:
Licensing
GPL2 (GNU General Public License, v.2)
Related Packages
Required
None
Suggested
None