BOSh
文章28
标签12
分类5

一言

文章归档

Linux平台博客测试记录

Linux平台博客测试记录

在linux 安装hugo和hexo

运行以下命令分别安装:

1
2
3
sudo apt update
sudo apt install hugo
npm install hexo

运行npm install hexo 时报错:

1
2
3
4
5
6
7
8
9
……
npm ERR! A complete log of this run can be found in:
npm ERR!     /home/sb/.npm/_logs/2025-12-28T09_01_28_100Z-debug-0.log
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/sb/.npm/_logs/2025-12-28T09_01_28_100Z-debug-0.log

这是因为权限问题,经过询问gemini找到解决方案:

  1. 创建一个新的全局模块存放目录
1
mkdir ~/.npm-global
  1. 告诉 npm 使用这个新路径
1
npm config set prefix '~/.npm-global'
  1. 将新路径添加到系统的环境变量中
    你需要编辑你的 shell 配置文件(如果你用的是默认终端,通常是 ~/.bashrc;如果是 Mac 常用 ~/.zshrc)。

使用以下命令直接将配置写入文件:

1
2
3
# 如果你不确定用哪个,两个都执行一遍也无妨
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc
  1. 使配置立即生效
1
2
source ~/.bashrc
# 或者如果你用 zsh: source ~/.zshrc
  1. 重新安装 Hexo
    现在你不再需要 sudo,也不会再看到权限报错了:
1
npm install -g hexo-cli

为什么这样做更好?
安全性:你不需要给 npm 赋予 root(超级管理员)权限,避免了恶意脚本损坏系统的风险。

独立性:所有的全局包都存在你的家目录下,以后重装系统或迁移数据非常方便。

无缝衔接:一旦设置好,以后安装任何全局包(如 vue-cli, nodemon 等)都不会再报权限错误。

验证是否成功
安装完成后,输入以下命令检查,如果能看到 Hexo 的版本号,说明你已经成功解决了这个问题!

1
2
hexo -v
hexo-cli: 4.3.2

输入以下命令检查hugo,看到输出说明安装没有问题。

1
2
hugo version
hugo v0.123.7+extended linux/amd64 BuildDate=2025-07-18T03:41:49Z VendorInfo=ubuntu:0.123.7-1ubuntu0.3

到这里博客框架就安装好了,安装git:

1
sudo apt install git

clone之前同步的私有仓库源码:

1
2
git clone https://github.com/用户名/hexo-source.git
git clone https://github.com/用户名/huro-source.git

本地测试运行hugo博客

1
2
cd huro-blog
huro server -D

运行博客服务器时报错,将错误信息复制给gemini ,给出了解决方案如下:

这是因为你使用的是 Hugo Stack 主题,而新版本的 Hugo 内置模板名称发生了变化,或者主题模板引用了一个在当前 Hugo 版本中找不到的内置组件。别担心,这通常是因为 Hugo 在 v0.120.0 之后对内置模板的调用方式做了微调。我们可以通过两种方式快速修复它:方案一:手动创建占位文件(最简单、推荐)
既然它找不到 google_analytics.html,我们就给它创建一个空的文件,让它闭嘴。在你的博客根目录下执行以下命令:

1
2
3
4
5
# 确保 layouts/partials 目录存在
mkdir -p layouts/partials
# 创建一个空的 google_analytics.html 文件
touch layouts/partials/google_analytics.html
为什么这样做有效? Hugo 的查找机制是“优先使用用户目录下的布局”。我们在自己的项目里建一个空文件,Hugo 就不会去主题文件夹或系统内置库里找那个报错的文件了。

完成后尝试启动:

1
hugo server -D

启动成功,进入网页预览正常。

本地测试运行hexo博客

1
2
cd hexo-blog
npm install

报错,把错误日志提供给gemini,给出解决方案

  1. 切换回 Node 20
1
2
nvm install 20
nvm use 20
  1. 彻底清理旧依赖(这一步不能省!)
    因为你在 Node 14 下安装了一堆不兼容的包,必须删掉重来:
1
2
3
cd /home/sb/Documents/hexo-blog-source
rm -rf node_modules package-lock.json
npm cache clean --force
  1. 重新安装依赖
    在 Node 20 环境下执行安装。即使有警告也先不管,看它能不能完成:
1
npm install
  1. 解决 strip-ansi 报错的黑科技
    如果安装完后执行 hexo s 依然报之前的 ERR_REQUIRE_ESM 错误,是因为 Hexo 8.x 的某个插件不小心引入了过新版本的 strip-ansi。

请直接运行下面这行命令,强制把该插件降级到兼容版本:

1
2
3
npm install strip-ansi@6.0.1 --save-exact
为什么之前 Node 20 会报错?
Hexo 8.x 本身是支持新版 Node 的,但它依赖的一些老插件可能没有更新。通过手动安装 strip-ansi@6.0.1,我们强行在你的项目根目录放一个“旧版零件”,让那些报错的插件能找到它们需要的 require 格式,从而避开 ESM 冲突。

最后的验证
按照上面步骤操作后,请执行:

1
2
hexo clean
hexo s

到这里hugo和hexo平台的运行测试完成。

测试新建博客

1
hugo new /post/测试.md

编辑博客后本地运行

鉴于在linux电脑搭建的博客平台只是测试学习。为了避免影响仓库和windows中的源码的正常允许。就不推送发布了。

若偶尔在linux平台写了博客,可以通过U盘或者文件中转站传送到windows后再发布。

LINUX电脑博客运行成功:

image.png
image.png

我的文件快递柜:
链接

本文作者:BOSh
本文链接:http://zsb.hidns.co/2025/12/28/linux%E5%B9%B3%E5%8F%B0%E5%8D%9A%E5%AE%A2%E6%B5%8B%E8%AF%95%E8%AE%B0%E5%BD%95/
版权声明:本文由BoSh发布,部分内容来源于网络。