2007年12月3日 星期一

IPKG - the Itsy Package Management System

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

沒有留言:

 Ubuntu has a mechanism, that is, the installed network card (NIC) will be renamed to another name when the system is booted. Although there...