Search code examples
rubyjekyllbundletravis-ci

Why can't Jekyll find gems that are presented in my Gemfile.lock?


First of all, I'm aware that I'm running the risk that this question is already answered somewhere else, but because I don't know the origin of this issue I'm not sure what to search for to find the answer.

The Problem

I'm running bundle and Jekyll locally, which works perfectly fine. But when I install on Travis-CI, it presents me with the error Could not find public_suffix-4.0.4 in any of the sources. However, public_suffix-4.0.4 is clearly in my Gemfile.lock.

My Question

What might be causing the problem and what hints should I look for to find an answer?

Error message

Could not find public_suffix-4.0.4 in any of the sources

.travis.yml

(relevant parts)

script:
- gem install jekyll
- bundle install --full-index 
- bundle exec jekyll build -d _build

Gemfile

# frozen_string_literal: true

source "https://rubygems.org"

git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

# gem "rails"

gem "jekyll", "~> 4.0"

Gemfile.lock

GEM
  remote: https://rubygems.org/
  specs:
    addressable (2.7.0)
      public_suffix (>= 2.0.2, < 5.0)
    colorator (1.1.0)
    concurrent-ruby (1.1.6)
    em-websocket (0.5.1)
      eventmachine (>= 0.12.9)
      http_parser.rb (~> 0.6.0)
    eventmachine (1.2.7)
    ffi (1.12.2)
    forwardable-extended (2.6.0)
    http_parser.rb (0.6.0)
    i18n (1.8.2)
      concurrent-ruby (~> 1.0)
    jekyll (4.0.0)
      addressable (~> 2.4)
      colorator (~> 1.0)
      em-websocket (~> 0.5)
      i18n (>= 0.9.5, < 2)
      jekyll-sass-converter (~> 2.0)
      jekyll-watch (~> 2.0)
      kramdown (~> 2.1)
      kramdown-parser-gfm (~> 1.0)
      liquid (~> 4.0)
      mercenary (~> 0.3.3)
      pathutil (~> 0.9)
      rouge (~> 3.0)
      safe_yaml (~> 1.0)
      terminal-table (~> 1.8)
    jekyll-sass-converter (2.1.0)
      sassc (> 2.0.1, < 3.0)
    jekyll-watch (2.2.1)
      listen (~> 3.0)
    kramdown (2.1.0)
    kramdown-parser-gfm (1.1.0)
      kramdown (~> 2.0)
    liquid (4.0.3)
    listen (3.2.1)
      rb-fsevent (~> 0.10, >= 0.10.3)
      rb-inotify (~> 0.9, >= 0.9.10)
    mercenary (0.3.6)
    pathutil (0.16.2)
      forwardable-extended (~> 2.6)
    public_suffix (4.0.4)
    rb-fsevent (0.10.3)
    rb-inotify (0.10.1)
      ffi (~> 1.0)
    rouge (3.18.0)
    safe_yaml (1.0.5)
    sassc (2.2.1)
      ffi (~> 1.9)
    terminal-table (1.8.0)
      unicode-display_width (~> 1.1, >= 1.1.1)
    unicode-display_width (1.7.0)

PLATFORMS
  ruby

DEPENDENCIES
  jekyll (~> 4.0)

BUNDLED WITH
   2.1.4


Solution

  • If another bundle install didn't work, delete Gemfile.lock then try specifying the version for public_suffix in Gemfile like so:

    gem "public_suffix", "~> 4.0.4"
    

    Then run:

    bundle update jekyll
    bundle install
    bundle exec jekyll serve