source: germinate/trunk/fuentes/man/germinate.1 @ 1914

Last change on this file since 1914 was 1914, checked in by kbut, 5 years ago

update man

File size: 10.7 KB
Line 
1.Dd May 27, 2005
2.Os Ubuntu
3.ds volume-operating-system Ubuntu
4.Dt GERMINATE 1
5.Sh NAME
6.Nm germinate
7.Nd expand dependencies in a list of seed packages
8.Sh SYNOPSIS
9.Nm
10.Op Fl v
11.Op Fl S Ar source
12.Op Fl s Ar dist
13.Op Fl m Ar mirror
14.Op Fl d Ar dist Ns \&,...
15.Op Fl a Ar arch
16.Op Fl c Ar component Ns \&,...
17.Op Fl Fl vcs Ns = Ns Brq Li auto Ns | Ns Li bzr Ns | Ns Li git
18.Op Fl Fl no\-rdepends
19.Op Fl Fl no\-installer
20.Sh DESCRIPTION
21.Nm
22is a program to help with the maintenance of large software distributions.
23It takes a list of seed packages and a mirror of the distribution, and
24produces outputs with the seed packages and their dependencies and
25build-dependencies expanded out in full.
26.Ss Seeds
27The contents of the Ubuntu distribution, and others, are managed by means of
28.Em seeds .
29At their simplest, these are lists of packages which are considered
30important to have in the main component of the distribution, without
31explicitly listing all their dependencies and build-dependencies.
32.Pp
33Seed lists are typically divided up by category: a
34.Li base
35or
36.Li minimal
37seed might list the core set of packages required to make the system run at
38all, while a
39.Li desktop
40seed might list the set of packages installed as part of a default desktop
41installation.
42.Nm
43takes these seeds, adds their dependency trees, and produces an
44.Em output
45for each seed which contains a dependency-expanded list of package names.
46These outputs may be handed on to archive maintenance or CD-building tools.
47.Pp
48Some seeds may
49.Em inherit
50from other seeds: they rely on those seeds to be installed.
51For example, a
52.Li desktop
53seed will typically inherit from a
54.Li minimal
55seed.
56.Nm
57understands these inheritance relationships.
58If a package in the
59.Li desktop
60seed depends on
61.Sq foo ,
62but
63.Sq foo
64is already part of the
65.Li minimal
66seed or dependency list, then
67.Sq foo
68will not be added to the
69.Li desktop
70output.
71.Pp
72Seeds are stored in text files downloaded from a given URL.
73Lines not beginning with
74.Sq "\ *\ "
75(wiki-style list markup) are ignored.
76.Pp
77Seed entries may simply consist of a package name, or may include any of the
78following special syntax:
79.Bl -tag -width 6n
80.It %
81Seed entries beginning with
82.Sq %
83expand to all binaries from the given source package.
84.It [...]
85Seed entries may be followed with
86.Sq " [" Ns Ar arch1 Ar arch2 ... Ns \&]
87to indicate that they should only be used on the given architectures, or with
88.Sq " [!" Ns Ar arch1 No ! Ns Ar arch2 ... Ns \&]
89to indicate that they should not be used on the given architectures.
90.It (...)
91Seed entries in parentheses indicate that the seed should be treated as a
92recommendation of metapackages generated from this seed, rather than as a
93dependency.
94.It !
95Seed entries beginning with
96.Sq \&!
97cause the given package to be blacklisted from the given seed and any seeds
98from which it inherits; this may be followed by
99.Sq %
100as above to blacklist all binaries from the given source package.
101Note that this may result in uninstallable packages whose dependencies have
102been blacklisted, so use this feature sparingly.
103The purpose of a blacklist is to make it obvious when a package that is not
104supposed to be installed ends up in
105.Nm Ns 's
106output, so that package relationships can be fixed to stop that happening.
107It is not intended for the purpose of working around buggy package
108relationships, and attempts to do so will not work because
109.Ic apt
110has no way to know about blacklist entries in seeds.
111.It key: value
112Some seeds also contain headers at the top of the file, in
113.Dq key: value
114format.
115For the most part, these are not parsed by
116.Nm
117itself.
118The Ubuntu
119.Ic tasksel
120package uses keys beginning with
121.Sq Task\-
122to define fields of similar names in its
123.Pa .desc
124files.
125.Xr germinate\-update\-metapackage 1
126uses some of these headers to reduce the need for fragile configuration;
127see its documentation for further details.
128.El
129.Pp
130A
131.Pa STRUCTURE
132file alongside the seeds lists their inheritance relationships.
133It may also include lines beginning with
134.Sq include ,
135causing other collections of seeds to be included as if they were part of
136the collection currently being germinated, or lines beginning with
137.Sq feature ,
138which set flags for the processing of seeds.
139The only flag currently defined is
140.Sq follow\-recommends ,
141which causes
142.Nm
143to treat Recommends fields as if they were Depends.
144(Features may also be set on a per-seed basis using lines beginning with
145.Sq "\ *\ Feature:"
146in the seed file; here,
147.Sq no\-follow\-recommends
148is also supported to allow Recommends-following to be turned off for
149individual seeds.)
150.Ss Build-dependencies and Sq supported
151There is typically no need for a default desktop installation to contain all
152the compilers and development libraries needed to build itself from source;
153if nothing else, it would consume much more space.
154Nevertheless, it is normally a requirement for the maintainers of a
155distribution to support all the packages necessary to build that
156distribution.
157.Pp
158.Nm
159therefore does not add all the packages that result from following
160build-dependencies of seed packages and of their dependencies (the
161.Dq build-dependency tree )
162to every output, unless they are also in the seed or in the dependency list.
163Instead, it adds them to the output for the last seed in the
164.Pa STRUCTURE
165file, conventionally called
166.Li supported .
167.Pp
168Like any other seed, the supported seed may contain its own list of
169packages.
170It is common to provide support for many software packages which are not in
171the default installation, such as debugging libraries, optimised kernels,
172alternative language support, and the like.
173.Ss Outputs
174The output files are named after the seed to which they correspond.
175An additional output file is needed for supported, namely
176.Sq supported+build\-depends ,
177which contains the supported list and the build-depends lists of the other
178seeds all joined together.
179An
180.Sq all
181output is produced to represent the entire archive.
182.Pp
183Some other files are produced for occasional use by experts.
184See the
185.Pa README
186file for full details on these.
187.Sh OPTIONS
188.Bl -tag -width 4n
189.It Xo Fl v ,
190.Fl Fl verbose
191.Xc
192Be more verbose when processing seeds.
193.It Xo Fl S ,
194.Fl Fl seed\-source Ar source Ns \&,...
195.Xc
196Fetch seeds from the specified sources.
197The default is
198.Pa http://people.canonical.com/~ubuntu-archive/seeds/ ,
199or
200.Pa http://bazaar.launchpad.net/~ubuntu-core-dev/ubuntu-seeds/
201if the
202.Fl Fl vcs Ns = Ns bzr
203option is used, or
204.Pa git://git.launchpad.net/~ubuntu-core-dev/ubuntu-seeds/+git/
205if the
206.Fl Fl vcs Ns = Ns git
207option is used.
208You may use
209.Pa file://
210URLs here to fetch seeds from the local file system; for example, if your
211seeds are stored in
212.Pa /home/username/seeds/debian.unstable ,
213then you would use the options
214.Fl S Ar file:///home/username/seeds/
215.Fl s Ar debian.unstable .
216.It Xo Fl s ,
217.Fl Fl seed\-dist Ar dist
218.Xc
219Fetch seeds for distribution
220.Ar dist .
221The default is
222.Li ubuntu.xenial .
223.Pp
224When fetching seeds from git, the part after the rightmost
225.Sq \&.
226character, if any, is treated as the branch name to check out; this rather
227strange style is for backward compatibility.
228.It Xo Fl m ,
229.Fl Fl mirror Ar mirror
230.Xc
231Get package lists from
232.Ar mirror .
233The default is
234.Pa http://archive.ubuntu.com/ubuntu/ .
235May be supplied multiple times; the newest version of each package across
236all archives will win.
237.It Fl Fl source\-mirror Ar mirror
238Get source package lists from
239.Ar mirror .
240The default is to use package lists mirrors.
241May be supplied multiple times; the newest version of each source package
242across all archives will win.
243.It Xo Fl d ,
244.Fl Fl dist Ar dist Ns \&,...
245.Xc
246Operate on the specified distributions.
247The default is
248.Li xenial .
249Listing multiple distributions may be useful, for example, when examining
250both a released distribution and its security updates.
251.It Xo Fl a ,
252.Fl Fl arch Ar arch
253.Xc
254Operate on architecture
255.Ar arch .
256The default is
257.Li i386 .
258.It Xo Fl c ,
259.Fl Fl components Ar component Ns \&,...
260.Xc
261Operate on the specified components.
262The default is
263.Li main .
264.It Fl Fl vcs Ns = Ns Brq Li auto Ns | Ns Li bzr Ns | Ns Li git
265Check out seeds from a version control system rather than fetching them
266directly from a URL.
267Requires
268.Ic bzr
269or
270.Ic git ,
271as appropriate, to be installed.
272For
273.Ic bzr ,
274use the branch found at
275.Ar seed\-source Ns / Ns Ar seed\-dist ;
276for
277.Ic git ,
278remove the part after the rightmost
279.Sq \&.
280character of
281.Ar seed\-dist
282and use it as the branch name to check out from
283.Ar seed\-source Ns / Ns Ar remainder\-of\-seed\-dist .
284For
285.Ic auto ,
286guess the version control system to use from
287.Ar seed\-source
288(trying both in ambiguous cases) and then proceed as above.
289.It Fl Fl bzr
290Check out seeds from the
291.Ic bzr
292branch found at
293.Ar seed\-source Ns / Ns Ar seed\-dist
294rather than fetching them directly from a URL.
295Requires
296.Ic bzr
297to be installed.
298This option is deprecated and is retained for backward compatibility; use
299.Fl Fl vcs Ns = Ns bzr
300instead.
301.It Fl Fl no\-rdepends
302Disable reverse-dependency calculations.
303These calculations cause a large number of small files to be written out in
304the
305.Pa rdepends/
306directory, and may take some time.
307.It Fl Fl no\-installer
308Do not consider debian-installer udeb packages.
309While generally not the desired outcome, sometimes you might wish to omit consideration of installer packages when processing your seeds, perhaps if sending the output directly to the package manager on an already-installed system.
310.It Fl Fl seed\-packages Ar parent Ns / Ns Ar pkg Ns \&,...
311Treat each
312.Ar pkg
313as a seed by itself, inheriting from
314.Ar parent
315(i.e. assuming that all packages in the
316.Ar parent
317seed are already installed while calculating the additional dependencies of
318.Ar pkg ) .
319This allows the use of
320.Nm
321to calculate the dependencies of individual extra packages.
322For example,
323.Fl Fl seed\-packages Ar desktop Ns / Ns Ar epiphany\-browser
324will create an
325.Pa epiphany\-browser
326output file listing the additional packages that need to be installed over
327and above the
328.Ar desktop
329seed in order to install
330.Ar epiphany\-browser .
331.El
332.Sh BUGS
333The wiki-style markup in seeds was inherited from an early implementation,
334and is a wart.
335.Pp
336.Nm
337can sometimes be confused by complicated situations involving the order in
338which it encounters dependencies on virtual packages.
339Explicit entries in seeds may be required to work around this.
340.Pp
341Handling of installer packages (udebs) is complicated, poorly documented,
342and doesn't always work quite right: in particular, packages aren't demoted
343to the supported seed when they should be.
344.Sh AUTHORS
345.An Scott James Remnant Aq scott@canonical.com
346.An Colin Watson Aq cjwatson@canonical.com
347.Pp
348.An -nosplit
349.Nm
350is copyright \(co 2004, 2005, 2006, 2007, 2008
351.An Canonical Ltd .
352See the GNU General Public License version 2 or later for copying
353conditions.
354A copy of the GNU General Public License is available in
355.Pa /usr/share/common\-licenses/GPL .
Note: See TracBrowser for help on using the repository browser.