Installation von Hugo – einem Static Site Generator
Da ich schon lange unzufrieden mit WordPress bin, suche ich nach Alternativen.
Gestern bin ich über Hugo gestoßen, einen Static Site Generator. In diesem Artikel schildere ich meinen Irrweg, bis ich Hugo erfolgreich installieren konnte.
Hugo hat eine sehr ausführliche Dokumentation zur Installation.
Installation über Paket-Manager
Ich bin es als Ubuntu-Nutzer eigentlich gewöhnt, dass viele Programme, die man im Internet so findet, bereits in der Distribution enthalten sind. So auch Hugo.
Die Dokumentation hat in der Sektion "Debian and Ubuntu" die Standard-Anleitung:
sudo apt-get install hugo
Nachdem ich das ausprobiert habe und mich dem Tutorial gewidmet habe, bin ich nicht besonders
weit gekommen. Zwar funktionieren grundsätzliche Aufrufe von hugo
, allerdings sobald ich in
Schritt 3 das Theme hinzugefügt
habe, hat Hugo nur noch Fehler geworfen:
thehacker@ares:/tmp/hugo-test$ hugo server
ERROR 2020/10/25 11:06:13 Current theme does not support Hugo version 0.40.1. Minimum version required is 0.55.0
Building sites … ERROR 2020/10/25 11:06:13 Failed to add template "theme/404.html" in path "/tmp/hugo-test/themes/ananke/layouts/404.html": template: /tmp/hugo-test/themes/ananke/layouts/404.html:10: function "hugo" not defined
ERROR 2020/10/25 11:06:13 Failed to add template "theme/_default/list.html" in path "/tmp/hugo-test/themes/ananke/layouts/_default/list.html": template: /tmp/hugo-test/themes/ananke/layouts/_default/list.html:10: function "hugo" not defined
ERROR 2020/10/25 11:06:13 Failed to add template "theme/_default/single.html" in path "/tmp/hugo-test/themes/ananke/layouts/_default/single.html": template: /tmp/hugo-test/themes/ananke/layouts/_default/single.html:10: function "hugo" not defined
ERROR 2020/10/25 11:06:13 Failed to add template "theme/_default/taxonomy.html" in path "/tmp/hugo-test/themes/ananke/layouts/_default/taxonomy.html": template: /tmp/hugo-test/themes/ananke/layouts/_default/taxonomy.html:10: function "hugo" not defined
ERROR 2020/10/25 11:06:13 Failed to add template "theme/_default/terms.html" in path "/tmp/hugo-test/themes/ananke/layouts/_default/terms.html": template: /tmp/hugo-test/themes/ananke/layouts/_default/terms.html:10: function "hugo" not defined
ERROR 2020/10/25 11:06:13 Failed to add template "theme/index.html" in path "/tmp/hugo-test/themes/ananke/layouts/index.html": template: /tmp/hugo-test/themes/ananke/layouts/index.html:10: function "hugo" not defined
ERROR 2020/10/25 11:06:13 Failed to add template "theme/page/single.html" in path "/tmp/hugo-test/themes/ananke/layouts/page/single.html": template: /tmp/hugo-test/themes/ananke/layouts/page/single.html:10: function "hugo" not defined
ERROR 2020/10/25 11:06:13 Failed to add template "theme/partials/func/GetFeaturedImage.html" in path "/tmp/hugo-test/themes/ananke/layouts/partials/func/GetFeaturedImage.html": template: theme/partials/func/GetFeaturedImage.html:23: unexpected "=" in operand
ERROR 2020/10/25 11:06:13 Failed to add template "theme/partials/social-share.html" in path "/tmp/hugo-test/themes/ananke/layouts/partials/social-share.html": template: theme/partials/social-share.html:15: unexpected "=" in operand
ERROR 2020/10/25 11:06:13 Failed to add template "theme/post/list.html" in path "/tmp/hugo-test/themes/ananke/layouts/post/list.html": template: /tmp/hugo-test/themes/ananke/layouts/post/list.html:10: function "hugo" not defined
ERROR 2020/10/25 11:06:13 theme/partials/func/GetFeaturedImage.html : template: theme/partials/func/GetFeaturedImage.html:23: unexpected "=" in operand
ERROR 2020/10/25 11:06:13 theme/partials/social-share.html : template: theme/partials/social-share.html:15: unexpected "=" in operand
Total in 30 ms
Error: Error building site: logged 13 error(s)
Die Dokumentation hatte schon vorgewarnt, dass die Hugo-Version aus den Distribution sehr alt ist.
Das Template möchte mindestens Version 0.55.0 (siehe erste Zeile der Fehlermeldungen), ich habe eine 2,5 Jahre-alte Version 0.40.1 in meinem Ubuntu 18.
Installation mit snap
snap
to the rescue! Wann immer Pakete aus dem Paket-Manager
nicht aktuell genug sind, bieten viele Programme ein snap
-Paket an, was wesentlich neuer ist.
Auch Hugo hat einen entsprechenden Passus in der Installationsanleitung:
snap install hugo
Nun haben wir eine aktuelle Version 0.76.5.
Allerdings startet jetzt nicht mal mehr der Server, weil irgendwo Dateirechte fehlen…
Hugo Static Site Generator v0.76.5 linux/amd64 BuildDate: 2020-10-14T19:12:16Z
thehacker@ares:/tmp/hugo-test$ hugo server
Error: open /var/lib/snapd/void: permission denied
Aus dieser Meldung wird man nicht besonders schlau.
In der Dokumentation findet man einen entsprechenden Passus, dass Hugo mit dem snap-Paket nur im User-Home-Verzeichnis schreiben kann.
Diese Einschränkung gefällt mir nicht! Da ich Hugo ja erstmal ausprobieren möchte,
verwende ich hier ausschließlich mein /tmp
-Verzeichnis.
Manuelle Installation der Binaries
Da Hugo in Go geschrieben ist, d. h. ein kompiliertes Programm ist, kann man sich auch vorkompilierte Binaries von GitHub herunterladen.
Normalerweise mag ich diesen Weg nicht, aber hier führt er zum Erfolg :-)
Auf der Releases-Page auf GitHub
finden wir Tarballs für viele verschiedene Plattformen. Das Schöne: Selbst .deb
-Pakete
liegen da, d. h. so wirklich manuell installieren muss ich das Ganze doch nicht,
sondern kann meinen Paket-Manager verwenden.
Mit einem Rechtsklick und "Adresse des Links kopieren" befüll ich die Zwischenablage mit der URL zum Linux-64bit-Debian-Paket. Danach kann ich mit zwei Zeilen das Paket herunterladen und installieren:
wget https://github.com/gohugoio/hugo/releases/download/v0.76.5/hugo_extended_0.76.5_Linux-64bit.deb
sudo dpkg -i hugo_extended_0.76.5_Linux-64bit.deb
Jetzt funktioniert auch das Tutorial und ich kann die Demo-Webseite mit dem Template im Browser aufrufen:
Nutzt du für deinen Blog auch einen Static Site Generator?
Nutzt du Hugo oder andere Software?
Hinterlass gerne einen Kommentar, wenn dir dieser Artikel geholfen hat.