GoboLinux 017, in its current iteration, is mainly a source-based distribution. That means you will compile most of your packages with the help of so called "Recipes".
The following sections will help you getting started.
Installing GoboLinux on a bare metal system should be as simple as fetching the latest ISO, burning/flashing it onto your favorite installation medium (e.g. using balenaEtcher), startx
and following the installation wizard. Just be aware that booting from a GPT/UEFI system is currently broken, and thus a legacy MBR setup is advised.
However most people may want to install GoboLinux in a virtual machine setup first. If you are one of those people, follow these instructions.
GoboLinux uses so called "Recipes" to fetch, compile and eventually install packages on your system. The official GoboLinux recipe Repository can be found under https://github.com/gobolinux/Recipes.
Tip: Use Github's
Go to file
functionality to easily search for existing recipes.
Alternatively you will find those same recipes in your local GoboLinux file system under /Data/Compile/Recipes/*
.
Notice, that those are synced with the above mentioned GoboLinux Github recipe database through git
:
$ cd /Data/Compile/Recipes/
$ git remote -v
origin https://github.com/gobolinux/Recipes.git (fetch)
origin https://github.com/gobolinux/Recipes.git (push)
Each recipe has its folder named after the package, with its corresponding version in a subfolder, e.g. .../Bash/5.0.0/*
.
If you make any changes to a Recipe, track your changes using git status
.
Note: For now execute
Compile
as a non-root user usingsudo -E
to prevent file ownership issues in your home directory. This convention goes for most other tools described in this section.
Compile
is GoboLinux native tool to fetch, compile and install packages. You can install a package as follows:
$ sudo -E Compile Bash 5.0.0
The version number is optional: If left blank Compile
will fetch the latest version found in the repositories.
Note: Before you start, set your favorite
$EDITOR
in~/.zshrc
We've already learned were to find our recipes, however typing long directory names can be tedious.
You can comfortably edit any recipe under /Data/Compile/Recipes/*
by utilizing EditRecipe
, without the need of typing prolonged directory names:
$ sudo -E EditRecipe Bash 5.0.0
If you do not specify a version number, EditRecipe
will always choose the latest package version.
This tool makes creating new recipes a bliss. Example Usage:
$ sudo -E MakeRecipe MyAwesomePackage 1.0.0 https://www.myawesomepackage.org/dl/map_1.0.0.tar.gz
Providing a version number is optional. MakeRecipe
will try to autodetect the version number from the url, but in some cases it might be necessary to specify it explicitly.
After the operation succeeds your will find your new recipe under /Data/Compile/Recipes/MyAwesomePackage/1.0.0/*
.
You already know how to conveniently create new packages using MakeRecipe
, however oftentimes you just want to update an existing recipe to the later version. The tool NewVersion
lets you elegantly re-use a previous recipe and bump its version number:
$ sudo -E NewVersion MyAwesomePackage 2.0.0 https://www.myawesomepackage.org/dl/map_2.0.0.tar.gz
Again the version number is optional, but might be a safer bet to provide.
ContributeRecipe
is an easy way to submit your new or updated recipes to GoboLinux upstream repository:
$ sudo -E ContributeRecipe MyAwesomePackage 2.0.0
After you go through the process, this will create a Pull Request on GitHub for review by the GoboLinux core team.