Linux安装Hugo应避免apt install hugo,因其提供过时且无extended功能的版本;正确做法是下载最新hugo_extended二进制,解压后移至/usr/local/bin,并验证hugo version含+extended字样。

Linux上装Hugo,别直接用apt install hugo——它大概率给你一个过时版本(比如 Ubuntu 22.04 自带的还是 v0.91),后续主题编译失败、SCSS 不生效、hugo server 热更新异常,全是因为这个“省事”操作。
为什么apt install hugo在Linux上容易出问题
Debian/Ubuntu 的官方仓库长期不更新 Hugo,尤其缺 hugo-extended 版本。而绝大多数现代主题(如 ananke、hello-friend-ng)依赖 Sass 编译、PostCSS 或内联 SVG,这些功能只有 hugo-extended 提供。
常见症状包括:
error: failed to transform “scss/main.scss”-
exec: "dart-sass": executable file not found(即使你装了 dart-sass,hugo普通版也压根不认) - 修改
assets/下的 SCSS 文件后,hugo server不自动重建 CSS
推荐安装方式:下载最新 hugo_extended 二进制
跳过包管理器,直取 GitHub Release 最新版,确保支持所有现代前端工作流。
执行以下命令(以 v0.129.0 为例,实际请替换为当前最新版):
wget https://github.com/gohugoio/hugo/releases/download/v0.129.0/hugo_extended_0.129.0_Linux-64bit.tar.gz tar -xzf hugo_extended_0.129.0_Linux-64bit.tar.gz sudo mv hugo /usr/local/bin/
验证是否成功:
hugo version
输出中必须含 +extended 字样,例如:hugo v0.129.0+extended linux/amd64。
注意点:
- 不要解压到
/tmp后直接运行——临时路径下执行会因权限或路径问题导致hugo server静态资源 404 - 如果提示
permission denied,补一句sudo chmod +x /usr/local/bin/hugo - 不用手动配
$PATH,因为/usr/local/bin默认已在系统 PATH 中
初始化站点时必须加 --force 参数
很多人卡在 hugo new site myblog 报错 “directory already exists”,其实只是当前目录非空(比如有 .git 或 README)。这时候不需删目录重来。
直接用:
hugo new site myblog --force
--force 会覆盖已存在的同名目录结构,但不会清空你手动创建的文件(如 config.toml 已存在,它会保留;themes/ 若为空则新建)。
初始化后务必检查目录里有没有 themes/ 和 config.toml ——这两个是后续加主题、改配置的起点,缺一不可。
主题安装后别急着跑 hugo server
Git 克隆主题到 themes/ 后,常见错误是忘记在 config.toml 里启用它:
[theme] = "ananke"
或者(TOML 格式):
theme = "ananke"
更隐蔽的问题是:exampleSite/config.toml 里的 baseURL 值(如 https://example.com)会被 Hugo 用于生成绝对链接,本地开发时应设为 http://localhost:1313 或留空(Hugo v0.115+ 支持空值 fallback)。
另外,有些主题依赖子模块(submodule),克隆时要加 --recursive:
git clone --recursive https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
漏掉 --recursive,assets/ 下的 JS/CSS 可能缺失,页面空白但控制台无报错,极难排查。
真正麻烦的不是安装步骤,而是 extended 版本缺失带来的静默失败——它不报错,只让样式不生效、热重载卡住、甚至生成的 HTML 缺关键 class。每次怀疑主题或配置有问题前,先敲一遍 hugo version 看见 +extended 再继续。


















