Skip to content

Instantly share code, notes, and snippets.

@Nuc1eoN
Last active August 12, 2021 10:30
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Nuc1eoN/0468dece7d036a3580b070fe6e178431 to your computer and use it in GitHub Desktop.
Save Nuc1eoN/0468dece7d036a3580b070fe6e178431 to your computer and use it in GitHub Desktop.
GoboLinux Community Guide

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 017

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 Packaging

Introduction

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.

Tools

Compile

Note: For now execute Compile as a non-root user using sudo -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.

EditRecipe

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.

MakeRecipe

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/*.

NewVersion

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

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment