3 febootstrap - Bootstrap a basic Fedora system (like Debian debootstrap)
7 febootstrap [--options] REPO TARGET [MIRROR]
11 febootstrap fedora-10 /tmp/f10
12 febootstrap rawhide /tmp/rawhide
13 febootstrap rawhide /tmp/rawhide http://mymirror/rawhide/x86_64/os
14 febootstrap --groupinstall="Mail Server" fedora-10 /tmp/mailserver
18 febootstrap creates a Fedora root filesystem, based on the Fedora
19 version specified by I<REPO> under the directory specified by
20 I<TARGET>. Optionally I<MIRROR> can point to a local mirror
21 (otherwise the public Fedora mirrors are used). I<REPO> names are
22 C<fedora-I<VERSION>> (eg. C<fedora-10>) or C<rawhide>.
24 febootstrap does I<not> need to be run as root. If for some reason
25 you do run it as root, then it works slightly differently and may have
26 side effects such as stopping or starting system daemons.
28 For more advanced needs, take a look at L<mock(1)> and
31 The normal output is a root directory located at I<TARGET> and
32 a fakeroot logfile at C<I<TARGET>/fakeroot.log>.
40 =item B<--install=package>
44 =item B<--groupinstall="group">
46 Specify the package or group to install. To list multiple packages or
47 groups, you must give multiple C<-i> or C<-g> options. Group names
48 can contain spaces, so use quotes where necessary.
50 These are passed directly to C<yum install> or C<yum groupinstall>
51 commands, and thus any dependencies are also resolved by yum. You can
52 also use shell globs and filenames here, as with ordinary yum.
54 If no packages or groups are given, then we install the C<Core> group
55 which is the smallest working Fedora installation. Use C<yum
56 groupinfo Core> to list the packages currently in the C<Core> group.
62 You can list available repositories by visiting this URL:
64 L<http://mirrors.fedoraproject.org/mirrorlist?repo=help&arch=i386>
66 (If necessary replace C<i386> with your architecture, but it seems
67 unlikely that this list will change based on architecture).
69 =head1 FAKEROOT LOGFILE
71 When febootstrap is run as non-root (the normal case) we use fakeroot
72 so that yum thinks it is running as root. Fakeroot keeps track of
73 "real" file permissions in a log file which is saved into the target
74 directory as C<I<TARGET>/fakeroot.log>.
76 You can use the fakeroot logfile in a number of ways:
82 Run C<fakeroot -i fakeroot.log I<command>> in order to run a
83 command with the faked file permissions.
87 Generate an initramfs (compressed cpio) file containing the correct
88 permissions using the tool C<febootstrap-to-initramfs>.
92 Apply the permissions to the target directory using the tool
93 C<febootstrap-fix-root> (requires root).
97 =head1 COMPARISON TO debootstrap
99 febootstrap cannot do cross-architecture installs (C<debootstrap
100 --foreign>). The reason is that C<%pre> and C<%post> scripts cannot
101 run. It may be possible to defer running of scriptlets (which is
102 basically how debootstrap works), and patches to do this are welcomed.
104 febootstrap cannot do 32-on-64 bit installs. The reason is that
105 fakeroot and fakechroot do not load the correct preload library. This
106 is really a bug in fakeroot/fakechroot, which we think would be easy
107 to fix. (debootstrap deals with this case the same as for
108 C<--foreign> installs - see previous point).
110 =head1 OTHER RESTRICTIONS AND BUGS
112 Some C<%post> scripts do not run correctly. The most common case is
113 C</sbin/ldconfig>. Since this binary is statically linked, fakeroot
114 and fakechroot's LD_PRELOAD hack does not work, so effectively
115 ldconfig tries to update the system cache. You will see the following
118 /sbin/ldconfig: Can't create temporary cache file /etc/ld.so.cache~: Permission denied
120 This error is mostly harmless. Just run C</sbin/ldconfig> the first
121 time you boot into the newly created Fedora system.
123 Another error you will see is with C</usr/sbin/glibc_post_upgrade>
124 which is caused for the same reason - this binary is statically
125 linked. We have examined what this binary does, and it is not really
126 necessary for installs. If it makes you happier, you can run it the
127 first time you boot the new system.
129 febootstrap recreates the repository anew each time, and this causes
130 yum to download all the RPMs every time. This is very wasteful, and
131 we should provide a way to cache the repository.
135 L<http://et.redhat.com/~rjones/febootstrap>
139 L<febootstrap-to-initramfs(8)>,
140 L<febootstrap-fix-root(8)>,
149 L<http://fedoraproject.org/wiki/FedoraLiveCD/LiveCDHowTo>,
154 Richard W.M. Jones <rjones @ redhat . com>
158 (C) Copyright 2009 Red Hat Inc.,
159 L<http://et.redhat.com/~rjones/febootstrap>.
161 This program is free software; you can redistribute it and/or modify
162 it under the terms of the GNU General Public License as published by
163 the Free Software Foundation; either version 2 of the License, or
164 (at your option) any later version.
166 This program is distributed in the hope that it will be useful,
167 but WITHOUT ANY WARRANTY; without even the implied warranty of
168 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
169 GNU General Public License for more details.
171 You should have received a copy of the GNU General Public License
172 along with this program; if not, write to the Free Software
173 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.