HUGO

  • News
  • Docs
  • Themes
  • Showcase
  • Community
  • GitHub
gohugoio Star
  • About Hugo
    • Overview
    • What is Hugo
    • Hugo features
    • Static site generators
    • Hugo's security model
    • Hugo and the GDPR
    • License
  • Installation
    • Overview
    • macOS
    • Linux
    • Windows
    • BSD
  • Getting started
    • Overview
    • Quick start
    • Basic usage
    • Directory structure
    • Configuration
    • Configure markup
    • Glossary of terms
    • External learning resources
  • Quick reference
    • Overview
    • Emojis
    • Functions
    • Methods
    • Page collections
  • Content management
    • Overview
    • Organization
    • Page bundles
    • Content formats
    • Front matter
    • Build options
    • Page resources
    • Image processing
    • Shortcodes
    • Related content
    • Sections
    • Content types
    • Archetypes
    • Taxonomies
    • Summaries
    • Links and cross references
    • URL management
    • Menus
    • Static files
    • Table of contents
    • Comments
    • Multilingual
    • Markdown attributes
    • Syntax highlighting
    • Diagrams
    • Mathematics
  • Templates
    • Overview
    • Templating
    • Template lookup order
    • Base templates and blocks
    • Single page templates
    • List templates
    • Homepage template
    • Section templates
    • Taxonomy templates
    • Pagination
    • Content view templates
    • Partial templates
    • Shortcode templates
    • Menu templates
    • Data templates
    • RSS templates
    • Sitemap templates
    • Internal templates
    • Custom output formats
    • 404 page
    • Robots.txt
  • Functions
    • Overview
    • cast
    • collections
    • compare
    • crypto
    • data
    • debug
    • diagrams
    • encoding
    • fmt
    • global
    • go template
    • hugo
    • images
    • inflect
    • js
    • lang
    • math
    • openapi3
    • os
    • partials
    • path
    • reflect
    • resources
    • safe
    • strings
    • templates
    • time
    • transform
    • urls
  • Methods
    • Overview
    • Duration
    • Menu
    • Menu entry
    • Page
    • Pages
    • Resource
    • Shortcode
    • Site
    • Taxonomy
    • Time
  • Render hooks
    • Overview
    • Introduction
    • Code blocks
    • Headings
    • Images
    • Links
  • Hugo Modules
    • Overview
    • Configure Hugo modules
    • Use Hugo Modules
    • Theme components
  • Hugo Pipes
    • Overview
    • Introduction
    • Transpile Sass to CSS
    • PostCSS
    • PostProcess
    • JavaScript building
    • Babel
    • Asset minification
    • Concatenating assets
    • Fingerprinting and SRI hashing
    • Resource from string
    • Resource from template
  • CLI
  • Troubleshooting
    • Overview
    • Audit
    • Logging
    • Inspection
    • Deprecation
    • Performance
    • FAQs
  • Developer tools
    • Overview
    • Editor plugins
    • Front-ends
    • Search
    • Migrations
    • Other projects
  • Hosting and deployment
    • Overview
    • Hugo Deploy
    • Deploy with Rclone
    • Deploy with Rsync
    • Host on 21YunBox
    • Host on AWS Amplify
    • Host on Azure Static Web Apps
    • Host on Cloudflare Pages
    • Host on Firebase
    • Host on GitHub Pages
    • Host on GitLab Pages
    • Host on KeyCDN
    • Host on Netlify
    • Host on Render
  • Contribute
    • Overview
    • Development
    • Documentation
    • Themes
  • Maintenance
INSTALLATION

Linux

Install Hugo on Linux.

Editions

Hugo is available in two editions: standard and extended. With the extended edition you can:

  • Encode to the WebP format when processing images. You can decode WebP images with either edition.
  • Transpile Sass to CSS using the embedded LibSass transpiler. The extended edition is not required to use the Dart Sass transpiler.

We recommend that you install the extended edition.

Prerequisites

Although not required in all cases, Git, Go, and Dart Sass are commonly used when working with Hugo.

Git is required to:

  • Build Hugo from source
  • Use the Hugo Modules feature
  • Install a theme as a Git submodule
  • Access commit information from a local Git repository
  • Host your site with services such as CloudCannon, Cloudflare Pages, GitHub Pages, GitLab Pages, and Netlify

Go is required to:

  • Build Hugo from source
  • Use the Hugo Modules feature

Dart Sass is required to transpile Sass to CSS when using the latest features of the Sass language.

Please refer to the relevant documentation for installation instructions:

  • Git
  • Go
  • Dart Sass

Prebuilt binaries

Prebuilt binaries are available for a variety of operating systems and architectures. Visit the latest release page, and scroll down to the Assets section.

  1. Download the archive for the desired edition, operating system, and architecture
  2. Extract the archive
  3. Move the executable to the desired directory
  4. Add this directory to the PATH environment variable
  5. Verify that you have execute permission on the file

