rinse - RPM Installation Entity.
Contents
Adding New Distributions
To add a new distribution you need to
1. Add a new package list to "etc/DISTRIBUTION.packages"
2. Add a script to "scripts/DISTRIBUTION/post-install.sh"
Many of these are identical across releases, so symlinks work here.
3. Add download mirrors to "etc/rinse.conf"
Package lists tend to be very similar across different releases in a distro, but not identical. A way to
make these lists is to obtain an existing install of a distro, and follow the dependency tree of the
packaging utilities. A "DISTRIBUTION.packages" file can be the output of
dnf repoquery --requires --resolve --recursive --installed dnf | \
perl -pe 's/(.*)-.*?-.*?$/$1/g' | \
sort -u | egrep -v 'glibc-all-langpacks|glibc-langpack-'
This is more a developers attempt to generate a package list.
Description
rinse is a simple script which is designed to be able to install
a minimal working installation of an RPM-based distribution into
a directory.
The tool is analogous to the standard Debian GNU/Linux debootstrap
utility.
License
Copyright (c) 2011-2022 by Thomas Lange. All rights reserved.
Copyright (c) 2007-2010 by Steve Kemp. All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl
itself. The LICENSE file contains the full text of the license.
4.2 2024-02-17 RINSE(8)
Name
rinse - RPM Installation Entity.
Options
--arch Specify the architecture to install. Valid choices are 'amd64', 'i386' or 'arm64' only.
--add-pkg-list Add a list of additional packages.
--cache Specify whether to cache packages (1) or not (0).
--cache-dir Specify the directory we should use for the cache.
--clean-cache Remove all cached .rpm files.
--directory Specify the directory into which the distribution should be installed.
--distribution Specify the distribution to be installed.
--help Show help information.
--mirror Specify the URL of the mirror. Normally this is read from /etc/rinse/rinse.conf.
--list-distributions Show the distributions which are installable.
--manual Read the manual for this script.
--print-uris Only show the files we would download, don't actually do so.
--verbose Enable verbose output.
--version Show the version number and exit.
Synopsis
rinse [options]
Help Options:
--help Show help information.
--manual Read the manual for this script.
--version Show the version information and exit.
Mandatory Options:
--arch Specify the architecture to install.
--directory The directory to install the distribution within.
--distribution The distribution to install.
Customization Options:
--add-pkg-list Additional packages to download and install
--after-post-install Additionally run the specified script after
the post install script.
--before-post-install Additionally run the specified script before
the post install script.
--post-install Run the given post-install script instead of the
default files in /usr/lib/rinse/$distro
Misc Options:
--cache Should we use a local cache? (Default is 1)
--cache-dir Specify the directory we should use for the cache.
--clean-cache Clean our cache of .rpm files, then exit.
--config Specify a different configuration file.
(Default is /etc/rinse/rinse.conf)
--pkgs-dir Specify a different directory containing
<distribution>.packages files.
--mirror Specify the URL of the mirror.
(Default is to read it from /etc/rinse/rinse.conf)
--list-distributions Show installable distributions.
--print-uris Only show the RPMs which should be downloaded.
default files in /usr/lib/rinse/$distro
--verbose Enable verbose output.
Todo
Short of supporting more distributions or architectures there aren't
really any outstanding issues.
Usage
To use this script you will need to be root. This is required
to mount /proc, run chroot, and more.
Basic usage is as simple as:
rinse --distribution alma-9 --arch amd64 --directory /tmp/test
This will download the required RPM files and unpack them into
a minimal installation of Fedora Core 6.
To see which RPM files would be downloaded, without actually
performing an installation or downloading anything, then you
may run the following:
rinse --distribution fedora-core-6 --print-uris
