.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "RINSE 8" .TH RINSE 8 2024-02-17 4.2 "Perl Programmers Reference Guide" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME rinse \- RPM Installation Entity. .SH SYNOPSIS .IX Header "SYNOPSIS" .Vb 1 \& 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 \& .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. .Ve .SH OPTIONS .IX Header "OPTIONS" .IP "\fB\-\-arch\fR Specify the architecture to install. Valid choices are 'amd64', 'i386' or 'arm64' only." 8 .IX Item "--arch Specify the architecture to install. Valid choices are 'amd64', 'i386' or 'arm64' only." .PD 0 .IP "\fB\-\-add\-pkg\-list\fR Add a list of additional packages." 8 .IX Item "--add-pkg-list Add a list of additional packages." .IP "\fB\-\-cache\fR Specify whether to cache packages (1) or not (0)." 8 .IX Item "--cache Specify whether to cache packages (1) or not (0)." .IP "\fB\-\-cache\-dir\fR Specify the directory we should use for the cache." 8 .IX Item "--cache-dir Specify the directory we should use for the cache." .IP "\fB\-\-clean\-cache\fR Remove all cached .rpm files." 8 .IX Item "--clean-cache Remove all cached .rpm files." .IP "\fB\-\-directory\fR Specify the directory into which the distribution should be installed." 8 .IX Item "--directory Specify the directory into which the distribution should be installed." .IP "\fB\-\-distribution\fR Specify the distribution to be installed." 8 .IX Item "--distribution Specify the distribution to be installed." .IP "\fB\-\-help\fR Show help information." 8 .IX Item "--help Show help information." .IP "\fB\-\-mirror\fR Specify the URL of the mirror. Normally this is read from /etc/rinse/rinse.conf." 8 .IX Item "--mirror Specify the URL of the mirror. Normally this is read from /etc/rinse/rinse.conf." .IP "\fB\-\-list\-distributions\fR Show the distributions which are installable." 8 .IX Item "--list-distributions Show the distributions which are installable." .IP "\fB\-\-manual\fR Read the manual for this script." 8 .IX Item "--manual Read the manual for this script." .IP "\fB\-\-print\-uris\fR Only show the files we would download, don't actually do so." 8 .IX Item "--print-uris Only show the files we would download, don't actually do so." .IP "\fB\-\-verbose\fR Enable verbose output." 8 .IX Item "--verbose Enable verbose output." .IP "\fB\-\-version\fR Show the version number and exit." 8 .IX Item "--version Show the version number and exit." .PD .SH DESCRIPTION .IX Header "DESCRIPTION" .Vb 3 \& 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. .Ve .SH USAGE .IX Header "USAGE" .Vb 2 \& 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: .Ve .PP .Vb 1 \& rinse \-\-distribution alma\-9 \-\-arch amd64 \-\-directory /tmp/test .Ve .PP .Vb 2 \& 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: .Ve .PP .Vb 1 \& rinse \-\-distribution fedora\-core\-6 \-\-print\-uris .Ve .SH TODO .IX Header "TODO" .Vb 2 \& Short of supporting more distributions or architectures there aren\*(Aqt \& really any outstanding issues. .Ve .SH "ADDING NEW DISTRIBUTIONS" .IX Header "ADDING NEW DISTRIBUTIONS" To add a new distribution you need to .PP 1. Add a new package list to \f(CW\*(C`etc/DISTRIBUTION.packages\*(C'\fR .PP 2. Add a script to \f(CW\*(C`scripts/DISTRIBUTION/post\-install.sh\*(C'\fR Many of these are identical across releases, so symlinks work here. .PP 3. Add download mirrors to \f(CW\*(C`etc/rinse.conf\*(C'\fR .PP 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 \&\f(CW\*(C`DISTRIBUTION.packages\*(C'\fR file can be the output of .PP .Vb 3 \& dnf repoquery \-\-requires \-\-resolve \-\-recursive \-\-installed dnf | \e \& perl \-pe \*(Aqs/(.*)\-.*?\-.*?$/$1/g\*(Aq | \e \& sort \-u | egrep \-v \*(Aqglibc\-all\-langpacks|glibc\-langpack\-\*(Aq .Ve .PP This is more a developers attempt to generate a package list. .SH AUTHOR .IX Header "AUTHOR" .Vb 2 \& Thomas Lange https://visva.cs.uni\-koeln.de/team/lange \& Steve Kemp http://www.steve.org.uk/ .Ve .SH LICENSE .IX Header "LICENSE" Copyright (c) 2011\-2022 by Thomas Lange. All rights reserved. .PP Copyright (c) 2007\-2010 by Steve Kemp. All rights reserved. .PP 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.