Hey guys! So this is subject to change, and I expect we'll update it frequently.

Current Status: Updated August 2024

If you just want to test a VM with Serpent OS and moss, have a look at the How to install Serpent OS guide.

If you want to test moss/boulder on a Linux distribution other than Serpent OS, this guide is for you.

Firstly, visit the moss repo and follow the instructions in the README.

You'll eventually end up with moss and a boulder binaries in ~/.local/bin and I'm giving @ermo permission to ghost-edit my instructions later πŸ™‚

Assuming you've now got moss:

user@host:~/repos/moss
$ cd ..
$ git clone https://github.com/serpent-os/img-tests
$ pushd img-tests && ./create-sosroot.sh

This will give you a fairly minimal root - with fat packages. Right now upgrade paths are not supported until announced otherwise.

Expect everything to be super rough

Boot it:

./boot-systemd-nspawn-container.sh

You'll be prompted to hit a button, enter locales and root password before you can log in:

Welcome to your new installation of Serpent OS 0.1.0 (fstx #1)!

Please configure your system!

-- Press any key to proceed --[  OK  ] Finished Flush Journal to Persistent Storage.
[  OK  ] Finished Rebuild Hardware Database.

β€£ Please enter system locale name or number (empty to skip, "list" to list options): 3
Selected 'en_GB.UTF-8'.
β€£ Please enter system message locale name or number (empty to skip, "list" to list options): 3
Selected 'en_GB.UTF-8'.
/etc/locale.conf written.

πŸ” β€£ Please enter a new root password (empty to skip): ***************
πŸ” β€£ Please enter new root password again: ***************
/etc/passwd written
/etc/shadow written.
[  OK  ] Finished First Boot Wizard.
(... lots of output ...)
[  OK  ] Finished Commit a transient machine-id on disk.

sosroot login: root
Password: 
root@sosroot # ~

Some quick commands:

# neofetch
# moss repo list
# moss repo update
# moss sync
# moss list installed
# moss list available
# moss help

To shut down a booted systemd-nspawn container, issue a poweroff command as root.

Good luck!

Known issues:

Impossible to login into the nspawn container
login: PAM failure, aborting: Critical error - immediate abort
Both with passwordless root and with password.

Fixed setup instructions. Running moss remote add and moss install with sudo when setting up the nspawn container will produce the error above.

A note, I found I had to update ldc, otherwise the moss build kept failing. Initially I just re-ran the command from the onboarding page (curl -fsS https://dlang.org/install.sh | bash -s ldc). However, I just visited their webpage, and I see we can simply run the following (probably old hat for y'all...)

~/dlang/install.sh update

UPDATE: Looks like there's two parts to the upgrade. You also need to update the path to activate in your shell configuration. For instance, .bashrc, you need to update the <version> part of this source ~/dlang/ldc-<version>/activate. Obviously you can just run this same command after an upgrade without reloading the shell.

Thought it might be useful for others. Perhaps it should be added to the documentation on the onboarding page as well?

πŸ˜ƒ

    SuperJC710e Thought it might be useful for others. Perhaps it should be added to the documentation on the onboarding page as well?

    I did so a few days ago by linking to your (excellent) post. 😁

      ermo Thanks ermo, glad to have a minuscule contribution to the awesome stuff you guys are creating! πŸ˜ƒ

      Hello, if I only have moss (I have plan to build it, tomorrow), can I perform bootstrap-like action ?

      Edit : I got it.

      2 months later

      I was having issues building using solbuild, in the end I was unable to get the onboarding to build at all.

      Trying to directly build moss, moss-container, and boulder also failed due to an issue with the FFLAGS and LD_AS_NEEDED variables.

      FFLAGS variable had a , which made the build fail, and the LD_AS_NEEDED option was incompatible.
      After correcting these issues moss, moss-container, and boulder successfully builds on Solus OS using solbuild.

      For those interested in the package.yml file it can be found at my GitHub Gist.

      3 months later
      ermo stickied the discussion .

      I've updated the guide in the OP to use the new onboarding/create-sosroot.sh script, which should take the tedium out of testing moss in a container.

      By default, it wipes the existing /var/lib/machines/sosroot/ directory and creates a fresh one.

      The intent is for onboarding/create-sosroot.sh to become the de-facto default test-container creation tool until further notice.

      Feedback welcome.

      8 months later

      We're gonna need to update this for moss-rs at some pointπŸ˜ƒ

      • ermo replied to this.
        a month later

        Ikey We're gonna need to update this for moss-rs at some pointπŸ˜ƒ

        Having now done the necessary leg work on the onboarding repo, imma get right on that.

        EDIT: ... aaaand done. I've successfully completed a full onboarding run, followed by running create-sosroot.sh from within the updated img-tests/ repo that now gets cloned as part of the onboarding run.

        Write a Reply...