In this post, I will show how to install Hugo on Ubuntu in three different ways.
Hugo releases come in two flavors, namely standard and extended. The extended version differs in that it supports SASS/SCSS and PostCSS without any additional tooling or configuration. Therefore, you should opt for the extended version if you choose a Hugo theme that uses Hugo pipes instead of tools like Webpack for handling SASS/SCSS.
You can get the following error message while trying to build an “extended” website with the standard version:
Error: Error building site: TOCSS: failed to transform "style.scss" (text/x-scss). Check your Hugo installation; you need the extended version to build SCSS/SASS.: this feature is not available in your current Hugo version, see https://goo.gl/YMrWcn for more information
The first and obvious option would be to use the APT, a package-handling utility for Debian and Debian-based Linux distributions. The following command will install an official Hugo Debian package which shared with Ubuntu:
sudo apt-get install hugo
But this command is not recommended as it will not install the latest version of Hugo.
For example, the above command executed on Ubuntu 20.04.3 LTS installs
0.68.3/extended Hugo release, whereas, at the time of writing, the newest version is
When you check the location of the binary with the
whereis hugo command, it gives
To install the latest version of Hugo or a specific one, you can use dpkg, the Debian package manager.
But first, you have to download the
.deb package from the official Hugo release page.
For example, to install version
0.109.0, use the following commands:
wget https://github.com/gohugoio/hugo/releases/download/v0.109.0/hugo_0.109.0_linux-amd64.deb sudo dpkg -i hugo_0.109.0_linux-amd64.deb
If you need the extended version, replace
The location of the binary will be
/usr/local/bin/hugo when installed with
The third option is to use the Snap package manager with which you can install Hugo packaged as a snap that is available via the Snap Store. Essentially, a snap is a bundle that contains an application and all of its dependencies compressed into a single file. With the following command, you can install the latest standard version:
snap install hugo
Or, if you need the extended version, add the
snap install hugo --channel=extended
You can easily switch between the standard and extended versions using either
snap refresh hugo --channel=extended or
snap refresh hugo --channel=stable.
With snap, the location of the binary will be
When you want to run Hugo installed via Snap, you should prefix the
hugo command with
snap run, for example:
And to summarize, it is evident that the APT option is not the best as you cannot get the latest version of Hugo. In contrast, with the Snap package manager, you can only get the latest version. The advantage of Snap is the ease of switching from the standard version to the extended one and back. With all this in mind, it can be argued that the dpkg option is the most versatile, as it allows you to install the latest version and a specific one, either standard or extended. Although switching with dpkg between the standard and extended versions might be a bit cumbersome.