* '''Script Name Verification''': The installer checks for valid script names, such as dist-installer-cli, {{kicksecure_wiki |wikipage=VirtualBox/Installer |text=virtualbox-installer }}, {{project_name_short_lowercase}}-cli-installer-cli, {{project_name_short_lowercase}}-xfce-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 bullseye (oldstable): Enables the Debian backports and fasttrack repositories. *** For bookworm (stable): Same as above. *** For trixie (testing): Enables the Debian unstable repository and configures APT pinning to prefer packages from testing over unstable so only VirtualBox gets installed from unstable and no other dependency packages are unnecessarily pulled from unstable. *** For sid (unstable): Installs from Debian unstable repository. ** 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. ({{project_name_short}} 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]]. * '''Virtual Machine Handling''': ** For previously imported VMs, users are prompted to boot the virtual system(s). ** For previously downloaded VM files, authenticity and integrity checks are run. ** 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). * Inform user if VMs are already running and abort installation. '''Additional Features:''' * '''Download Resumption''': Utilizes rsync internally to enable download resumption capabilities. * '''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. * '''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 [https://github.com/{{project_name_short}}/usability-misc/blob/master/man/dist-installer-cli.1.ronn dist-installer-cli man page]. * '''Checks''': [[Nested Virtualization]], secure boot enabled check. '''Developer Information:''' * '''Source Code''': [https://github.com/{{project_name_short}}/usability-misc/blob/master/usr/bin/dist-installer-cli /usr/bin/dist-installer-cli], [https://github.com/{{project_name_short}}/usability-misc/blob/master/.github/workflows/builds.yml 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]]. {{header}} {{footer}} [[Category:MultiWiki]]