summary refs log tree commit diff
path: root/Documentation/getting-spectrum.adoc
blob: b422a948230bc39afe8f6b04ff43d40ab9c72cc4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
= Getting Spectrum
:page-parent: Tutorials

// 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/[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 an installer

[source,shell]
----
git clone https://spectrum-os.org/git/spectrum
nix-build spectrum/img/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: Spectrum is not yet suitable for real-world use.  Do not use
your Spectrum system for anything important or sensitive.  Spectrum is
currently missing many important security properties, and there is no
procedure for updating to new versions of Spectrum -- you have to
reinstall.