rpmstrap - Bootstrap a basic RPM-based system
This project is dead. I no longer have any interest in maintaining it. You can still
technically use it, but you will need to update the suite scripts on your own (the framework still
works, the suite scripts are just outdated). Anyone interested in taking this project over, feel
free to grab the code and go for it.
(mirror 1 |
What is it?
rpmstrap is a tool for bootstrapping a basic RPM-based system. It is
inspired by debootstrap,
and allows you to build chroots and basic systems from RPM sources.
At present rpmstrap can build basic Fedora Core 2, Fedora Core 3,
Fedora Core 4, Yellowdog 4, CentOS 3, CentOS 4, Mandriva and Scientific Linux
systems. It also has support for custom RPM-based systems managed by
Why would I want it?
The best way to answer this is to give a couple of quick examples of its usage:
- You are developing an application which you want to test on Fedora Core 3, but
you are running Debian. Use rpmstrap to build a "heidelberg" chroot and you have
a scratch Fedora Core 3 which you can test your application in.
- You are running Xen and wish to run a CentOS 4 virtual server, however you do not want
to use the Anaconda installer. Use rpmstrap to bootstrap your virtual server.
- You have an application you wish to package cross-platform. You already have debootstrap for a Debian chroot,
but you don't have any for Fedora Core 3 or CentOS 4. Use rpmstrap to build chroots
for the two RPM distros in question and package your application inside them.
- You have a risky upgrade that could hose a production Fedora Core 2 server. You want to test the
upgrade to make sure nothing will go wrong (and, if it does, you want to know how to fix it).
Simply create a "tettnang" chroot using rpmstrap and configure it like your production Fedora
Core 2 server. Perform your upgrade inside the chroot, using it as a guinea pig.
- You wish to install CentOS 4 across a network on a system you do not have physical access to
but do have remote administrative access. SSH in, rpmstrap a CentOS 4 bootstrap
into a mounted filesystem, set the new boot preferences, and reboot.
How do I use it?
Usage: rpmstrap [OPTION]... 
Bootstrap RPM-based systems.
--arch set the target architecture (use if no uname)
[ --arch x86_64 ]
--download-only download packages, but don't perform installation
--delay insert a friendly delay in seconds between each
attempt to download an RPM
[ --delay .5 ]
--local-source specify a local source directory for RPMS
[ --local-source /home/sam/rpm ]
--pdk-source=A,B specify a PDK workspace and component to pull RPMs
[ --pdk-source=workspace/path/,component.xml ]
--print-rpms print the packages to be installed, and exit
--unpack-tarball acquire .rpms from a tarball instead of http
--strip-path when unpacking from tarball, use the strip path
(See the texinfo document for tar)
--list-suites list the available suites this program knows
--suite-notes show the notes associated with a specific suite
--find-best-mirror find the best mirror (warning VERY slow, may be
better to just use a slow mirror ;-)
--try-mirrors instead of just using the default mirror, try
sequentially all of the mirrors in the event of
--force force installation of RPMs even if there are
--ignorearch force installation of RPMs even if they are
for different architecture
--help display this help and exit
--include=A,B,C adds specified names to the list of base packages
--exclude=A,B,C removes specified packages from the list
--pre runs a script before the installation
[ --pre pre-install.sh ]
--post runs a script after the installation has completed
[ --post post-install.sh ]
--verbose run in verbose mode
Please note that, at present, not all options are supported. Some are planned.
Where do I get it?
The latest releases can always be found here:
How can I contribute?
The Hg repository can be found here: