logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

rinse - RPM Installation Entity.

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.

Author

        Thomas Lange https://visva.cs.uni-koeln.de/team/lange
        Steve Kemp http://www.steve.org.uk/

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

See Also