- initial import of revision 374 from cnc
[apt.git] / contrib / apt-groupinstall / README
1 Lua script to allow installing and viewing package groups, determined by 
2 a backend script to allow it to work on arbitrary group-metadata formats.
3
4 This script must be plugged into the following APT script slots:
5
6     Scripts::AptGet::Command::
7     Scripts::AptCache::Command::
8     Scripts::AptGet::Help::Command::
9     Scripts::AptCache::Help::Command::
10
11 The backend script name must be specified with the configuration 
12 item Scripts::Groupinstall::Backend, the path is relative to the generic
13 scripts directory specified by Dir::Bin::scripts.
14
15 Additional configuration options which may or may not have any meaning to
16 the backend are:
17     Scripts::Groupinstall::Recursive (recursively process groups)
18     Scripts::Groupinstall::Show-Hidden (show normally hidden groups)
19     Scripts::Groupinstall::All-Packages (install optional packages as well)
20     Scripts::Groupinstall::DataPath (specify a path to group metadata)
21
22 Usage:
23     apt-cache groupnames - show all known groups
24     apt-cache showgroup <group> - show description and contents of group(s)
25     apt-get groupinstall <group> - install all packages belonging to a group(s)
26     apt-get groupremove <group> - remove all packages belonging to a group(s)
27
28 About the backend:
29
30 The backend is also compatible with Synaptic's task-support (new as of 
31 synaptic-0.53), provided that you set Synaptic::taskHelperProg configuration
32 item to whatever the path is to your backend script/program.
33
34 The supplied groupinstall-backend-comps.py is known to work in RHL 8.0, 9,
35 RHEL 3 and Fedora Core 1 and 2. Requires python, comps and
36 rhpl packages to be installed. 
37
38 There's also a backend for SuSe called groupinstall-backend-suse by 
39 Richard Bos which should work on any recent SuSe system with Yast.
40
41 Groupinstall can be made to work on any system where package group
42 data is available in some parseable format. You'll just need to write your
43 own backend for it, providing the following three operations
44
45 List all available groups:
46 <backend> --list-tasks
47 Show contents of given groups in a human-friendly format:
48 <backend> --task-desc <group1> [--task-desc <group2> ...]
49 List packages belonging to given groups, one package at a time (this is not
50 a user visible operation but is used internally by the script to determine
51 what packages to install/remove in groupinstall and groupremove operations)
52 <backend> --task-packages <group1> [--task-packages <group2> ...]
53
54 Additionally the backend must be capable of handling the following options
55 passed in before the actual groupnames, even if unimplemented (some options 
56 might not be relevant to a given system):
57 -h (show hidden groups)
58 -a (show/install/remove all packages beloging to group, not just default)
59 -r (recursively process groups)
60 -p <path> (pass in an arbitrary data path for the group metadata)
61 -t (show "terminal friendly" output instead of the way synaptic wants
62     the output formatted)
63
64 Licensed under the GPL, by pmatilai@welho.com / 2003-2004