迁移hexo博客至mac避坑指北
寒假开始的时候获得了一台mac,我妈退役下来的超级老机子,查了一下机子什么配置
1 | MacBook Air (13-inch, Early 2015) |
绝了,我觉得这玩意还能动真是个奇迹
结果实际运行结果让我大吃一惊,它居然还能下载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.改变npm默认的路径。 |
我没在对应的目录找到.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 | rm -rf .deploy_git |
搞定