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

相关推荐
聆风吟º19 小时前
CANN开源项目深度实践:基于amct-toolkit实现自动化模型量化与精度保障策略
运维·开源·自动化·cann
Coder个人博客19 小时前
Linux6.19-ARM64 mm mmu子模块深入分析
大数据·linux·车载系统·系统架构·系统安全·鸿蒙系统
较劲男子汉1 天前
CANN Runtime零拷贝传输技术源码实战 彻底打通Host与Device的数据传输壁垒
运维·服务器·数据库·cann
Doro再努力1 天前
Vim 快速上手实操手册:从入门到生产环境实战
linux·编辑器·vim
wypywyp1 天前
8. ubuntu 虚拟机 linux 服务器 TCP/IP 概念辨析
linux·服务器·ubuntu
阿蒙Amon1 天前
TypeScript学习-第10章:模块与命名空间
学习·ubuntu·typescript
风流倜傥唐伯虎1 天前
Spring Boot Jar包生产级启停脚本
java·运维·spring boot
Doro再努力1 天前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim
senijusene1 天前
Linux软件编程:IO编程,标准IO(1)
linux·运维·服务器
忧郁的橙子.1 天前
02-本地部署Ollama、Python
linux·运维·服务器