scoop update scoop install hugo-extended
Ongoing
According to
Repology,
the latest
packaged Hugo
is
.
2022-February-13 Published this evolving[1] article.
This article assumes…
you know how to use the command line
and you want to install the extended version of the Hugo static site generator.
ℹ | Extended Hugo is needed if…
Infinite Ink’s Hugo Tutorial and many Hugo themes require extended Hugo. |
The hugo
executable is one[2]
file
and
can be put anywhere on your path.
To find out your path,
run one of the following commands
at a command-line prompt.
In a Unix-like shell, including Git Bash, run:
echo $PATH
In PowerShell, run either of the following:
$env:path
$env:path -split ";"
set path
💡 | If you use a package manager to install
hugo or hugo.exe , you will not need to deal with your path
because the package manager will take care of that. |
hugo
You can install extended Hugo with a package manager or manually.
‼ | If you are not a superuser, using a package manager is the way to go IMHO. |
Go to github.com/gohugoio/hugo/releases and download the newest:
hugo_version_checksums.txt
, for example:
hugo_0.109.0_checksums.txt
hugo_extended_version_platform.extension
, for example one of these:
hugo_extended_0.109.0_darwin-universal.tar.gz
hugo_extended_0.109.0_Linux-64bit.deb
[4]
hugo_extended_0.109.0_Linux-64bit.tar.gz
hugo_extended_0.109.0_linux-amd64.deb
hugo_extended_0.109.0_linux-amd64.tar.gz
hugo_extended_0.109.0_linux-arm64.deb
hugo_extended_0.109.0_linux-arm64.tar.gz
hugo_extended_0.109.0_windows-amd64.zip
Then,
check the checksum of
the
hugo package
you
downloaded,
unpackage it,[4][5].
and put
the
hugo
or hugo.exe
executable
somewhere on your path (discussed above).
💡 |
Note that
putting
a file in either |
The guide at gohugo.io/getting-started/installing/ describes how to use a lot of Linux, Mac, and Windows package managers.
On Windows I use this sequence of commands to install extended Hugo:
scoop update scoop install hugo-extended
And this sequence of commands to update extended Hugo:
scoop update scoop update hugo-extended
Details are in Infinite Ink’s Scoop: A Windows Package Manager (featuring Hugo, Figlet, and Ruby).
To find out what
version of Hugo
is currently installed by Scoop, see
github.com/ScoopInstaller/Main/blob/master/bucket/hugo-extended.json
or
this Repology badge:
To learn about Linux package management in general, see Infinite Ink’s Linux Package Management.
On Linux with a desktop environment, I use the Snap Store Desktop App because…
it has a graphical user interface,
it usually installs a recent version of Hugo, and
it’s easy to specify an extended
channel
because there is a
drop-down menu in the upper right
of the
app window
labeled Source
that lets
you choose extended/stable
or, if available, extended/edge
.
Details about what Hugo version the Snap Store is currently installing are at snapcraft.io/hugo and in the following embedded card.
ℹ | Starting 2021-October-25, the Hugo team has the option to have the Snap Store install Hugo with classic (rather than strict) confinement. Details about this are in the discussion about Request for classic confinement for hugo snap on forum.snapcraft.io. To find out the current confinement level, see github.com/gohugoio/hugo/blob/master/snap/snapcraft.yaml. |
If you have installed Homebrew on Linux, the following command installs extended Hugo.
brew install hugo
Using a software package manager makes it easy to install, update, or uninstall extended Hugo.
People often post announcements about Hugo package updates in discourse.gohugo.io/c/announcements.
There are some useful scripts for installing or updating
hugo
on
Unix-like
systems
in
discourse.gohugo.io’s
Script
to install latest hugo release on macos and ubuntu.
If you are using a
Debian-based system,
you can download the appropriate
.deb
from
github.com/gohugoio/hugo/releases
and install it with, for example,
sudo dpkg --install ./hugo_extended_0.109.0_Linux-64bit.deb
[4]
The extended and unextended
binaries[6]
have the same name
(hugo
on
Unix-like
systems and hugo.exe
on Windows).
hugo
with hugo version
, hugo env
, and hugo env -v
After you install hugo
,
check that it’s
on your path
and is an
extended version, by running
this
at a command-line prompt:
You should see something like this:
hugo v0.109.0-47b12b83e636224e5e601813ff3e6790c191e371+extended windows/amd64 BuildDate=2022-12-23T10:38:11Z VendorInfo=gohugoio 👆
To view more information about your hugo
,
run:
Here is an example of the output of this command:
hugo v0.108.0-a0d64a46e36dd2f503bfd5ba1a5807b900df231d+extended windows/amd64 BuildDate=2022-12-06T13:37:56Z VendorInfo=gohugoio GOOS="windows" GOARCH="amd64" GOVERSION="go1.19.2" github.com/sass/libsass="3.6.5" github.com/webmproject/libwebp="v1.2.4"
To view a lot more information about your hugo
,
run either of these:
hugo env -v hugo env --verbose
Here is an example of the output of these equivalent commands:
hugo v0.108.0-a0d64a46e36dd2f503bfd5ba1a5807b900df231d+extended windows/amd64 BuildDate=2022-12-06T13:37:56Z VendorInfo=gohugoio GOOS="windows" GOARCH="amd64" GOVERSION="go1.19.2" cloud.google.com/go/compute="v1.6.1" cloud.google.com/go/iam="v0.3.0" cloud.google.com/go/storage="v1.22.0" cloud.google.com/go="v0.101.0" github.com/Azure/azure-pipeline-go="v0.2.3" github.com/Azure/azure-storage-blob-go="v0.14.0" github.com/Azure/go-autorest/autorest/adal="v0.9.15" github.com/Azure/go-autorest/autorest/date="v0.3.0" github.com/Azure/go-autorest/autorest="v0.11.20" github.com/Azure/go-autorest/logger="v0.2.1" github.com/Azure/go-autorest/tracing="v0.6.0" github.com/BurntSushi/locker="v0.0.0-20171006230638-a6e239ea1c69" github.com/PuerkitoBio/purell="v1.1.1" github.com/PuerkitoBio/urlesc="v0.0.0-20170810143723-de5bf2ad4578" github.com/alecthomas/chroma/v2="v2.4.0" github.com/armon/go-radix="v1.0.0" github.com/aws/aws-sdk-go-v2/config="v1.7.0" github.com/aws/aws-sdk-go-v2/credentials="v1.4.0" github.com/aws/aws-sdk-go-v2/feature/ec2/imds="v1.5.0" github.com/aws/aws-sdk-go-v2/internal/ini="v1.2.2" github.com/aws/aws-sdk-go-v2/service/internal/presigned-url="v1.3.0" github.com/aws/aws-sdk-go-v2/service/sso="v1.4.0" github.com/aws/aws-sdk-go-v2/service/sts="v1.7.0" github.com/aws/aws-sdk-go-v2="v1.9.0" github.com/aws/aws-sdk-go="v1.43.5" github.com/aws/smithy-go="v1.8.0" github.com/bep/clock="v0.3.0" github.com/bep/debounce="v1.2.0" github.com/bep/gitmap="v1.1.2" github.com/bep/goat="v0.5.0" github.com/bep/godartsass="v0.16.0" github.com/bep/golibsass="v1.1.0" github.com/bep/gowebp="v0.2.0" github.com/bep/overlayfs="v0.6.0" github.com/bep/tmc="v0.5.1" github.com/clbanning/mxj/v2="v2.5.7" github.com/cli/safeexec="v1.0.0" github.com/cpuguy83/go-md2man/v2="v2.0.2" github.com/disintegration/gift="v1.2.1" github.com/dlclark/regexp2="v1.7.0" github.com/dustin/go-humanize="v1.0.0" github.com/evanw/esbuild="v0.15.18" github.com/frankban/quicktest="v1.14.4" github.com/fsnotify/fsnotify="v1.6.0" github.com/getkin/kin-openapi="v0.110.0" github.com/ghodss/yaml="v1.0.0" github.com/go-openapi/jsonpointer="v0.19.5" github.com/go-openapi/swag="v0.19.5" github.com/gobuffalo/flect="v0.3.0" github.com/gobwas/glob="v0.2.3" github.com/gohugoio/go-i18n/v2="v2.1.3-0.20210430103248-4c28c89f8013" github.com/gohugoio/locales="v0.14.0" github.com/gohugoio/localescompressed="v1.0.1" github.com/golang-jwt/jwt/v4="v4.0.0" github.com/golang/groupcache="v0.0.0-20210331224755-41bb18bfe9da" github.com/golang/protobuf="v1.5.2" github.com/google/go-cmp="v0.5.9" github.com/google/uuid="v1.3.0" github.com/google/wire="v0.5.0" github.com/googleapis/gax-go/v2="v2.3.0" github.com/googleapis/go-type-adapters="v1.0.0" github.com/gorilla/websocket="v1.5.0" github.com/hairyhenderson/go-codeowners="v0.2.3-0.20201026200250-cdc7c0759690" github.com/inconshreveable/mousetrap="v1.0.1" github.com/invopop/yaml="v0.1.0" github.com/jdkato/prose="v1.2.1" github.com/jmespath/go-jmespath="v0.4.0" github.com/kr/pretty="v0.3.1" github.com/kr/text="v0.2.0" github.com/kyokomi/emoji/v2="v2.2.10" github.com/mailru/easyjson="v0.0.0-20190626092158-b2ccc519800e" github.com/marekm4/color-extractor="v1.2.0" github.com/mattn/go-ieproxy="v0.0.1" github.com/mattn/go-isatty="v0.0.16" github.com/mattn/go-runewidth="v0.0.9" github.com/mitchellh/hashstructure="v1.1.0" github.com/mitchellh/mapstructure="v1.5.0" github.com/mohae/deepcopy="v0.0.0-20170929034955-c48cc78d4826" github.com/muesli/smartcrop="v0.3.0" github.com/niklasfasching/go-org="v1.6.5" github.com/olekukonko/tablewriter="v0.0.5" github.com/pelletier/go-toml/v2="v2.0.6" github.com/rogpeppe/go-internal="v1.9.0" github.com/russross/blackfriday/v2="v2.1.0" github.com/rwcarlsen/goexif="v0.0.0-20190401172101-9e8deecbddbd" github.com/sanity-io/litter="v1.5.5" github.com/sass/libsass="3.6.5" github.com/spf13/afero="v1.9.3" github.com/spf13/cast="v1.5.0" github.com/spf13/cobra="v1.6.1" github.com/spf13/fsync="v0.9.0" github.com/spf13/jwalterweatherman="v1.1.0" github.com/spf13/pflag="v1.0.5" github.com/tdewolff/minify/v2="v2.12.4" github.com/tdewolff/parse/v2="v2.6.4" github.com/webmproject/libwebp="v1.2.4" github.com/yuin/goldmark="v1.5.3" go.opencensus.io="v0.23.0" go.uber.org/atomic="v1.10.0" gocloud.dev="v0.24.0" golang.org/x/crypto="v0.0.0-20211108221036-ceb1ce70b4fa" golang.org/x/image="v0.0.0-20211028202545-6944b10bf410" golang.org/x/net="v0.2.0" golang.org/x/oauth2="v0.0.0-20220411215720-9780585627b5" golang.org/x/sync="v0.1.0" golang.org/x/sys="v0.2.0" golang.org/x/text="v0.5.0" golang.org/x/tools="v0.3.0" golang.org/x/xerrors="v0.0.0-20220411194840-2f41105eb62f" google.golang.org/api="v0.76.0" google.golang.org/genproto="v0.0.0-20220426171045-31bebdecfb46" google.golang.org/grpc="v1.46.0" google.golang.org/protobuf="v1.28.1" gopkg.in/yaml.v2="v2.4.0" gopkg.in/yaml.v3="v3.0.1"
hugo
To
find out
which
directory the hugo
executable
is in,
run
one of the following shell commands.
In a Unix-like shell, run:
which hugo
In PowerShell, run:
gcm hugo
(or equivalently Get-Command hugo
)
In cmd.exe or Git Bash, run:
where hugo
After you’ve installed extended Hugo, you might want to follow the steps in one or both of these Infinite Ink articles:
Repology.org “monitors a huge number of package repositories and other sources comparing package versions across them and gathering other information.” Some details about Hugo are on repology.org/project/hugo-sitegen/history and in this badge:
As you can see in the above Repology badge,
most
package managers
do not install
the newest version of Hugo.
This is
the main reason
I wrote this article.
go
and git
(or another VCS). If you use a non-built-in renderer, such as asciidoctor
or pandoc
, you need to install that renderer and edit Hugo’s security configuration.sudo dpkg --install ./hugo_extended_0.109.0_Linux-64bit.deb
will work if you invoke it from the directory that the .deb
is in. Since hugo
has no dependencies, there should be no issues installing it with dpkg --install
. (This is how I install hugo
on WSL, which is also known as “Windows’ Subsystem for Linux” and “Bash on Ubuntu on Windows.”).gz
or .zip
extension will launch an unzip app. For example, some Linux distributions launch the ark
archiving tool.@nm@mathstodon.xyz
in it.