为什么 jekyll 中的某些主题需要不同版本的 jekyll?
Why some themes in jekyll require different versions of jekyll?
我正在浏览 rubygems.org Jekyll 中的主题,它们给当前版本的 jekyll 带来了麻烦。
像这里一样,我正在试用 linaro-jekyll-theme。我得到了这个
正在从 https://rubygems.org/........ 中获取 gem 元数据。
解决依赖关系....
Bundler 找不到 gem“jekyll”的兼容版本:
在宝石文件中:
杰基尔 (~> 4.2.1)
linaro-jekyll-theme was resolved to 1.0, which depends on
jekyll (~> 3.4)
Bundler 找不到 gem“linaro-jekyll-theme”的兼容版本:
在快照中(Gemfile.lock):
linaro-jekyll-主题 (= 1.0)
在 Gemfile 中:
linaro-jekyll-主题
运行 bundle update
将从头开始重建您的快照,仅使用
Gemfile 中的 gems,这可能会解决冲突。
如何根据需要更改jekyll版本。换了这么多次版本有什么问题吗?
Jekyll 主题(或一般的 gem)可能依赖于另一个 gem 的特定版本,因为
- 取决于在更高版本中删除或更改的某些功能或
- 作者只是将版本固定为提醒,以便在发布新的主要版本时检查兼容性,因为主要版本可能会破坏 gem。
在这个例子中,作者可能已经知道他们的 gem 与 Jekyll 3.x 一起工作但不再与 4.x 一起工作,或者他们只是想稍后重新访问主题仍然使用 Jekyll 4.x 但从未使用过。
改变版本并不是一个真正的问题,因为有了 bundler,你可以很容易地做到这一点,而且只要你想或需要。但是降级 gem 可能存在一般性问题。发布较新版本主要有两个原因:
- 添加新功能和
- 修复错误和安全漏洞。
当您使用旧版本的 gem 时,您可能会错过新功能,如果您不需要它们,这些功能可能没问题。但您也可能会面临已在更高版本中修复的安全漏洞。
我的建议是:
- 尽可能使用最新版本的 gem。
- 如果另一个 gem 依赖于旧版本,因此您更新到最新版本,那么我会问自己是否真的值得使用这样一个过时的 gem .当 gem 长时间未更新以依赖最新版本时,很可能不再更新,这是一个风险。
- 如果您仍然想要或需要降级,那么我建议您查看 gem 的变更日志,您会错过哪些功能和错误修复。并在未来定期检查更新日志。
此上下文中的有用链接:Jekyll versions, as you can see Jekyll 3.4 is about five years old that is a lot of time to build new features, fix bugs and security vulnerabilities. And a lot of time for a theme author to make a theme compatible with newer versions. And the Jekyll Changelog 列表,您可以在其中检查降级到 3.4 而不是使用最新版本(当前为 4.2.1)时会丢失的内容。而且这个名单很长。
我正在浏览 rubygems.org Jekyll 中的主题,它们给当前版本的 jekyll 带来了麻烦。
像这里一样,我正在试用 linaro-jekyll-theme。我得到了这个
正在从 https://rubygems.org/........ 中获取 gem 元数据。 解决依赖关系.... Bundler 找不到 gem“jekyll”的兼容版本: 在宝石文件中: 杰基尔 (~> 4.2.1)
linaro-jekyll-theme was resolved to 1.0, which depends on
jekyll (~> 3.4)
Bundler 找不到 gem“linaro-jekyll-theme”的兼容版本: 在快照中(Gemfile.lock): linaro-jekyll-主题 (= 1.0)
在 Gemfile 中: linaro-jekyll-主题
运行 bundle update
将从头开始重建您的快照,仅使用
Gemfile 中的 gems,这可能会解决冲突。
如何根据需要更改jekyll版本。换了这么多次版本有什么问题吗?
Jekyll 主题(或一般的 gem)可能依赖于另一个 gem 的特定版本,因为
- 取决于在更高版本中删除或更改的某些功能或
- 作者只是将版本固定为提醒,以便在发布新的主要版本时检查兼容性,因为主要版本可能会破坏 gem。
在这个例子中,作者可能已经知道他们的 gem 与 Jekyll 3.x 一起工作但不再与 4.x 一起工作,或者他们只是想稍后重新访问主题仍然使用 Jekyll 4.x 但从未使用过。
改变版本并不是一个真正的问题,因为有了 bundler,你可以很容易地做到这一点,而且只要你想或需要。但是降级 gem 可能存在一般性问题。发布较新版本主要有两个原因:
- 添加新功能和
- 修复错误和安全漏洞。
当您使用旧版本的 gem 时,您可能会错过新功能,如果您不需要它们,这些功能可能没问题。但您也可能会面临已在更高版本中修复的安全漏洞。
我的建议是:
- 尽可能使用最新版本的 gem。
- 如果另一个 gem 依赖于旧版本,因此您更新到最新版本,那么我会问自己是否真的值得使用这样一个过时的 gem .当 gem 长时间未更新以依赖最新版本时,很可能不再更新,这是一个风险。
- 如果您仍然想要或需要降级,那么我建议您查看 gem 的变更日志,您会错过哪些功能和错误修复。并在未来定期检查更新日志。
此上下文中的有用链接:Jekyll versions, as you can see Jekyll 3.4 is about five years old that is a lot of time to build new features, fix bugs and security vulnerabilities. And a lot of time for a theme author to make a theme compatible with newer versions. And the Jekyll Changelog 列表,您可以在其中检查降级到 3.4 而不是使用最新版本(当前为 4.2.1)时会丢失的内容。而且这个名单很长。