[英]can't find gem jekyll (>= 0.a) with executable jekyll (Gem::GemNotFoundException)
[英]Can't install gem jekyll-content-security-policy-generator in Jekyll
我在 Raspberry Pi 4(運行我用來發布網站的 Jenkins 管道)上的 Jekyll 上安裝 gem 時遇到問題。
我正在嘗試安裝基於https://github.com/strongscot/jekyll-content-security-policy-generator的 jekyll jekyll-content-security-policy-generator
插件。
但是我一直在安裝它,我不知道如何讓它工作。
這就是我的Gemfile 的樣子:
# frozen_string_literal: true
source "https://rubygems.org"
# Use the latest version.
gem 'jekyll', '~> 4.0'
group :jekyll_plugins do
# (other jekyll plugins)
gem 'nokogiri'
gem 'jekyll-content-security-policy-generator'
gem 'jekyll_picture_tag', '~> 2.0'
gem 'jekyll-seo-tag', '~> 2.8.0'
gem 'jekyll-sitemap', '~> 1.4.0'
end
這就是我現在嘗試過的:
> bundle install
[...]
Bundle complete! 6 Gemfile dependencies, 42 gems now installed.
> JEKYLL_ENV=production /var/lib/jenkins/.rbenv/shims/jekyll build
ERROR: It looks like you're trying to use Nokogiri as a precompiled native gem on a system
with an unsupported version of glibc.
/lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.29' not found (required by /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/nokogiri-1.14.1-arm-linux/lib/nokogiri/3.1/nokogiri.so) - /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/nokogiri-1.14.1-arm-linux/lib/nokogiri/3.1/nokogiri.so
If that's the case, then please install Nokogiri via the `ruby` platform gem:
gem install nokogiri --platform=ruby
or:
bundle config set force_ruby_platform true
Please visit https://nokogiri.org/tutorials/installing_nokogiri.html for more help.
/var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/nokogiri-1.14.1-arm-linux/lib/nokogiri/extension.rb:7:in `require_relative': /lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.29' not found (required by /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/nokogiri-1.14.1-arm-linux/lib/nokogiri/3.1/nokogiri.so) - /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/nokogiri-1.14.1-arm-linux/lib/nokogiri/3.1/nokogiri.so (LoadError)
from /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/nokogiri-1.14.1-arm-linux/lib/nokogiri/extension.rb:7:in `<top (required)>'
from /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/nokogiri-1.14.1-arm-linux/lib/nokogiri.rb:8:in `require_relative'
from /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/nokogiri-1.14.1-arm-linux/lib/nokogiri.rb:8:in `<top (required)>'
from /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/bundler-2.4.6/lib/bundler/runtime.rb:60:in `require'
from /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/bundler-2.4.6/lib/bundler/runtime.rb:60:in `block (2 levels) in require'
from /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/bundler-2.4.6/lib/bundler/runtime.rb:55:in `each'
from /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/bundler-2.4.6/lib/bundler/runtime.rb:55:in `block in require'
from /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/bundler-2.4.6/lib/bundler/runtime.rb:44:in `each'
from /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/bundler-2.4.6/lib/bundler/runtime.rb:44:in `require'
from /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/bundler-2.4.6/lib/bundler.rb:195:in `require'
from /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/jekyll-4.3.2/lib/jekyll/plugin_manager.rb:53:in `require_from_bundler'
from /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/jekyll-4.3.2/exe/jekyll:11:in `<top (required)>'
from /var/lib/jenkins/.rbenv/versions/3.1.3/bin/jekyll:25:in `load'
from /var/lib/jenkins/.rbenv/versions/3.1.3/bin/jekyll:25:in `<main>'
谷歌搜索這個錯誤讓我想到了第二種方法,它是相同的,但它首先設置了一個配置標志。
> bundle config set force_ruby_platform true
> bundle install
> JEKYLL_ENV=production /var/lib/jenkins/.rbenv/shims/jekyll build
/var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/bundler-2.4.6/lib/bundler/definition.rb:524:in `materialize': Could not find sass-embedded-1.57.1 in locally installed gems (Bundler::GemNotFound)
from /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/bundler-2.4.6/lib/bundler/definition.rb:197:in `specs'
from /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/bundler-2.4.6/lib/bundler/definition.rb:254:in `specs_for'
from /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/bundler-2.4.6/lib/bundler/runtime.rb:18:in `setup'
from /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/bundler-2.4.6/lib/bundler.rb:170:in `setup'
from /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/jekyll-4.3.2/lib/jekyll/plugin_manager.rb:52:in `require_from_bundler'
from /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/jekyll-4.3.2/exe/jekyll:11:in `<top (required)>'
from /var/lib/jenkins/.rbenv/versions/3.1.3/bin/jekyll:25:in `load'
from /var/lib/jenkins/.rbenv/versions/3.1.3/bin/jekyll:25:in `<main>'
我已手動安裝該 gem ( sass-embedded
),甚至將其包含在 Gemfile 中,但問題仍然存在。 如果將上述標志設置為 false,則會出現 GLIBC 錯誤。
這怎么能解決?
如果您需要有關該問題的更多詳細信息,請在評論中告訴我; 我會相應地更新問題。
先感謝您。
好吧,我為此管理了一個骯臟的解決方案。 我嘗試手動安裝jekyll-content-security-policy-generator.gemspec
和sass-embedded
但沒有成功(從 Github 克隆)。 請原諒我,因為我的測試不是很嚴格(實際上有點混亂),但最后,我遇到了這個錯誤:
> jenkins@retropie:/tmp/balandisinteriorismo.com$
> JEKYLL_ENV=production /var/lib/jenkins/.rbenv/shims/jekyll build
/var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/3.1.0/rubygems/specification.rb:1453:in `rescue in block in activate_dependencies': Could not find 'sass-embedded' (~> 1.54) among 128 total gem(s) (Gem::MissingSpecError)
Checked in 'GEM_PATH=/var/lib/jenkins/.local/share/gem/ruby/3.1.0:/var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0' at: /var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/specifications/jekyll-sass-converter-3.0.0.gemspec, execute `gem env` for more information
為什么我想出這個 1.54 版本? 我不知道,但我正在嘗試安裝sass-converter
的第一個版本 1.58.0 和后來的 1.57.1。 然后我又開始玩我項目的 Gemfile:
bundle install
JEKYLL_ENV=production /var/lib/jenkins/.rbenv/shims/jekyll build
無論如何,看看:
/var/lib/jenkins/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/specifications/jekyll-sass-converter-3.0.0.gemspec
我已將 1.54 值替換為 1.57.1 並再次運行 bundle install 和 Jekyll build 命令(均按此順序)。 有效!
這是我最終的 Gemfile:
group :jekyll_plugins do
# (other jekyll plugins)
gem 'sass-embedded', '~> 1.57.1'
gem 'nokogiri', :platforms=>:ruby
gem 'jekyll-content-security-policy-generator'
gem 'jekyll_picture_tag', '~> 2.0'
gem 'jekyll-seo-tag', '~> 2.8.0'
gem 'jekyll-sitemap', '~> 1.4.0'
以及上面提到的gemspec的內容:
# -*- encoding: utf-8 -*-
# stub: jekyll-sass-converter 3.0.0 ruby lib
Gem::Specification.new do |s|
s.name = "jekyll-sass-converter".freeze
s.version = "3.0.0"
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
s.require_paths = ["lib".freeze]
s.authors = ["Parker Moore".freeze]
s.date = "2022-12-21"
s.email = ["parkrmoore@gmail.com".freeze]
s.homepage = "https://github.com/jekyll/jekyll-sass-converter".freeze
s.licenses = ["MIT".freeze]
s.required_ruby_version = Gem::Requirement.new(">= 2.6.0".freeze)
s.rubygems_version = "3.3.26".freeze
s.summary = "A basic Sass converter for Jekyll.".freeze
s.installed_by_version = "3.3.26" if s.respond_to? :installed_by_version
if s.respond_to? :specification_version then
s.specification_version = 4
end
if s.respond_to? :add_runtime_dependency then
s.add_runtime_dependency(%q<sass-embedded>.freeze, ["~> 1.57.1"])
s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
s.add_development_dependency(%q<rake>.freeze, [">= 0"])
s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
s.add_development_dependency(%q<rubocop-jekyll>.freeze, ["~> 0.12.0"])
else
s.add_dependency(%q<sass-embedded>.freeze, ["~> 1.57.1"])
s.add_dependency(%q<bundler>.freeze, [">= 0"])
s.add_dependency(%q<rake>.freeze, [">= 0"])
s.add_dependency(%q<rspec>.freeze, [">= 0"])
s.add_dependency(%q<rubocop-jekyll>.freeze, ["~> 0.12.0"])
end
end
Jenkins output:
15:34:29 + JEKYLL_ENV=production /var/lib/jenkins/.rbenv/shims/jekyll build
15:34:31 Resolving dependencies...
15:34:32 Configuration file: /var/lib/jenkins/jobs/Paloma Avellán Web/workspace/_config.yml
15:34:32 Source: /var/lib/jenkins/jobs/Paloma Avellán Web/workspace
15:34:32 Destination: /var/lib/jenkins/jobs/Paloma Avellán Web/workspace/_site
15:34:32 Incremental build: disabled. Enable with --incremental
15:34:32 Generating...
15:34:33 Converting style attribute to inline style, inserted into HEAD.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.