文章

我的博客环境配置记录(阿里云ECS香港)

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

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

首先 ECS 系统的选择

ECS 系统一开始选择的 AliOS, 说是可以替代 centos(不更新了),兼容它的所有操作,包括命令安装等等。但是 centos 或者说 alios 安装 ruby 的资料比较少,找了好几个都没有安装成功。

尝试的方法包括

1
yum install ruby ruby-devel

安装到的是 ruby - 2.7版本,jekyll 要求至少是 3.0 版本;

第二个方法是使用 rbenv

参考了这篇文章:

https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-with-rbenv-on-centos-7

但是 编译过程中报错了,尝试了很多次,也失败了。

而且每次编译安装时间非常长,半小时左右,因为服务器CPU配置太烂了(1核1G)。

第三个方法是使用 rvm,这个方法安装 ruby 可以到 3.2.2版本,但是 gem 运行确报错了,大概是类似的错误:

our ruby installation is missing psych (for YAML output)

最后 google 一番,也解决了,但是实在费劲。

所以给我的感受就是 centos 安装点东西太费劲了,资料还少,有点资料还比较老。

所以我切换到了 Ubuntu 系统,无他,手熟尔😝

Ubuntu 安装 ruby 3.2.2

Ubutnu 安装 ruby 的资料就比较好找了,一搜一把,主要参考了这个,还是记录一下,以防以后自己折腾不用到处找了:

https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-with-rbenv-on-centos-7

环境

  • Ubuntu 22.04 LTS

  • 阿里 ECS HK

安装 rbenv

首先安装依赖

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

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
}

使用 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 源码,并开始编译,耗时非常长,我用了半小时编译完,取决于你的电脑。

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

1
rbenv global 3.2.2

查看一下 ruby 版本

1
ruby -v

输出:

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

安装 jekyll

ruby 版本对了,jekyll 安装就比较简单了,国内的话,主要取决于网络。 这里也记录一下,防止下回还去资料。

提示:可以使用 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

啰嗦的话

到这里 ruby & jekyll的配置就完了,选择香港 ECS 的原因就是无需备案。然后就是无科学上网问题,全世界的网络任意访问,不会出现国内,ruby 下载半天 timeout 的问题。 这种感觉很自由和舒服。

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

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

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