Hugo is written in Go with support for multiple platforms.
The latest release can be found at Hugo Releases. We currently provide pre-built binaries for Windows, Linux, FreeBSD and OS X (Darwin) for x64, i386 and ARM architectures.
Hugo may also be compiled from source wherever the Go compiler tool chain can run, e.g. for other operating systems including DragonFly BSD, OpenBSD, Plan 9 and Solaris. See http://golang.org/doc/install/source for the full set of supported combinations of target operating systems and compilation architectures.
Installing Hugo (binary)
Installation is very easy. Simply download the appropriate version for your platform from Hugo Releases. Once downloaded it can be run from anywhere. You don’t need to install it into a global location. This works well for shared hosts and other systems where you don’t have a privileged account.
Ideally, you should install it somewhere in your
PATH for easy use.
/usr/local/bin is the most probable location.
On macOS, if you have Homebrew, installation is even
easier: just run
brew update && brew install hugo.
For a more detailed explanation follow the corresponding installation guides:
Installing Pygments (optional)
The Hugo executable has one optional external dependency for source code highlighting (Pygments).
Upgrading Hugo is as easy as downloading and replacing the executable you’ve
placed in your
Installing Hugo on Linux from native packages
You can install Hugo from the Arch user repository on Arch Linux or derivatives such as Manjaro.
sudo pacman -S yaourt yaourt -S hugo
Debian and Ubuntu
Hugo has been included in Debian and Ubuntu since 2016, and thus installing Hugo is as simple as:
sudo apt install hugo
- Native Debian/Ubuntu package maintained by Debian Developers
- Pre-installed bash completion script and man pages for best interactive experience
- Might not be the latest version, especially if you are using an older stable version (e.g., Ubuntu 16.04 LTS). Until backports and PPA are available, you may consider installing the Hugo snap package to get the latest version of Hugo, as described below.
Fedora and Red Hat
- https://copr.fedorainfracloud.org/coprs/spf13/Hugo/ (updated to Hugo v0.16)
- https://copr.fedorainfracloud.org/coprs/daftaupe/hugo/ (updated to Hugo v0.19)
See also this discussion.
Snap package for Hugo
In any of the Linux distributions that support snaps:
snap install hugo
Note: Hugo-as-a-snap can write only inside the user’s
$HOMEdirectory—and gvfs-mounted directories owned by the user—because of Snaps’ confinement and security model. More information is also available in this related GitHub issue.
Installing from source
Prerequisite tools for downloading and building source code
Hugo uses govendor to vendor dependencies, but we don’t commit the vendored packages themselves to the Hugo git repository.
Therefore, a simple
go get is not supported since
go get is not vendor-aware.
You must use govendor to fetch Hugo’s dependencies.
Fetch from GitHub
go get github.com/kardianos/govendor govendor get github.com/spf13/hugo
govendor get will fetch Hugo and all its dependent libraries to
$HOME/go/src/github.com/spf13/hugo, and compile everything into a final
hugo.exe) executable, which you will find sitting inside
$HOME/go/bin/, all ready to go!
Windows users: where you see the
$HOME environment variable above, replace it with
Please see the contributing guide if you are interested in working with the Hugo source or contributing to the project in any way.