1FEBOOTSTRAP(8)              Virtualization Support              FEBOOTSTRAP(8)
2
3
4

NAME

6       febootstrap - Bootstrap a basic Fedora system (like Debian debootstrap)
7

SYNOPSIS

9        febootstrap [--options] REPO TARGET [MIRROR]
10

EXAMPLES

12        febootstrap fedora-10 /tmp/f10
13        febootstrap rawhide /tmp/rawhide
14        febootstrap rawhide /tmp/rawhide http://mymirror/rawhide/x86_64/os
15        febootstrap --groupinstall="Mail Server" fedora-10 /tmp/mailserver
16

DESCRIPTION

18       febootstrap creates a Fedora root filesystem, based on the Fedora
19       version specified by REPO under the directory specified by TARGET.
20       Optionally MIRROR can point to a local mirror (otherwise the public
21       Fedora mirrors are used).  REPO names are "fedora-VERSION" (eg.
22       "fedora-10") or "rawhide".
23
24       febootstrap does not need to be run as root.  If for some reason you do
25       run it as root, then it works slightly differently and may have side
26       effects such as stopping or starting system daemons.
27
28       For more advanced needs, take a look at mock(1), "livecd-creator" and
29       thincrust.net's "appliance-creator".
30
31       The normal output is a root directory located at TARGET and a fakeroot
32       logfile at "TARGET/fakeroot.log".
33

OPTIONS

35       -i package
36       --install=package
37       -g "group"
38       --groupinstall="group"
39           Specify the package or group to install.  To list multiple packages
40           or groups, you must give multiple "-i" or "-g" options.  Group
41           names can contain spaces, so use quotes where necessary.
42
43           These are passed directly to "yum install" or "yum groupinstall"
44           commands, and thus any dependencies are also resolved by yum.  You
45           can also use shell globs and filenames here, as with ordinary yum.
46
47           If no packages or groups are given, then we install the "Core"
48           group which is a small working Fedora installation (but by no means
49           minimal).  Use "yum groupinfo Core" to list the packages currently
50           in the "Core" group.
51
52       --no-clean
53           Normally febootstrap will clean up the yum repository
54           ("/var/cache/yum" inside the image).  This contains the downloaded
55           RPMs and metadata.  However if you give the "--no-clean" option,
56           then the yum repository is left.  This is useful if you want to run
57           further yum commands inside the filesystem by hand.
58
59       -p "proxyurl"
60       --proxy="proxyurl"
61           URL to the proxy server that yum should use.
62
63       -u source
64       --updates=source
65           Pull in updates from an additional updates repository.  The
66           possible sources are:
67
68           -u "http://..." (a URL)
69               Get updates from the specific URL.
70
71           -u "updates-released-fN" (an updates repository name)
72               Get updates from the public mirrors of the named repository
73               (eg. "updates-released-f10").  See REPOSITORIES below.
74
75           -u "none" (default)
76               Don't add an updates repository.  This is the default.
77

REPOSITORIES

79       You can list available repositories by visiting this URL:
80
81       <http://mirrors.fedoraproject.org/mirrorlist?repo=help&arch=i386>
82
83       (If necessary replace "i386" with your architecture, but it seems
84       unlikely that this list will change based on architecture).
85

RUNNING EXTRA COMMANDS IN THE ROOT FILESYSTEM

