在Fedora搭建jekyll环境——dnf module

本文最后更新于:2022年8月10日 晚上

起因

我之前的博客一直用的是这个主题,直接使用 Fedora 官方源里的 rubygem-jekyll 似乎无法正常安装 Gemfile 中的依赖。之前使用 Archlinux 的时候,我是直接从 AUR 安装了一个 ruby-2.6 来使用的,但最近转到 Fedora 以后似乎就没法用这样的方案来解决了。

好在天无绝人之路,Fedora 也提供了安装老版本的 ruby 的方案——使用 dnf 的 module 功能。

关于 dnf module

关于 dnf 的 module 功能到底是用来做什么的,其实我并不清楚。虽说 Fedora 提供了文档,但就凭我的读中文文档都吃力的水准,似乎没有办法通过英文文档来理解这个全新的概念,所以我选择直接莽过去

就我目前的理解而言,dnf 的 module 似乎并不致力于帮助用户完成系统内某一程序的新老版本共存的难题,而仅仅是给用户提供了停留在老版本软件的权利。module 所负责的,是保证老版本的程序能在你的系统上正常运行起来,而不会因为其他组件的更新而导致老版本的程序无法正常使用。

基本的使用方法

通过下列命令可以查看目前所支持的 module

1
sudo dnf module list

通过下列命令可以选择 module 所要停留的版本( 以 ruby 2.7 为例 )

1
sudo dnf module enable ruby:2.7

通过下列命令可以取消锁定 module 程序所要停留的版本( 以 ruby 为例 )

1
sudo dnf module reset ruby

开始配置该 jekyll 主题的运行环境

1
2
3
4
5
sudo dnf module install ruby:2.7
sudo dnf install ruby-devel

cd /path/to/the/jekyll-blog/
bundle install --path vendor/bundle

完成后,我们即可在 jekyll-blog 目录下 使用 bundle exec jekyll 来正常运行 jekyll 了。试着跑一下 bundle exec jekyll server

成功,彻彻底底!

参考材料

Fedora Docs

openSUSE 中文社区主页贡献指南

Switching to use Ruby 2.7 (or older) in Fedora 34 using DNF ModulesWebArchive


在Fedora搭建jekyll环境——dnf module
https://zhul.in/2022/01/12/dnf-module-in-setting-up-the-jekyll/
作者
竹林里有冰
发布于
2022年1月12日
更新于
2022年8月10日
许可协议