Using GoLand on Fedora Silverblue

maxwellk

Keith Maxwell

Posted on April 10, 2020

Using GoLand on Fedora Silverblue

I could find very little information online about running JetBrains GoLand on Fedora Silverblue. I hope this post will change that. I have tested the instructions below with the latest version, 2020.1released yesterday — and the previous version 2019.3.4 both on Fedora Silverblue 30.

Using Fedora Silverblue as a desktop operating system means that “every installation is identical to every other installation of the same version”. I am a very happy Fedora Silverblue user; last year I gave a talk explaining why.

Why GoLand?

I normally try to use open source rather than proprietary software wherever possible. I am a long term vim user. Saying that, I also actively try to stay open minded about technology. In the end, I decided to try out GoLand because:

  • it was widely endorsed at Belfast Gophers
  • a lot of people I respect from SoCraTes UK are JetBrains fans
  • a recent coding test / interview involved pairing with a developer using another JetBrains product; a bit of exposure to JetBrains can only help in that sort of situation
  • I've already got a licence, from a Legacy Code Retreat event in 2019; the first year of a GoLand licence normally costs £149.00.

Installation process

On Fedora Silverblue the root filesystem is immutable although certain mutable directories are made available from /var. On another system I would install into /opt, to follow the Filesystem Hierarchy Standard. On Fedora Silverblue /opt is a symbolic link to /var/opt so I'll install there. I also add a link to the PATH; /usr/local/bin is writable via /var/usrlocal which is mounted at /usr/local.

version=2020.1
sudo mkdir /var/opt/goland
cd /var/opt/goland
sudo chown "$LOGNAME:$LOGNAME" .
curl -OL https://download.jetbrains.com/go/goland-$version.tar.gz
curl -O https://download.jetbrains.com/go/goland-$version.tar.gz.sha256
sha256sum -c goland-$version.tar.gz.sha256
tar xf goland-$version.tar.gz
cd GoLand-$version/bin
sudo ln -s "$PWD/goland.sh" /var/usrlocal/bin

Alt-F2 then goland.sh⏎ should start GoLand!

Next up activate your licence. Then use the UI to download an SDK ( File → Settings → GOROOT ); this happens in the background. I chose 1.13.8 to match the current version in Alpine Linux edge. After that I was all set; I started working through “The Hitchhiker's Guide to GoLand”.

Debugging

If you have an issue it might help to see messages printed to a terminal; instead at the same terminal as above try: ./goland.sh⏎. At first I was connected via SSH without $DISPLAY set properly.

Why did this need a blog post?

Fedora Silverblue is an immutable desktop operating system. The recommended methods for running GUI software include Flatpaks and or other containers using toolbox or even Podman directly. It is also possible to layer or install traditionally packaged applications with rpm-ostree but that introduces differences between one system and the next.

My early research didn't show a straight forward answer. The possibilities I came across included: an unofficial container, the official snap that JetBrains publish or even using an AppImage. No Flatpak is available. Snaps are more common on Ubuntu, on Fedora Silverblue the background service would have to be installed first: either inside a container or as a layer with rpm-ostree.

I should probably have jumped into trying this out practically more quickly. The JetBrains installation guide doesn't give much detail about this approach, but the files are clearly linked from the JetBrains Linux download page.

This isn't the perfect installation method but a set of compromises; one disadvantage is that it doesn't provide a launcher. While I knew there would be compromises, I wanted to:

  1. Avoid changing the base Fedora Silverblue system with rpm-ostree
  2. Avoid a complicated setup that includes manually installed dependencies
  3. Use a supported, official method

In the end I didn't have to compromise on these three points. The process of writing out and ordering the potential compromises for someone else to follow helped me to prioritise the order in which I investigated options.


Installing GoLand under Fedora Silverblue was easier than I expected. I wonder what other surprises I will find now I have GoLand up and running.

💖 💪 🙅 🚩
maxwellk
Keith Maxwell

Posted on April 10, 2020

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related