87       If you want to run further commands inside the root filesystem, for
88       example additional "yum" installs, then use "febootstrap-run".  See the
89       febootstrap-run(8) manual page for more details.
90
91       You have to be careful about modifying files in the root filesystem
92       directly (without using "febootstrap-run").  It's easy to confuse
93       fakeroot and end up with the wrong permissions on files (see FAKEROOT
94       LOGFILE below).
95
96       "febootstrap-run" runs the command inside the root filesystem, which
97       means it won't normally have access to files outside the root.  You can
98       use "FAKECHROOT_EXCLUDE_PATH" environment variable (see fakechroot(1))
99       or copy files into the root first.
100
101   FAKEROOT LOGFILE
102       When febootstrap is run as non-root (the normal case) we use fakeroot
103       so that yum thinks it is running as root.  Fakeroot keeps track of
104       "real" file permissions in a log file which is saved into the target
105       directory as "TARGET/fakeroot.log".
106
107       This logfile is indexed by inode number, which makes certain operations
108       safe and other operations unsafe.  Files should be replaced only by
109       doing:
110
111        echo updated-content > old-file
112
113       (since that preserves the original inode).
114
115       Deleting files and then creating new ones (even with a different name)
116       is usually unsafe, because the new files might reuse inodes claimed by
117       the old files, and so appear with peculiar permissions (eg. unreadable,
118       or as a symbolic link).
119
120       Deleting files is also usually unsafe, although the reasons are more
121       subtle.  If you just use "rm" then the inode number is not deleted from
122       "fakeroot.log" which means it can be reused by another file later on.
123
124       In most cases it's usually safest to use "febootstrap-run".
125
126       You can use the fakeroot logfile in a number of ways:
127
128       ·   Use febootstrap-run(8) to run a command with the faked file
129           permissions.
130
131       ·   Use febootstrap-install(8) to install a file with permissions in
132           the root filesystem.
133
134       ·   Generate an initramfs (compressed cpio) file containing the correct
135           permissions using the tool "febootstrap-to-initramfs".
136
137       ·   Generate a supermin appliance using the tool
138           "febootstrap-to-supermin".
139
140       ·   Apply the permissions to the target directory using the forthcoming
141           tool "febootstrap-fix-root" (requires root).
142

RUNNING FEBOOTSTRAP AS ROOT

144       There is some rudimentary support for running "febootstrap" as root.
145       However it is not well-tested and generally not recommended.
146

COMPARISON TO DEBOOTSTRAP

148       febootstrap cannot do cross-architecture installs ("debootstrap
149       --foreign").  The reason is that %pre and %post scripts cannot run.  It
150       may be possible to defer running of scriptlets (which is basically how
151       debootstrap works), and patches to do this are welcomed.
152
153       febootstrap cannot do 32-on-64 bit installs.  The reason is that
154       fakeroot and fakechroot do not load the correct preload library.  This
155       is really a bug in fakeroot/fakechroot, which we think would be easy to
156       fix.  (debootstrap deals with this case the same as for "--foreign"
157       installs - see previous point).
158

OTHER RESTRICTIONS AND BUGS

160       The following programs are not run during %post scriptlets (because
161       they are all statically linked, and fakechroot cannot run statically
162       linked programs).
163
164       "/sbin/ldconfig" (from many packages)
165       "/usr/sbin/glibc_post_upgrade" (from "glibc")
166       "/usr/sbin/build-locale-archive" (from "glibc-common")
167       "/usr/sbin/libgcc_post_upgrade" (from "libgcc")
168
169       If you wish, you can run them the first time you boot into the new
170       machine.
171
172       febootstrap recreates the repository anew each time, and this causes
173       yum to download all the RPMs every time.  This is very wasteful, and we
174       should provide a way to cache the repository.
175

HOME PAGE

177       <http://people.redhat.com/~rjones/febootstrap>
178

SEE ALSO

180       febootstrap-to-initramfs(8), febootstrap-minimize(8),
181       febootstrap-run(8), febootstrap-install(8), febootstrap-to-supermin(8),
182       fakeroot(1), fakechroot(1), yum(8), rpm(8).
183

ALTERNATIVES

185       mock(1), <http://fedoraproject.org/wiki/FedoraLiveCD/LiveCDHowTo>,
186       <http://thincrust.net/>, debootstrap(8), "ubuntu-vm-builder".
187

AUTHORS

189       Richard W.M. Jones <rjones @ redhat . com>
190
192       (C) Copyright 2009 Red Hat Inc.,
193       <http://people.redhat.com/~rjones/febootstrap>.
194
195       This program is free software; you can redistribute it and/or modify it
196       under the terms of the GNU General Public License as published by the
197       Free Software Foundation; either version 2 of the License, or (at your
198       option) any later version.
199
200       This program is distributed in the hope that it will be useful, but
201       WITHOUT ANY WARRANTY; without even the implied warranty of
202       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
203       General Public License for more details.
204
205       You should have received a copy of the GNU General Public License along
206       with this program; if not, write to the Free Software Foundation, Inc.,
207       675 Mass Ave, Cambridge, MA 02139, USA.
208
209
210
211febootstrap-2.9                   2010-09-17                    FEBOOTSTRAP(8)
Impressum