76、【Ubuntu】【Hugo】搭建私人博客:Hugo 版本更新

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景

上篇 blog
【Ubuntu】【Hugo】搭建私人博客:Page Bundle

分析了 Hugo 中 public/ 目录下的内容,并进一步分析了 Hugo Page Bundle 机制,下面继续

搭建私人博客

之前 blog 【Ubuntu】【Hugo】搭建私人博客:Hugo&PaperMod 兼容问题 提到了 Hugo 和 PaperMod 的兼容性问题,当时提供的解决方案是给 PaperMod 降级,现在来看另一种方案,给 Hugo 升级,只有不断地更新版本,才能享受到开源社区提供的最新功能

在终端输入

bash 复制代码
git clone https://github.com/gohugoio/hugo.git

可以克隆源仓库的 Hugo,如果访问速度慢的话,博主在 Gitee 上传了一份刚克隆的(2025.12 月份,后面有必要会经常更新)

将上面的命令调整为

bash 复制代码
git clone https://gitee.com/hitweston/hugo.git

OK,clone 成功后,在终端输入

bash 复制代码
git tag --sort=-creatordate | head -n 5

可以查看到 Hugo 版本已经更新到 v0.153.2

如果用 Ubuntu 仓库的话,当前只到 v0.123.7 版本,还是 7月份的构建的,Ubuntu 仓库官方更新的慢

OK,接着在终端输入

bash 复制代码
CGO_ENABLED=1 go install -tags extended

开始从源码构建安装 Hugo Extended 扩展版本,下面说下这条命令各部分的含义

  • CGO_ENABLED=1这里 CGO_ENABLED 是一个环境变量,用于控制 Go 是否启用 CGO ,启用 CGO 时,将允许 Go 代码调用 C 语言库,而禁用 CGO 则是纯 Go 编译,之前 blog 【Ubuntu】【Hugo】搭建私人博客:新建站点 说了,Hugo 的扩展功能需要依赖 C 语言库,比如 SCSS/Sass 编译,WebP 图像处理等,如果不启用 CGO,这些功能就会被禁用
  • go installGo 工具链命令,用于编译当前项目,并安装可执行文件,这个可执行文件会被复制输出到 $GOPATH/bin,一般是 ~/go/bin/ ,注意,go install 不同于 go buildgo build 只在当前目录生成可执行文件,而 go install 编译后会安装到全局 bin 目录,方便全局使用
  • -tags extended:传递 build tags 构建标签给 Go 编译器,Go 支持通过 //go:build extended 注释控制哪些代码参与编译,在 Hugo 源码中,扩展功能被包裹在 extended 标签下,只有指定 -tags extended 时,这些代码才会被编译进去

安装完成后,终端输入

bash 复制代码
~/go/bin/hugo version

可以查看到 Hugo 版本已更新成最新版本 v0.154.0

但如果在终端输入

bash 复制代码
hugo version

可以看到 Hugo 版本还是旧的

这是因为 Go 的安装路径没有添加到 PATH 环境变量的原因,在终端输入

bash 复制代码
echo 'export PATH="$HOME/go/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

可以把 ~/go/bin 加到 PATH 最前面,因为 Shell 会依据 PATH 从左到右查找命令,放在最前就能优先使用,此时在终端再输入

bash 复制代码
hugo version

就可以看到最新的 Hugo 版本了

另外,构建 Hugo 需要依赖大量的 Github 仓库的东西

如果访问 Github 速度太慢的话,可以到博主 Gitee https://gitee.com/hitweston/hugo 上下载构建好的 v0.154.0 版本

总而言之,本地构建是开发者能够拿到功能最全 Hugo 的标准方式,编译一次,就可以长期使用,还能随时 git pullgo install 升级到最新版,而且因为 ~/go/bin 在 PATH 最前面,go install 安装后就能用到最新版本!


OK,本篇先到这里,如有疑问,欢迎评论区留言讨论,祝各位功力大涨,技术更上一层楼!!!更多内容见下篇 blog
【Ubuntu】【Hugo】搭建私人博客:Detached HEAD

相关推荐
chlk1231 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑1 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件1 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
碳基沙盒1 天前
OpenClaw 多 Agent 配置实战指南
运维
深紫色的三北六号1 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash2 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI2 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行3 天前
Linux和window共享文件夹
linux
木心月转码ing3 天前
WSL+Cpp开发环境配置
linux
蝎子莱莱爱打怪4 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes