I was facing issues with native gem extension with my default ruby 2.6.3 that came pre installed with my mac so after looking for the solution, I have updated my ruby to 3.0.0 using rvm and my gem version is 3.2.3 and bundle version is 1.17.3, I am able to install all the gems by running bundle install command but when I run bundle exec middleman server I get this LoadError. I am new to ruby and I can't figure out what's wrong.
My gem file contains
ruby '>=2.3.1'
source 'https://rubygems.org'
gem 'middleman', '>=4.2.1'
gem 'middleman-syntax', '3.0.0'
gem 'middleman-autoprefixer', '2.7.1'
gem 'middleman-sprockets', '4.1.0'
gem 'rouge', '2.0.7'
gem 'redcarpet', '3.4.0'
gem 'nokogiri', '1.8.2'
bundler: failed to load command: middleman (/Users/shivrajnag/.rvm/gems/ruby-3.0.0/bin/middleman)
LoadError: cannot load such file -- webrick
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/middleman-core-4.2.1/lib/middleman-core/preview_server.rb:1:in `require'
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/middleman-core-4.2.1/lib/middleman-core/preview_server.rb:1:in `<top (required)>'
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/middleman-cli-4.2.1/lib/middleman-cli/server.rb:38:in `require'
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/middleman-cli-4.2.1/lib/middleman-cli/server.rb:38:in `server'
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/command.rb:27:in `run'
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/invocation.rb:127:in `invoke_command'
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/invocation.rb:134:in `block in invoke_all'
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/invocation.rb:134:in `each'
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/invocation.rb:134:in `map'
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/invocation.rb:134:in `invoke_all'
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/group.rb:232:in `dispatch'
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/invocation.rb:116:in `invoke'
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor.rb:40:in `block in register'
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/command.rb:27:in `run'
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/invocation.rb:127:in `invoke_command'
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor.rb:392:in `dispatch'
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/base.rb:485:in `start'
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/middleman-cli-4.2.1/bin/middleman:70:in `<top (required)>'
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/bin/middleman:23:in `load'
/Users/shivrajnag/.rvm/gems/ruby-3.0.0/bin/middleman:23:in `<top (required)>'
After I downgraded my ruby to 2.7.2 this error was resolved but now I am getting this error instead.
== The Middleman is loading
Traceback (most recent call last):
98: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/bin/ruby_executable_hooks:22:in `<main>'
97: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/bin/ruby_executable_hooks:22:in `eval'
96: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/bin/middleman:23:in `<main>'
95: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/bin/middleman:23:in `load'
94: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-cli-4.2.1/bin/middleman:70:in `<top (required)>'
93: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/base.rb:485:in `start'
92: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor.rb:392:in `dispatch'
91: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/invocation.rb:127:in `invoke_command'
90: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/command.rb:27:in `run'
89: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor.rb:40:in `block in register'
88: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/invocation.rb:116:in `invoke'
87: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/group.rb:232:in `dispatch'
86: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/invocation.rb:134:in `invoke_all'
85: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/invocation.rb:134:in `map'
84: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/invocation.rb:134:in `each'
83: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/invocation.rb:134:in `block in invoke_all'
82: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/invocation.rb:127:in `invoke_command'
81: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/command.rb:27:in `run'
80: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-cli-4.2.1/lib/middleman-cli/server.rb:53:in `server'
79: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/preview_server.rb:34:in `start'
78: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/preview_server.rb:144:in `initialize_new_app'
77: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/preview_server.rb:144:in `new'
76: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/application.rb:309:in `initialize'
75: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/callback_manager.rb:28:in `block in install_methods!'
74: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
73: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
72: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
71: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/callback_manager.rb:57:in `execute'
70: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/hamster-3.0.0/lib/hamster/vector.rb:431:in `each'
69: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/hamster-3.0.0/lib/hamster/vector.rb:1316:in `traverse_depth_first'
68: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/hamster-3.0.0/lib/hamster/vector.rb:1316:in `each'
67: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/callback_manager.rb:57:in `block in execute'
66: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/callback_manager.rb:57:in `instance_exec'
65: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/sitemap/extensions/on_disk.rb:21:in `ready'
64: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/sitemap/store.rb:221:in `ensure_resource_list_updated!'
63: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/sitemap/store.rb:221:in `synchronize'
62: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/sitemap/store.rb:224:in `block in ensure_resource_list_updated!'
61: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/util.rb:21:in `instrument'
60: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:166:in `instrument'
59: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/sitemap/store.rb:231:in `block (2 levels) in ensure_resource_list_updated!'
58: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/hamster-3.0.0/lib/hamster/vector.rb:431:in `each'
57: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/hamster-3.0.0/lib/hamster/vector.rb:1316:in `traverse_depth_first'
56: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/hamster-3.0.0/lib/hamster/vector.rb:1316:in `each'
55: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/sitemap/store.rb:232:in `block (3 levels) in ensure_resource_list_updated!'
54: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/util.rb:21:in `instrument'
53: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:166:in `instrument'
52: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/sitemap/store.rb:234:in `block (4 levels) in ensure_resource_list_updated!'
51: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
50: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
49: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
48: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-sprockets-4.1.0/lib/middleman-sprockets/extension.rb:60:in `manipulate_resource_list'
47: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/util.rb:21:in `instrument'
46: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:166:in `instrument'
45: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-sprockets-4.1.0/lib/middleman-sprockets/extension.rb:61:in `block in manipulate_resource_list'
44: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-sprockets-4.1.0/lib/middleman-sprockets/extension.rb:111:in `linked_resources!'
43: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-sprockets-4.1.0/lib/middleman-sprockets/extension.rb:98:in `linked_resources'
42: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-sprockets-4.1.0/lib/middleman-sprockets/extension.rb:98:in `map'
41: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
40: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
39: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
38: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-sprockets-4.1.0/lib/middleman-sprockets/resource.rb:36:in `sprockets_asset'
37: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/util.rb:21:in `instrument'
36: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:166:in `instrument'
35: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-sprockets-4.1.0/lib/middleman-sprockets/resource.rb:37:in `block in sprockets_asset'
34: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/base.rb:119:in `[]'
33: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/environment.rb:31:in `find_asset'
32: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/base.rb:81:in `find_asset'
31: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/cached_environment.rb:44:in `load'
30: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/loader.rb:43:in `load'
29: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/loader.rb:337:in `fetch_asset_from_dependency_cache'
28: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/loader.rb:59:in `block in load'
27: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/loader.rb:182:in `load_from_unloaded'
26: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `call_processors'
25: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `reverse_each'
24: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
23: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:84:in `call_processor'
22: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/bundle.rb:27:in `call'
21: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/cached_environment.rb:44:in `load'
20: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/loader.rb:43:in `load'
19: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/loader.rb:337:in `fetch_asset_from_dependency_cache'
18: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/loader.rb:59:in `block in load'
17: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/loader.rb:182:in `load_from_unloaded'
16: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `call_processors'
15: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `reverse_each'
14: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
13: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:84:in `call_processor'
12: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:33:in `call'
11: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:22:in `block in <class:CompositeProcessor>'
10: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `call_processors'
9: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `reverse_each'
8: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
7: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:84:in `call_processor'
6: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/sassc_processor.rb:31:in `call'
5: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/sassc_processor.rb:27:in `instance'
4: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/sassc_processor.rb:27:in `new'
3: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/sassc_processor.rb:42:in `initialize'
2: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/sassc_processor.rb:42:in `require'
1: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/autoload/sassc.rb:2:in `<top (required)>'
/Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/autoload/sassc.rb:2:in `require': cannot load such file -- sassc (LoadError)
Seems like an issue with Middleman and Ruby 3.0 https://github.com/middleman/middleman/pull/2448
As there hasn't been a new version from middleman after that MR, either use their master branch or change your Ruby version to latest 2.7
Another workaround would be to add
gem 'webrick'into your gemfile and see if that solves your issue.