Bundle Exec Jekyll Serve Error

Hello,

When running bundle exec jekyll serve in my Mac terminal, I get the following returned:

Ignoring fast-stemmer-1.0.2 because its extensions are not built. Try: gem pristine fast-stemmer --version 1.0.2

/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require’: cannot load such file – rubygems/uri (LoadError)

from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require’

from /Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/bundler-2.6.2/lib/bundler/rubygems_ext.rb:459:in `module:Gem

from /Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/bundler-2.6.2/lib/bundler/rubygems_ext.rb:25:in `<top (required)>’

from /Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/bundler-2.6.2/lib/bundler.rb:10:in `require_relative’

from /Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/bundler-2.6.2/lib/bundler.rb:10:in `<top (required)>’

from /Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/bundler-2.6.2/lib/bundler/setup.rb:6:in `require_relative’

from /Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/bundler-2.6.2/lib/bundler/setup.rb:6:in `<top (required)>’

from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require’

from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require’

I’m not sure what’s going on, is there anyone that can help?

I’m assuming you are running on a Mac. Go to a terminal and type:

ruby -v

If you see Ruby 2.6, then you are probably using the pre-installed macOS Ruby. Your project is looking for 3.1.0. Make sure you make 3.1.0 the default. How you do that depends on how you installed Ruby.

For example, if you used rbenv, type:

rbenv global 3.1.0

If you used rvm, type:

rvm use 3.1.0

If you did not install Ruby, do that first :slight_smile:

Hi BillRaymond, thank you so much for the response. I am indeed running on a mac. When I type ruby -v, I get:

ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [x86_64-darwin23]

When I type in rvm use 3.1.0, I get:

Using /Users/min/.rvm/gems/ruby-3.1.0

bundle exec jekyll serve is still giving me the same error. Do you have any other ideas as to what might be causing this? Any help is much appreciated!

My recommendation is:

Maybe jekyll serve will work for you.

Not sure why but on stock Fedora Linux this command works, while the one from the official manual does not.

Hi,

Thank you for the suggestion! Devcontainers seem really cool and Docker is amazing. When I try to open my project in VSCode, I follow VSCode’s suggestion to reopen with Docker. The issue I’m running into now is that it hangs when trying to configure or connect to dev container.

Do you know why this might be happening?

No idea. I’d suggest searching for the error message, and also make sure that the docker service is running.

If you are still receiving the same error then I think you are still encountering an issue with Ruby. Type the following into the terminal:

which ruby
which gem
which bundler

Does each one show up in the /Users/min/.rvm/ folder?

Both which ruby and which bundler show me that they show up in the /Users/min/.rvm/ folder. However, when I run which gem, I get:

min@Daniels-MacBook-Air dan-min-kim.github.io % which gem
gem () {
\typeset result
(
\typeset rvmrc
rvm_rvmrc_files=(“/etc/rvmrc” “$HOME/.rvmrc”)
if [[ -n “${rvm_prefix:-}” ]] && ! [[ “$HOME/.rvmrc” -ef “${rvm_prefix}/.rvmrc” ]]
then
rvm_rvmrc_files+=(“${rvm_prefix}/.rvmrc”)
fi
for rvmrc in “${rvm_rvmrc_files[@]}”
do
[[ -s “${rvmrc}” ]] && source “${rvmrc}” || true
done
unset rvm_rvmrc_files
command gem “$@”
) || result=$?
hash -r
return ${result:-0}
}

Which I’m unable to parse. Which ruby and which bundler give me this:
/Users/min/.rvm/rubies/ruby-3.1.0/bin/ruby
/Users/min/.rvm/rubies/ruby-3.1.0/bin/bundler

Okay, we are getting into the weeds here with an RVM installation, so my apologies, but I think we will have to work through these steps one at a time.

I think rvm is stepping on your gems :slight_smile:

  1. Try the following in your terminal:
command -v gem
  1. What does it look like? I am expecting it to look something like this:
/Users/min/.rvm/rubies/ruby-3.1.0/bin/gem
  1. If you do not see something similar to #2, then quit all terminal sessions and re-open and type:
rvm reload
hash -r
which gem

Please let me know what which gem returns.

Hi,

Thank you so much for your help; it’s amazing that I can find this kind of help without so much trouble.

command -v gem returned simply: gem

I quit terminal, ran the commands you gave. And which gem returns:

gem () {
\typeset result
(
\typeset rvmrc
rvm_rvmrc_files=(“/etc/rvmrc” “$HOME/.rvmrc”)
if [[ -n “${rvm_prefix:-}” ]] && ! [[ “$HOME/.rvmrc” -ef “${rvm_prefix}/.rvmrc” ]]
then
rvm_rvmrc_files+=(“${rvm_prefix}/.rvmrc”)
fi
for rvmrc in “${rvm_rvmrc_files[@]}”
do
[[ -s “${rvmrc}” ]] && source “${rvmrc}” || true
done
unset rvm_rvmrc_files
command gem “$@”
) || result=$?
hash -r
return ${result:-0}
}

No problem! I am not an expert at Ruby or RVM, but I am doing my best, having worked with Jekyll for so long.

I think what is happening is RVM is covering your gem command for some reason.

Let’s remove gem function from your shell environment. Then, we can remove the lookup cache for the gem function. The hash -r may take a bit to run depending on what is installed on your computer.

unset -f gem
hash -r

Next, try rechecking the gem:

which gem

Please let me know what you see.

Wonderful!

Things have changed and I suspect for the better. Here is the return for my which gem command after endtering those commands:

/Users/min/.rvm/rubies/ruby-3.1.0/bin/gem

Great! Try the following command in your Jekyll folder:

bundle exec jekyll serve

If that does not work, which it probably the case, stay in your Jekyll folder and run:

gem install bundler
bundle install
gem install jekyll

Finally, try the Jekyll serve command again.

I hope this resolves your issue!

Hi,

Unfortunately, after running the bundle install command, I’m getting:

An error occurred while installing sass-embedded (1.85.1), and Bundler
cannot continue.

In Gemfile:
jekyll was resolved to 4.4.1, which depends on
jekyll-sass-converter was resolved to 3.1.0, which depends on
sass-embedded

Is there any way I can start over from scratch?

You may need to update the bundle (even after an install, I sometimes have to run an update). So try this first:

bundle update
bundle exec jekyll serve

If that option does not work for you, try installing sass-embedded manually:

gem install sass-embedded -v 1.85.1
bundle exec jekyll serve

Or, if that does not work and you have Homebrew installed, try:

brew install sass/sass/sass-embedded
bundle exec jekyll serve

Yes, you can completely re-install Ruby if you like, and I can walk you through that. Or you can use Docker Dev Containers as @george-gca mentioned. Or, if sass-embedded works for you and there is another error, I will do my best to help you with the next one :slight_smile:

I created a detailed video showing you how to use Docker with Visual Studio Code Dev Containers. It removes the hassle of running Jekyll directly on your macOS environment and instead puts it in an easy-to-use Docker container that runs Linux. It will take up very little memory and disk space and allow you to quickly replicate your environment on a new computer.

Whoops, I should have asked you to do this:

brew install sass/sass/sass-embedded
bundle exec jekyll serve
bundle install
bundle update

Hi Bill,

I’m so sorry for all this trouble, thank you for your persistence. Here is my latest. Every time I change to my project directory, I check which gem. I see that it’s not what we’d like it to be so I run the unset -f gem and hash -r commands.

I run bundle exec jekyll serve and I get:

Could not find jekyll-4.4.1, jekyll-sass-converter-3.1.0, sass-embedded-1.85.1 in locally installed gems
Run bundle install to install missing gems.

Then I run bundle install and I get:
Fetching gem metadata from https://rubygems.org/........

Resolving dependencies…

Installing sass-embedded 1.85.1 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/sass-embedded-1.85.1/ext/sass

/Users/min/.rvm/rubies/ruby-3.1.0/bin/ruby

-I/Users/min/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0 -rrubygems

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/rake-13.2.1/exe/rake

RUBYARCHDIR=/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/extensions/x86_64-darwin-23/3.1.0/sass-embedded-1.85.1

RUBYLIBDIR=/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/extensions/x86_64-darwin-23/3.1.0/sass-embedded-1.85.1

gem install --force --install-dir

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/sass-embedded-1.85.1/ext/sass/ruby

–no-document --ignore-dependencies --platform x86_64-darwin-23 --version 1.85.1

sass-embedded

rake aborted!

NameError: uninitialized constant JSON::Fragment

<internal:/Users/min/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in

`require’

<internal:/Users/min/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in

`require’

<internal:/Users/min/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in

`require’

<internal:/Users/min/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in

`require’

<internal:/Users/min/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in

`require’

<internal:/Users/min/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in

`require’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/sass-embedded-1.85.1/ext/sass/Rakefile:567:in

`package_json’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/sass-embedded-1.85.1/ext/sass/Rakefile:573:in

`dart_sass_version’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/sass-embedded-1.85.1/ext/sass/Rakefile:579:in

`dart_sass’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/sass-embedded-1.85.1/ext/sass/Rakefile:52:in

`rescue in block in <top (required)>’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/sass-embedded-1.85.1/ext/sass/Rakefile:48:in

`block in <top (required)>’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/sass-embedded-1.85.1/ext/sass/Rakefile:72:in

`block in <top (required)>’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/rake-13.2.1/exe/rake:27:in

`’

Caused by:

Gem::UnsatisfiableDependencyError: Unable to resolve dependency: user requested

‘sass-embedded (= 1.85.1)’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/sass-embedded-1.85.1/ext/sass/Rakefile:413:in

`gem_install’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/sass-embedded-1.85.1/ext/sass/Rakefile:48:in

