for Golang is a FUSE filesystem, easy to mount on any *nix machine, that provides a stable and reliable filesystem structures. Its main advantage is the stability of its structures.

Once the filesystem is mounted, the user will find all the binaries it needs in predetermined PATHs. It does not matter if the OS is a Debian or CentOS or Ubuntu or Fedora. All the binaries inside the /cvmfs/ will work and will load only internal dependencies.

It allows to easily and quickly distribute software all around the world in very heterogeneous systems providing to the users a read-only directory where the software is installed.

Today we announce our support for the Golang community.

We decide to distribute with all the Golang compilers, starting from go1.5.4 up to the latest beta go1.16beta1

We believe this will help both professional Golang developers and students or developers that are just approaching the language.

Distribution through will allow developer to try new and old version of the compiler without installing anything.

Getting started

The first step to use is to install the CVMFS client and the relative configuration.

Installation instruction are provided with the associate github repository.

After having installed CVMFS and it will be possible to access the global directory /cvmfs/ in your local *nix system.

In that directory the subdirectory golang/ will contains all the Golang compilers in golang/bin

The fastest way to use the repository for Golang is to source the setup script in the root of the repository:

source /cvmfs/

This will add /cvmfs/ to the local $PATH giving access to all the compilers.

Walkthrough with Asciinema

Below a walkthrough of /cvmfs/ with a focus on the golang tools provided.


Software distributed with CVMFS need to be first downloaded from the network.

This implies that we can have HUGE (in the order of Terabyte) repository, but the downside is that, the very first time we use a new tool, the download need to happens.

In the walkthrough above you can see the sensible difference between the very first invocation of the compilers that takes ~4 secs against the next invocations that are immediate.

A similar issue happens when compiling source code. Golang need access to its standard library. Hence, the first time you compile the software from it will take quite a bit more than the second or third time.

The internal cache of CVMFS is persistent in the filesystem, this means that even when you reboot your machine, the files already downloaded will be available.

Adding tools

More tools can be installed in to help the Golang community.

Feel free to requests those tools opening a github issue, or over twitter.


We publish new content each week, subscribe to don't miss any article.