= Getting Spectrum
:page-parent: Build and Run
:page-nav_order: 2

// SPDX-FileCopyrightText: 2022 Alyssa Ross <hi@alyssa.is>
// SPDX-License-Identifier: GFDL-1.3-no-invariants-or-later OR CC-BY-SA-4.0

To get Spectrum, you need to build it from source.  As long as you're
running Linuxfootnote:[Building from other operating systems might
work, but hasn't been tested.  Patches are welcome to support building
from other operating systems, as long as they're not too invasive.]
and have https://nixos.org/download.html[Nix] and https://git-scm.com/[git]
installed, it's very easy to do.

TIP: Before you start, consider setting up the
xref:binary-cache.adoc[Spectrum binary cache], which will save you a
lot of time waiting for builds.

== Trying Spectrum

If you want to try Spectrum out to get a feel for it, without
installing it, you can run it in a development VM with some example
applications.

[source,shell]
----
git clone https://spectrum-os.org/git/spectrum
git clone https://github.com/NixOS/nixpkgs
git clone -b rootfs --reference nixpkgs \
  https://spectrum-os.org/git/nixpkgs nixpkgs-spectrum
cd spectrum/host/rootfs
nix-shell -I nixpkgs=../../../nixpkgs-spectrum --run 'make run'
----

This builds just enough of Spectrum to try it out in a VM, but it will
still take a very long time.

== Building Installer

[source,shell]
----
git clone https://spectrum-os.org/git/spectrum
nix-build spectrum/release/combined \
  -I nixpkgs=https://spectrum-os.org/git/nixpkgs/snapshot/nixpkgs-rootfs.tar.gz
----

If you haven't set up the xref:binary-cache.adoc[binary cache], this
will take a very long time.  When it's done, a symbolic link named
"result" will appear, pointing to a Spectrum USB installer image.

CAUTION: Do not use Spectrum for anything important or sensitive as it is not
yet suitable for real-world use.  Many important security properties are
currently missing, and there is no procedure for updating to
new versions—you have to reinstall the OS.