Please consult your operating system documentation if you need help setting file permissions or modifying your PATH environment variable.

If you do not see a prebuilt binary for the desired edition, operating system, and architecture, install Hugo using one of the methods described below.

Package managers

Snap

Snap is a free and open-source package manager for Linux. Available for most distributions, snap packages are simple to install and are automatically updated.

The Hugo snap package is strictly confined. Strictly confined snaps run in complete isolation, up to a minimal access level that’s deemed always safe. The sites you create and build must be located within your home directory, or on removable media.

To install the extended edition of Hugo:

sudo snap install hugo

To enable or revoke access to removable media:

sudo snap connect hugo:removable-media
sudo snap disconnect hugo:removable-media

To enable or revoke access to SSH keys:

sudo snap connect hugo:ssh-keys
sudo snap disconnect hugo:ssh-keys

Homebrew

Homebrew is a free and open-source package manager for macOS and Linux. To install the extended edition of Hugo:

brew install hugo

Repository packages

Most Linux distributions maintain a repository for commonly installed applications.

The Hugo version available in package repositories varies based on Linux distribution and release, and in some cases will not be the latest version.

Use one of the other installation methods if your package repository does not provide the desired version.

Alpine Linux

To install the extended edition of Hugo on Alpine Linux:

doas apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community hugo

Arch Linux

Derivatives of the Arch Linux distribution of Linux include EndeavourOS, Garuda Linux, Manjaro, and others. To install the extended edition of Hugo:

sudo pacman -S hugo

Debian

Derivatives of the Debian distribution of Linux include elementary OS, KDE neon, Linux Lite, Linux Mint, MX Linux, Pop!_OS, Ubuntu, Zorin OS, and others. To install the extended edition of Hugo:

sudo apt install hugo

You can also download Debian packages from the latest release page.

Fedora

Derivatives of the Fedora distribution of Linux include CentOS, Red Hat Enterprise Linux, and others. To install the extended edition of Hugo:

sudo dnf install hugo

Gentoo

Derivatives of the Gentoo distribution of Linux include Calculate Linux, Funtoo, and others. Follow the instructions below to install the extended edition of Hugo:

  1. Specify the extended USE flag in /etc/portage/package.use/hugo:

    www-apps/hugo extended
    
  2. Build using the Portage package manager:

    sudo emerge www-apps/hugo
    

openSUSE

Derivatives of the openSUSE distribution of Linux include GeckoLinux, Linux Karmada, and others. To install the extended edition of Hugo:

sudo zypper install hugo

Solus

The Solus distribution of Linux includes Hugo in its package repository. To install the extended edition of Hugo:

sudo eopkg install hugo

Build from source

To build the extended edition of Hugo from source you must:

  1. Install Git
  2. Install Go version 1.20 or later
  3. Install a C compiler, either GCC or Clang
  4. Update your PATH environment variable as described in the Go documentation

The install directory is controlled by the GOPATH and GOBIN environment variables. If GOBIN is set, binaries are installed to that directory. If GOPATH is set, binaries are installed to the bin subdirectory of the first directory in the GOPATH list. Otherwise, binaries are installed to the bin subdirectory of the default GOPATH ($HOME/go or %USERPROFILE%\go).

Then build and test:

CGO_ENABLED=1 go install -tags extended github.com/gohugoio/hugo@latest
hugo version

Comparison

Prebuilt binaries Package managers Repository packages Build from source
Easy to install? ✔️ ✔️ ✔️ ✔️
Easy to upgrade? ✔️ ✔️ varies ✔️
Easy to downgrade? ✔️ ✔️ 1 varies ✔️
Automatic updates? ❌ varies 2 ❌ ❌
Latest version available? ✔️ ✔️ varies ✔️

  1. Easy if a previous version is still installed. ↩︎

  2. Snap packages are automatically updated. Homebrew requires advanced configuration. ↩︎

See also

  • macOS
  • BSD
  • Windows
  • Development
  • GitInfo

On this page

  • Editions
  • Prerequisites
  • Prebuilt binaries
  • Package managers
  • Repository packages
  • Build from source
  • Comparison
Last updated: January 14, 2024: Add version verification step to quick start guide (c852fe42)
Improve this page
By the Hugo Authors
Hugo Logo
  • File an Issue
  • Get Help
  • @GoHugoIO
  • @spf13
  • @bepsays

Netlify badge

 

Hugo Sponsors

 

The Hugo logos are copyright © Steve Francia 2013–2024.

The Hugo Gopher is based on an original work by Renée French.

  • News
  • Docs
  • Themes
  • Showcase
  • Community
  • GitHub
  • About Hugo
  • Installation
  • Getting started
  • Quick reference
  • Content management
  • Templates
  • Functions
  • Methods
  • Render hooks
  • Hugo Modules
  • Hugo Pipes
  • CLI
  • Troubleshooting
  • Developer tools
  • Hosting and deployment
  • Contribute
  • Maintenance