前言:

之前在 Mac OX S 系统上有部署过一次 Hexo,不过都是新手上路处于懵懂茫然的状态,最后怎么搭建成功了也不甚清楚。这一次电脑系统从 Windows8.1 换到 Ubuntu14.04,打算完全参照官方文档,自己从头到尾操作一次,也顺便熟悉一下 Ubuntu 系统,因为是完全自己摸索,其中参照了大量的文档,数次Google,其中的艰辛自不必说,满满都是泪。(我是小白T^T)

  • 系统环境:Ubuntu 14.04 LTS (如果是其他系统环境请自行 Google,这里围绕 Ubuntu 系统操作。)
  • 涉及内容:Git、GitHub SSH KEYS、node.js、npm等
  • 此教程亦适用于其他 Linux 发行版

Git And SSH-Key

安装 Git

Ctrl + Alt + T 打开 终端,输入如下命令:

1
sudo apt-get install git

生成 SSH keys

到这一步泪啊,我本身已经有一个 VPS 并且已经配置了 SSH keys,如果按照 官方文档 的教程操作,就会把我之前生成的与 VPS 之间的 SSH Keys 覆盖掉,于是经过多次 Google,找到了解决方法,此方法稍作修改也适用于解决多个 Github 账号的 SSH keys 配对问题。具体可以参考这里第二条:

下面列出步骤:
先查看下我已经存在的 SSH keys:

1
2
$ ls -al ~/.ssh
# Lists the files in your .ssh directory, if they exist

这是我这边的显示结果:

1
2
3
4
5
6
id_rsa # 这是私钥
id_rsa.pub # 这是公钥
github_rsa # 这是给 github 生成的私钥,下面会讲到创建方法
github_rsa.pub
known_hosts
config # 这个文件就是重点,下面会讲到。

下面我们来开始给创建 SSH key 吧。

1
2
ssh-keygen -t rsa -C ' "your_email@example.com" '
# 这里引号内改成你在 Github 上设置的邮箱,比如我的是 leyar.me@gmail.com

回车后会提示:

1
2
Generating public/private rsa key pair.
# 提示生成密钥配对

继续回车,提示:

1
2
Enter file in which to save the key (/home/leyar/.ssh/id_rsa): /home/leyar/.ssh/github_rsa
#注意!冒号后面这里官方帮助文档里是建议你直接回车,如果涉及多个 SSH keys,这个方法是不可行的。因此后面输入你想要创建的文件及其路径再回车。比如上面我输入的。 github_rsa 这个文件名你可以换别的。

然后出现提示:

1
2
Enter passphrase (empty 'for' no passphrase): # 这里输入你想设置的密码,也可以直接回车
Enter same passphrase again: # 再次输入密码,或者直接回车

官方文档强烈推荐设置密码,具体原因参考:Working with SSH key passphrases

界面会提示成功:

1
2
3
4
Your identification has been saved in /home/leyar/.ssh/github_rsa.
Your public key has been saved in /home/leyar/.ssh/github_rsa.pub.
The key fingerprint is:
01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db leyar.me@gmail.com

接下来也是至关重要的一步,它保证了 GitHub 能否正确读取到你新建的密钥。
编辑 ssh 配置文件:

1
vi ~/.ssh/config

在文件里面输入如下配置信息:

1
2
3
4
5
6
# GitHub user(leyar.me@gmail.com)
Host ileyar.github.com #这里修改成你自己的 host
HostName github.com
PreferredAuthentications publickey # 这个貌似可以不需要的,暂时还没弄清楚。
IdentityFile ~/.ssh/github_rsa # 这里填入你前面新建的密钥的路径
User git

输入完成后,保存,关闭。回到终端。

接下来看看你添加的 SSH key 是否在运行了。

1
2
3
ssh-add -l
2048 d9:1b:af:b4:8e:8d:28:bb:2e:b3:7c:ce:eb:83:c6:52 leyar@iLeyar (RSA)
2048 3e:22:25:65:0b:24:f5:51:43:27:8b:fd:91:3f:7f:85 leyar.me@gmail.com (RSA)

可以看到第二个就是我新建的,已经在运行了。如果没有出现,可以通过如下操作:

1
ssh-add ~/.ssh/github_rsa

接着就是把本地生成的 SSH key 拷贝到 GitHub 网页里面了。
打开 ~/.ssh/github_rsa.pub 文件,把里面的内容(公钥)复制出来。

1
vi ~/.ssh/github_rsa.pub

登陆 Github ,点击 Add SSH key,”Title“ 随便填写,然后把你复制的内容,粘贴到 ”Key“ 里面。点击 Add key,OK!
这里有官方的图文教程:点我

检验结果的时刻到来:

1
2
ssh -T git@github.com
Hi iLeyar! You’ve successfully authenticated, but GitHub does not provide shell access.

这里代表已经配对成功了~

  • 更多 SSH 相关的帮助信息可以查阅 GitHub Help .

安装Node.js

三种安装方法,前两种是我安装过的,后一种是 Google 到的。

从软件仓库安装(不推荐)

在 终端 输入 nodejs 或者 npm ,如果没有安装会提示你进行安装,命令如下:

1
2
3
sudo apt-get update
sudo apt-get nodejs
sudo apt-get install npm

直接安装完会遇到一个问题,即在后续安装完 hexo 使用 npm install 命令安装相关依赖时会出现这个错误提示:

1
/usr/bin/env: node: 不是目录

原因是用包管理器安装的话,二进制表文件被叫做 nodejs,但 hexo 用的是 node,解决办法就是通过软链接的形式将 nodejs 链接到 node:

1
ln -s /usr/bin/nodejs /usr/bin/node

  • 参考链接: 点这里
    这个安装方法我只进行了一半,出错了就把 nodejs 卸载了然后使用 Hexo 官方推荐的方法安装(即接下来的方法二)。解决办法是后面偶然 Google 到的。

通过 nvm 安装(推荐)

运行如下命令:

1
2
3
4
5
export NVM_DIR="$HOME/.nvm" && (
git clone https://github.com/creationix/nvm.git "$NVM_DIR"
cd "$NVM_DIR"
git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin`
) && . "$NVM_DIR/nvm.sh"

等待完成,
为了使 nvm 能开机自动启动,需要添加如下内容到你的~/.bashrc,~/.profile,或者~/.zshrc 文件中:

1
2
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

nvm 的部分使用说明

列出可安装包信息

1
nvm ls-remote

安装最新稳定版:

1
nvm install stable

启用安装好的版本

1
nvm use node

你也可以这样启用它

1
nvm run node --version

设置默认版本:

1
nvm alias default node

安装完成~

手动更新 nvm
1
2
3
4
cd "$NVM_DIR"
git fetch origin
git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin`
) && . "$NVM_DIR/nvm.sh"

参考链接:


安装 Hexo

如果前面的步骤都正确没问题,那么现在可以通过 npm 安装 hexo 了:

1
npm install -g hexo-cli

安装完成后,进行初始化操作:

1
2
3
4
mkdir blog
hexo init blog #初始化,创建一个你专门存放博客文件的文件夹,我这里把文件夹命名为 blog,你可以改成你想要的名字
cd blog #进入 blog 目录
npm install #安装相关依赖

一些使用说明

hexo 更新

1
npm update -g

安装插件

1
npm install <plugin-name> --save

卸载插件

1
npm uninstall <plugin-name>

hexo 简单使用命令参考 Hello World!

Markdown 代码语法高亮支持语言

写在后面

至此,本地安装 Hexo 完成。其他的配置,命令,发布等可以查阅官方文档:

相关资源:

本文最后更新:2017-2-19