How to Install Hugo Extended on Linux ARM

If you want something done right, you gotta do it yourself.

When VBOX4 died on me back in August, I decided to replace it with a Raspberry Pi. It’s got all the power I need, and it’s very easily replaceable, which makes it pretty much perfect as a low traffic home server.

It turned out, however, that the Pi’s ARM CPU was a bit of a problem when I tried to install the extended version of Hugo. The package in Ubuntu’s APT repository lagged behind the Hugo release cycle. The Canonical Snap package was up to date, but it didn’t play along because I’d moved the server’s home-directory to a non-standard location. And for some weird reason, no ARM package with the extended version of Hugo is built when it’s released.

The only option then was to compile the software myself from source, but going down that route can be both frustrating and time consuming. Luckily, this is the internet, and there is always someone, somewhere out there who has stumbled across your exact problem and solved it. My saviour was Apoovr Mote on the Hugo forums.

The rest of this post is pretty much just copypasta of his solution, but I’m posting it here as a signal boost for other people who need to install Hugo extended on Linux ARM.

Install Hugo Extended on Linux ARM

First, open a command line terminal on the server you want to install Hugo extended. Then, install packages necessary to unpack and build the source.

sudo apt-get install build-essential unzip

Download and install the required version of the Go programming language. Installing the latest version will probably do it. This can be done by following the official documentation.

When Go is installed, download the source package ( of the Hugo version you want to install from the Hugo releases page.

And off we go with some command line magic:

wget <insert source url here>
unzip <insert zip file path>
cd <go inside the unzipped folder>
go build --tags extended

The last command will start the build process. The command line output when building is sparse, if any, and it can take quite some time before it’s done building - particularly the first time. Just sit tight and wait for the command line prompt to reappear.

When it does, you should find a Hugo executable in the current directory. Move it to /usr/local/hugo_extended or some other directory of your choice, add it to the PATH same way you added golang to the PATH. Refer back to the the official Go documentation if you can’t remember how.

Last, but not least, verify that everything is working by running hugo version. You should see the Hugo version number with extended somewhere in the mix.

Now pat yourself on the shoulder and go give someone you love a hug.


This post has no feedback yet.

Do you have any thoughts you want to share? A question, maybe? Or is something in this post just plainly wrong? Then please send an e-mail to vegard at vegard dot net with your input. You can also use any of the other points of contact listed on the About page.


It looks like you're using Google's Chrome browser, which records everything you do on the internet. Personally identifiable and sensitive information about you is then sold to the highest bidder, making you a part of surveillance capitalism.

The Contra Chrome comic explains why this is bad, and why you should use another browser.