---
name: "rinse"
section: "8"
platform: "linux"
package: "rinse"
version: "4.2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/rinse"
---

# rinse(8)

RPM Installation Entity.

## NAME

rinse - RPM Installation Entity.

## 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.
```

## 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.

  ## 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.
```

## 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
```

## TODO

```
  Short of supporting more distributions or architectures there aren't
 really any outstanding issues.
```

## 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/
```

## 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.
