本文目录
文首语
努力让每个跌在Hexo坑里的人爬起来 ==!。
Hexo是一个基于Nodo.js的轻量级博客框架,中文的官方文档可以看这里(这里也包括了如何安装和使用),但是建议在安装前阅读本文,以减少可能的安装与应用错误。
Hexo在masOS上的主要问题就两个:
- Git
- 权限(主要集中在NPM上)
安装前必读
环境
macOS在安装前务必安装好
Xcode
,如果不安装好,有可能出现各种编译问题,包括git
命令,实际上都需要Xcode
支持。npm
的安装,不解释,官方源不能用,所以初步在安装完nodo.js
后,推荐立刻将npm
源更新为淘宝源,这里提供了三种方案:
通过config命令:
|
|
通过命令行进行指定:
|
|
编辑~/.npmrc加入以下内容(淘宝源):
|
|
以上三种方案只需要配置一次即可。
注意,如果你在国内,这一步是必要的。否则在使用NPM的路上,呵呵呵。
|
|
这三行错误是因为 DTrace 错误 (Mac OS X)
。
在此基础上,官方给出了一个简洁的安装方案,只需要执行:
|
|
简洁安装hexo。
而实际上,只要:
用国内源把
dtrace-prodider
这个插件装好,或者找到之前node_modules
,放到新的目录下,大约50MB。
所以在安装、使用时遇到错误,请记得用国内淘宝源进行更新,比如说会遇到的swig
报错,需要用npm重新安装、升级。
命令权限
关于频繁输入SUDO
的问题:
//2017.07.31更新
NPM在安装node.js和一些组件的时候,在Mac上需要正确的权限安装,正确安装后,执行命令无需再sudo
,按照官方推荐的方案官方文档戳我:
文章列出了两种方法,第一种就是修改 /usr/local/node_modules
、/usr/local/bin
和 /usr/local/share
这三个目录的 owner:
|
|
这种方法适合这台电脑只有一个开发者使用的场景。
但是我司还有一台电脑是公共的,可以让不同的开发者临时使用,那么就是用方法二:
|
|
然后修改你的 .profile 或者 .zshrc(像我这样用zsh的话),添加:
|
|
根据 ~/.profile
内容更新当前 Shell:
|
|
从此以后 npm install -g
安装的模块就都会到该用户名字下面的 ~/.npm-global
目录中,这样就做到了用户隔离。
Git常见问题
Permission denied
这是遇到的最常见问题,网上有很多解决方案,比较常见的是清空.deploy_git
文件夹,然后重新生成,实际上这样的方案很蠢。
遇到这个错误,首先要做的是进行错误定位,测试问题出在哪儿:ssh -T git@目标主机
如果提示验证成功,比如Gitea会提示:
|
|
说明你的ssh key并没有问题。
这时候需要检查~/.ssh
目录下的config
配置文件,这个配置文件是为了存在多个ssh key时进行ssh key管理的。config
的配置规则如下:
|
|
可以在config
文件中配置多个。
检查没有问题后,而依然出现这种问题的,大多数是同步了目录,在其他电脑上重新部署,希望多个地点更新hexo存在的问题,发生这样的问题主要是因为git的配置文件引起的,可以到/.deploy_git/.git
目录中找到git的config
文件进行检查,检查其中对remote
的描述,是否同本地ssh
中config
中的Host hostname
命名一致。
后来问题依旧,GOOGLE到了一个方案,解决了这个问题,在本机添加一下SSH KEY
|
|
关于这个问题,后来经过查资料,引起的主要原因是因为在执行生成发布服务的时候,前文用了sudo
指令,这个命令只能临时的解决问题,所以要么把 ssh-add
写到bash里,开启终端时自动完成,要么采用:
|
|
指令,将sshkey储存到MAC的钥匙串管理中,这样当其他程序请求sshkey的时候会向Keychain请求秘钥。
一些有趣的插件:
阿里云OSS插件
不知道什么时候开始,OSS支持静态站点的托管,采用这个插件,可以将所有的静态页面托管在OSS里。戳我抵达