`block in <top (required)>’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/sass-embedded-1.85.1/ext/sass/Rakefile:72:in

`block in <top (required)>’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/rake-13.2.1/exe/rake:27:in

`’

Tasks: TOP => dart-sass/sass

(See full trace by running task with --trace)

rm -rf

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/sass-embedded-1.85.1/ext/sass/ruby

rake failed, exit code 1

Gem files will remain installed in

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/sass-embedded-1.85.1

for inspection.

Results logged to

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/extensions/x86_64-darwin-23/3.1.0/sass-embedded-1.85.1/gem_make.out

/Users/min/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/rubygems/ext/builder.rb:95:in

`run’

/Users/min/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/rubygems/ext/rake_builder.rb:28:in

`build’

/Users/min/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/rubygems/ext/builder.rb:161:in

`build_extension’

/Users/min/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/rubygems/ext/builder.rb:195:in

`block in build_extensions’

/Users/min/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/rubygems/ext/builder.rb:192:in

`each’

/Users/min/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/rubygems/ext/builder.rb:192:in

`build_extensions’

/Users/min/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/rubygems/installer.rb:847:in

`build_extensions’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/bundler-2.6.2/lib/bundler/rubygems_gem_installer.rb:111:in

`build_extensions’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/bundler-2.6.2/lib/bundler/rubygems_gem_installer.rb:30:in

`install’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/bundler-2.6.2/lib/bundler/source/rubygems.rb:205:in

`install’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/bundler-2.6.2/lib/bundler/installer/gem_installer.rb:55:in

`install’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/bundler-2.6.2/lib/bundler/installer/gem_installer.rb:17:in

`install_from_spec’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/bundler-2.6.2/lib/bundler/installer/parallel_installer.rb:133:in

`do_install’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/bundler-2.6.2/lib/bundler/installer/parallel_installer.rb:124:in

`block in worker_pool’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/bundler-2.6.2/lib/bundler/worker.rb:62:in

`apply_func’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/bundler-2.6.2/lib/bundler/worker.rb:57:in

`block in process_queue’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/bundler-2.6.2/lib/bundler/worker.rb:54:in

`loop’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/bundler-2.6.2/lib/bundler/worker.rb:54:in

`process_queue’

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/bundler-2.6.2/lib/bundler/worker.rb:90:in

`block (2 levels) in create_threads’

An error occurred while installing sass-embedded (1.85.1), and Bundler

cannot continue.

In Gemfile:

jekyll was resolved to 4.4.1, which depends on

jekyll-sass-converter was resolved to 3.1.0, which depends on

sass-embedded

I tried manually install the sass-embedded gem by running the command you gave and got:
Successfully installed sass-embedded-1.85.1-x86_64-darwin

Parsing documentation for sass-embedded-1.85.1-x86_64-darwin

Done installing documentation for sass-embedded after 1 seconds

1 gem installed

Then I run bundle exec jekyll serve and I still get:
Could not find jekyll-4.4.1, jekyll-sass-converter-3.1.0, sass-embedded-1.85.1 in locally installed gems

Run bundle install to install missing gems.

bundle install just gives me back what I showed above.

I think I will just try to follow your video; in the meantime I can still develop my personal page, just pretty inefficiently. When I try to run my project in VSCode I get:
The git source https://github.com/RobertoJBeltran/jekyll-terser.git is not yet checked out. Please run bundle install before trying to start your application.

And my issues with bundle install yet again leave me unable to use what I need.

If you have ideas, I’m still all ears and willing to try anything. Thank you again for all of your help and effort so far. Sorry I had to display some stuff as code above when it’s not code because I’m a new user and I cannot include more than 2 links and for some reason some of the outputs I pasted above were auto generated as links.

Just a tip, when pasting output content, paste it between 3 backticks, so it is more readable, as:

```
long output content here
```

as an example from your output:

Fetching gem metadata from https://rubygems.org/........

Resolving dependencies…

Installing sass-embedded 1.85.1 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/sass-embedded-1.85.1/ext/sass

/Users/min/.rvm/rubies/ruby-3.1.0/bin/ruby

-I/Users/min/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0 -rrubygems

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/rake-13.2.1/exe/rake

RUBYARCHDIR=/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/extensions/x86_64-darwin-23/3.1.0/sass-embedded-1.85.1

RUBYLIBDIR=/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/extensions/x86_64-darwin-23/3.1.0/sass-embedded-1.85.1

gem install --force --install-dir

/Users/min/Projects/homepage/dan-min-kim.github.io/vendor/bundle/ruby/3.1.0/gems/sass-embedded-1.85.1/ext/sass/ruby

–no-document --ignore-dependencies --platform x86_64-darwin-23 --version 1.85.1

sass-embedded

This way it is easier to read the output of your commands that are intertwined with the commands themselves.

Hey there. I won’t be able to respond over the weekend so I’ll take a look on Monday. I’m in the US.