71 lines
2.9 KiB
Markdown
71 lines
2.9 KiB
Markdown
|
# Checking out blendOS
|
||
|
|
||
|
blendOS is self-described as "Arch Linux, made declarative, immutable and atomic." And yeah, that's a pretty good description of what it is. But you can never *really* tell what a distro is like without trying it, so...
|
||
|
|
||
|
## Installation
|
||
|
|
||
|
I decided to just run blendOS in a virtual machine; I had a bunch of data I hadn't backed up yet and was actively working on, and didn't feeling like switching yet given I had no experience with blendOS v4[^1] - I've actually tried blendOS v3 before, back when v4 was in alpha, but it had practically zero documentation, not even `man` pages, so I gave up on it very quickly. But with v4, hopefully it's improved since then.
|
||
|
|
||
|
## First use
|
||
|
|
||
|
Upon first boot, blendOS drops you into a pretty standard GNOME session, on account of the `/system.yaml` file by default:
|
||
|
|
||
|
```yaml
|
||
|
impl: http://github.com/blend-os/tracks/raw/main
|
||
|
repo: https://pkg-repo.blendos.co
|
||
|
track: default-gnome
|
||
|
```
|
||
|
|
||
|
At first I wasn't sure what impl is doing, but it seems to be combined with the track to get the URL for the raw `yaml` file[^1].
|
||
|
|
||
|
This is actually a really interesting bit *which isn't documented*, as it means you can just, say, host your own track(s) for all your computers in a Git repo, and they can each inherit from other configs[^2] or be overridden locally; this actually seems like a very interesting and viable way to centrally manage many computers running Linux, and given I'm constantly switching between several computers; I can just put my config(s) in one repo, and pull from that.
|
||
|
|
||
|
## Configuration
|
||
|
|
||
|
blendOS's configuration is really simple:
|
||
|
|
||
|
```yaml
|
||
|
impl: http://github.com/blend-os/tracks/raw/main
|
||
|
repo: https://pkg-repo.blendos.co
|
||
|
track: default-gnome
|
||
|
|
||
|
arch-repo: 'https://repo-goes-here.example'
|
||
|
|
||
|
packages:
|
||
|
- 'fish'
|
||
|
|
||
|
aur-packages:
|
||
|
- 'EVEN-MORE-FISH'
|
||
|
|
||
|
services:
|
||
|
- 'service-goes-here'
|
||
|
|
||
|
user-services:
|
||
|
- 'user-service-goes-here'
|
||
|
|
||
|
package-repos:
|
||
|
- name: 'repo name'
|
||
|
repo-url: 'https://repo.url'
|
||
|
|
||
|
commands:
|
||
|
'echo hiiiiiii > /home/user/helloooooo'
|
||
|
```
|
||
|
|
||
|
It's quite basic, but blendOS actually works very well for me; I already have a Git repo of [all my configs](https://git.askiiart.net/askiiart/configs), which are intended to be run from a clean installation automatically, so for blendOS I just have to put those scripts into the yaml file and adapt it so the packages are listed in the YAML rather than being installed with `pacman` or `yay`.
|
||
|
|
||
|
## Problems
|
||
|
|
||
|
Biggest of all blendOS's problems is how slow it is to rebuild. It doesn't save "layers" of packages like [`rpm-ostree`](https://github.com/coreos/rpm-ostree) (as used by Fedora atomic)
|
||
|
|
||
|
## Wishlist
|
||
|
|
||
|
## Sources
|
||
|
|
||
|
- \[1\] [blendOS homepage](https://blendos.co/)
|
||
|
- \[2\] [blendOS post-install intro](https://blendos.co/install/post-install/intro/)
|
||
|
|
||
|
## Footnotes
|
||
|
|
||
|
- [^1] That is, `http://github.com/blend-os/tracks/raw/main` + `/` + `default-gnome` + `.yaml`
|
||
|
- [^2] In the provided `blend-os/tracks` repo, `default-gnome` actually inherits from the `gnome` track.
|