* '''Script Name Verification''': The installer checks for valid script names, such as dist-installer-cli, {{kicksecure_wiki
|wikipage=VirtualBox/Installer
|text=virtualbox-installer-cli
}}, {{project_name_short_lowercase}}-cli-installer-cli, {{project_name_short_lowercase}}-lxqt-installer-cli.
* '''Command-Line Parsing''': It parses any command-line options provided.
* '''System Requirements Check''': The installer assesses if the system meets prerequisites like adequate disk space, RAM, and virtualization support. Users are informed if any of these criteria aren't met.
* '''Package Installation''': Necessary packages for the script's operation, like signify, curl, rsync, and vboxmanage (for VirtualBox users) are installed using the distribution's package manager (APT or DNF).
* '''Repository Settings''':
** Debian and Derivatives:
*** For bookworm (oldstable): Enables the Debian backports and fasttrack repositories.
*** For trixie (stable): Enables the virtualbox.org (Oracle) repository.[
This is because Debian Trixie's ]fasttrack repository does not have VirtualBox yet, and Debian Sid's build of VirtualBox is not compatible with Trixie any longer.
*** For sid (unstable): Installs from Debian unstable repository.
** Ubuntu: Installs from the Ubuntu repository. [
Might sound complicated but it's actually quite simple in case of Ubuntu. Install from the usual, "normal", official ]packages.ubuntu.com. From the usual suite. For example, if using suite jammy, it installs from jammy. This is because [https://packages.ubuntu.com/search?keywords=virtualbox Ubuntu is packaging VirtualBox] for their usual stable suites. Debian doesn't. That's why Ubuntu does not require any special repository. (Debian required backports and fasttrack repositories at time of writing.)
** Fedora and Derivatives: Enables the virtualbox.org (Oracle) repository.
** Updates: The preferred repository for VirtualBox installation may vary in the future based on availability. Updated installers might fetch VirtualBox from the Debian fasttrack repository, virtualbox.org (Oracle) repository, or the {{Kicksecure}} repository. development discussion: [https://forums.whonix.org/t/whonix-virtualbox-integration-and-upgrades/11705 VirtualBox Integration and Upgrades])
* '''Version Querying''': If no version is specified via command line, the {{project_name_short}} version number is fetched using the [[API]]. (Only if installing {{project_name_short}}.) (Not for virtualbox-installer-cli. [
Because that is not required if only installing VirtualBox using ]virtualbox-installer-cli.)
)
* '''VirtualBox Configuration''': System configuration is automatically added to prevent VirtualBox from conflicting with KVM, without breaking functionality for either VirtualBox or KVM.
* '''Virtual Machine Handling''':
** For previously imported VMs, users are prompted to boot the virtual system(s). (Not for virtualbox-installer-cli. .)
** For previously downloaded VM files, authenticity and integrity checks are run. (Not for virtualbox-installer-cli. .)
** For first-time users, the installer downloads the required files, conducts authenticity and integrity checks, imports the system(s), and then attempts to start the Virtual Machine(s). (Not for virtualbox-installer-cli. .)
* Inform user if VMs are already running and abort installation. (Not for virtualbox-installer-cli. .)
'''Additional Features:'''
* '''Download Resumption''': Utilizes rsync internally to enable download resumption capabilities.
* '''Download from Oracle Repository''': When using --oracle-repo command line option, downloads VirtualBox from Oracle repository. This is the default for Fedora-based distributions. It's optional for Debian-based ones (including Ubuntu) but may be set by developers in the future if the Debian repository discontinues the VirtualBox package. The Oracle repository might at times provide a newer VirtualBox version.
* '''Digital software signature verification:''' Uses APT (which verifies digital software signatures). When using the --oracle-repo, installs Oracle's repository and signing key.
* '''Integrity Checking''': Offers a streamlined integrity verification process, facilitated by rsync.
* '''Onion Support''': Allows for downloads from onion sources with the --onion command line option whenever possible. (For example Oracle does not provide an onion repository.)
* '''Default Download Directory''': Files are saved in the ~/dist-installer-cli-download folder.
* '''Logging Mechanics''': For transparency, every command executed is logged in the download directory, accompanied by the specific script version used at the time.
* '''Transparent System Modifications''': The installer’s operations are evident to the user. All persistent system alterations, especially those executed with administrative ("root") privileges, are prominently detailed in the installer's output.
* '''Documentation''': Comprehensive details can be found in the {{Github_link|repo=usability-misc|path=/blob/master/man/dist-installer-cli.1.ronn|text=dist-installer-cli man page}}.
* '''Checks''': [[Nested Virtualization]], secure boot enabled check.
'''Developer Information:'''
* '''Source Code''': {{Github_link|repo=usability-misc|path=/blob/master/usr/bin/dist-installer-cli|text=/usr/bin/dist-installer-cli}}, {{Github_link|repo=usability-misc|path=/blob/master/.github/workflows/builds.yml|text=Continuous Integration Testing .github/workflows/builds.yml}}
* '''Development Wiki Page''': [[Dev/Linux Installer]]
* '''Development Discussion''': [https://forums.whonix.org/t/whonix-linux-installer-development-discussion/15917 forums discussion]
* '''Security''': The dist-installer-cli script is not intended for curl bash piping. However, for a comprehensive discussion on security concerns related to this topic, see [[Dev/curl_bash_pipe|here]].
= Footnotes =
{{header}}
{{footer}}
[[Category:MultiWiki]]