文章

Jekyll博客环境配置记录

最近给博客配置服务器,因为提交阿里备案好几天初审都没有响应,所以放弃了,转用阿里香港服务器,没有什么大的应用场景,所以用的最便宜的 1核 - 1G RAM 的配置。服务器主要用来跑我个人的博客,和一些说明文档的存放,基于 jekyll,需要安装 ruby3+的环境,中间遇到了坑,记录一下。

Jekyll博客环境配置记录

最近给博客配置服务器,因为提交阿里备案好几天初审都没有响应,所以放弃了,转用阿里香港服务器,没有什么大的应用场景,所以用的最便宜的 1核 - 1G RAM 的配置。

服务器主要用来跑我个人的博客,和一些说明文档的存放,基于 jekyll,需要安装 ruby3+的环境,中间遇到了坑,记录一下。

阿里ECS常用的系统有Ubuntu和CentOS,都记录一下:

1. Ubuntu安装Jekyll

1.1. 环境

  • Ubuntu 22.04 LTS
  • 阿里 ECS HK

1.2. 安装 ruby

首先安装依赖

1
2
sudo apt update
sudo apt install git curl libssl-dev libreadline-dev zlib1g-dev autoconf bison build-essential libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev

然后使用 curl命令安装 rbenv

下面的安装脚本官方一直在更新,安装步骤可能会有变化,可能会失效,具体查看 https://github.com/rbenv/rbenv

1
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash

添加 ~/.rbenv/bin 到环境变量, 并生效环境变量

1
2
3
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc

然后终端输入

1
type rbenv

如果输出如下,配置rbenv成功

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Output
rbenv is a function
rbenv ()
{
    local command;
    command="${1:-}";
    if [ "$#" -gt 0 ]; then
        shift;
    fi;
    case "$command" in
        rehash | shell)
            eval "$(rbenv "sh-$command" "$@")"
        ;;
        *)
            command rbenv "$command" "$@"
        ;;
    esac
}

1.3. 使用 rbenv 安装 ruby

首先查看可用的 ruby 版本:

1
rbenv install -l

输出如下:

1
2
3
4
5
6
7
8
9
10
11
3.0.6
3.1.4
3.2.2
jruby-9.4.3.0
mruby-3.2.0
picoruby-3.0.0
truffleruby-23.0.0
truffleruby+graalvm-23.0.0

Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all / -L' to show all local versions.

我安装的是 3.2.2

1
rbenv install 3.2.2

然后,就开始下载 ruby 源码,并开始编译,耗时非常长,我用了半小时编译完,取决于你的电脑。

如果下载源码包比较缓慢,可以将下载地址拷贝出来,或者从 https://cache.ruby-china.com/pub/ruby/ 找到相应版本,使用浏览器下载,然后上传到 ~/.rbenv/cache/ 目录,重新执行安装命令,会从cache中找安装包

编译安装完,如果没有报错,设置ruby默认版本

1
rbenv global 3.2.2

查看一下 ruby 版本

1
ruby -v

输出:

1
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]

如果要切换会系统自带的ruby,可以:

1
rbenv global system

1.4. 安装 jekyll

如果之前安装过 jekyll,需要使用原版本的ruby gem 卸载 jekyll, 切换到原版本 ruby,执行 gem uninstall jekyll即可,然后再使用新版本的ruby gem 安装jekyll

ruby 版本对了,jekyll 安装就比较简单了,国内的话,主要取决于网络。 这里也记录一下,防止下回还去查资料. 也可以设置国内的 ruby gem 源,比如清华大学源:

Gem

1
2
3
4
5
# 添加镜像源并移除默认源
gem sources --add https://mirrors.tuna.tsinghua.edu.cn/rubygems/ --remove https://rubygems.org/
# 列出已有源
gem sources -l
# 应该只有镜像源一个

bundler

1
bundle config mirror.https://rubygems.org https://mirrors.tuna.tsinghua.edu.cn/rubygems

参考:清华 ruby gem

提示:可以使用 gem env 查看 ruby 和 gem 的一些系统环境变量

安装 bundler,主要是 jekyll 运行一些插件和依赖的时候用

1
gem install bundler

安装 jekyll 4.3.2

1
gem install jekyll

安装完可以看下版本

1
jekyll -v #output jekyll 4.3.2

2. Typora + 图床

使用的又拍云免费存储,每月提供10G流量,之前用过七牛云,换用又拍云后感觉图片加载速度飞快。 使用 PicGo + Typora 组合,可以实现粘贴自动上传本地图片,并生成链接

PicGo配置:

Typora配置:

3. 啰嗦的话

到这里博客的配置就完了,选择香港 ECS 的原因就是无需备案(update-2024-12-由于香港访问不稳定,最后还是乖乖备案了,备案速度也挺快,没想象的麻烦)。然后全世界的网络任意访问,不会出现国内ruby 下载半天 timeout 的问题。

这种感觉很自由和舒服。

第二个想说的是,环境工具找自己熟悉的用,不要别人说什么什么好就一定要用,自己体验一下,除非有绝对的优缺点,否则不要更换,浪费时间。

好了要开始写博客去了,立一个目标,小站能活过 10 年

本文由作者按照 CC BY 4.0 进行授权
PixPark_WeChat