迁移hexo博客至mac避坑指北

寒假开始的时候获得了一台mac,我妈退役下来的超级老机子,查了一下机子什么配置

1
2
3
4
MacBook Air (13-inch, Early 2015)
处理器1.6 GHz 双核Intel Core i5
内存4 GB 1600 MHz DDR3
图形卡Intel HD Graphics 6000 1536 MB

绝了,我觉得这玩意还能动真是个奇迹

结果实际运行结果让我大吃一惊,它居然还能下载lunar client玩mc,而且1.20.2最高到120fps,稳定80fps!!!

真是牛逼,顽强的生命呐(赞叹

然后今天突然想起自己的博客,发现上一次更新居然在23年8月份,这下我立刻开始着手迁移博客源码到mac上,结果遇到了一堆匪夷所思的问题,气得我七窍生烟,必须记下来

首先我很久之前就将自己的博客备份在了Github的仓库上,因此我不用拿个U盘去拷,只需要克隆仓库就行了

首先先着手搭建一个可以用的环境

macos自带的终端和文件管理程序实在不适合折腾博客,我选择下载Visual Studio Code

接着下载git和node,搜了一下教程,推荐使用brew install

于是打开终端:

1
zsh: command not found: brew

绝了

懒得安装homebrew,教程说也可以选择安装xcode,查了一下,要求安装空间30G,果断放弃

最后选择从官网安装git的安装包,传送门,sourceforge下载速度是真的慢,但是官网下载界面可以自选镜像,最后实测大概2m/s

node我也推荐到node官网找个for mac的安装包,因为其他方法是真的烦。node下载传送门

我个人认为对于mac下载pkg安装包是最好的选择,因为通过终端下载是真的烦,而且慢的要死,并且附赠一堆error。

此时万事具备,直接git clone博客仓库,然后

1
npm i hexo -g

直接报错

1
error: eacces: permission denied

太棒了,没权限,去bing查教程,要我:

1
2
3
4
5
6
7
8
9
10
11
12
13
2.改变npm默认的路径。
步骤如下:
进入终端,依次输入一下命令
(1)创建global安装任务的目录
mkdir ~/.npm-global
(2)配置npm使用新的目录
sudo npm config set prefix '~/.npm-global'
(3)在~/.profile文件中增加配置
sudo export PATH=~/.npm-global/bin:$PATH
(4)配置文件立即生效
source ~/.profile
(5)重新执行命令
sudo npm install -g xxxx

我没在对应的目录找到.profile文件,绝了,找了半天,嗨,真的没有这个文件,最后在一个犄角旮旯里找到了一个不用.profile文件的解决办法:
终端输入:

1
npm i --unsafe-perm=true

搞定了,好使。接着又安装一遍hexo,安装成功,输入hexo命令,报错:

1
zsh: command not found: hexo

嚯,直接使出重新安装大法,buff叠满

1
sudo npm i hexo -g --force

sudo密码不对,但是我特么账户密码是空的啊?跑到苹果官网上去查,发现了一个设定:发现要使用sudo命令,必须得有账户密码,于是设置了一个账户密码,再次sudo,成功

结果又出现command not found: hexo,气死我了,去找教程,发现是mac自己的问题,终端输入

1
npm root -g

会蹦出来一个类似于/Users/***/.npm-global/lib/node_modules的路径,进入到该目录下,能找到hexo,如果没有就再安装,进入hexo目录能找到一个lib文件夹

最终得到一个路径/Users/***/.npm-global/lib/node_modules/hexo/lib

接着去找一个路径为~/.zshrc文件,没找到,鉴定为我的mac没有此文件,火速在该目录下运行终端输入命令touch .zshrc建一个.zshrc文件,接着打开来,如果你的账户是管理员就可以直接编辑,然后输入

1
export PATH=/Users/***/.npm-global/lib/node_modules/hexo-cli/bin:$PATH

注意,从PATH=一直到:$PATH中间这段路径换成你自己的,其他都不要动

不要在export前面加个$,也不要把路径后面的:$PATH去掉,血泪教训:((((

最后检查一遍,保存.zshrc文件,在~目录打开一个终端,输入source .zshrc以更新.zshrc文件

然后再输入hexo命令,应该会看到能够运行

如果不能够运行就再去找别的教程,一个教程不一定能在所有设备上生效,我这个奇葩设备找了十几个教程,一点点试错才搞出来,最后才发现适合我自己设备的解决办法,一定要多试错,如果搞了半个多小时还没搞好就直接放弃休息一下,有时候甚至重启一下设备就会解决问题。而有的人可能一套下来根本没有遇到任何问题,就是这么玄学。

最终成功迁移hexo博客至mac上


…成功了?

并没有,我写完了以上文章,在macOS上第一次输入hexo g命令,然后等待,结果又爆了个Error

1
TypeError [ERR_INVALID_URL]: Invalid URL

去bing上搜,结果让人摸不着头脑,说是什么vue的跨域问题,看了一下解决办法,跟我的问题不是很相关。大脑一片空白,我完全没有想法。

又试着hexo s,报一样的错误。又因为我之前是可以正常使用hexo s的,所以应该是我之后干了什么事导致玄学问题出现。于是把写好的文章复制了一遍,保存本地,然后回滚git版本到刚刚clone下来的状态。重新一套搞好,再次hexo g,搞定。

由此发现回滚确实是解决问题的终极大法


这就结束了?还有劲爆尾杀!
hexo d时出现以下错误:

1
fatal: in unpopulated submodule '.deploy_git'

真是醉了,于是使用

1
2
3
rm -rf .deploy_git
hexo g
hexo d

搞定