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

相关推荐
qq_353737542 小时前
服务器防止宕机
运维·服务器
LucianaiB2 小时前
【基于昇腾平台的CodeLlama实践:从环境搭建到高效开发】
运维·人工智能·性能优化
运维行者_2 小时前
网络流量分析入门:从流量监控与 netflow 看懂核心作用
运维·开发语言·网络·云原生·容器·kubernetes·php
wangyongpro2 小时前
Ubuntu 系统盘拓展分区空间大小
linux·运维·ubuntu
guaiyud52 小时前
vmware安装centos 8
linux·centos·vmware
代码游侠2 小时前
应用——Linux FIFO(命名管道)与I/O多路复用
linux·运维·服务器·网络·笔记·学习
无奈笑天下2 小时前
麒麟V10SP1虚拟机安装vmtool-参考教程
linux·运维·服务器·个人开发
郝学胜-神的一滴2 小时前
Linux多线程编程:深入理解pthread_cancel函数
linux·服务器·开发语言·c++·软件工程
代码游侠2 小时前
复习——网络编程基础
linux·服务器·网络·笔记·网络协议