Hi,
I am attempting to run a script that fetches some data and generates a data file while building.
I have replaced the build command with my script bin/gen
.
My script is a ruby script that requires several rubygems that should be installed already (goodreads and active_support).
This is when I get the error
2:59:14 AM: Executing user command: bin/gen
2:59:14 AM: /opt/buildhome/.rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- goodreads (LoadError)
2:59:14 AM: from /opt/buildhome/.rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
2:59:14 AM: from bin/generate-bookshelf:3:in `<main>'
Any ideas?
deploy: Netlify App
I have run a test to see which gems are installed on the build server (by running gem list
) and it appears that goodreads
is not installed.
This is strange, because during the first build that had goodreads
in the lockfile, I definitely saw it get installed in the log.
And for that matter, I don’t see any of the gems that are installed via bundler (jekyll, etc).
10:09:50 AM: Executing user command: bin/gen
10:09:50 AM: bigdecimal (default: 1.4.1)
10:09:50 AM: bundler (default: 1.17.2)
10:09:50 AM: cmath (default: 1.0.0)
10:09:50 AM: csv (default: 3.0.9)
10:09:50 AM: date (default: 2.0.0)
10:09:50 AM: dbm (default: 1.0.0)
10:09:50 AM: e2mmap (default: 0.1.0)
10:09:50 AM: etc (default: 1.0.1)
10:09:50 AM: fcntl (default: 1.0.0)
10:09:50 AM: fiddle (default: 1.0.0)
10:09:50 AM: fileutils (default: 1.1.0)
10:09:50 AM: forwardable (default: 1.2.0)
10:09:50 AM: gdbm (default: 2.0.0)
10:09:50 AM: gem-wrappers (1.4.0)
10:09:50 AM: io-console (default: 0.4.7)
10:09:50 AM: ipaddr (default: 1.2.2)
10:09:50 AM: irb (default: 1.0.0)
10:09:50 AM: json (default: 2.1.0)
10:09:50 AM: logger (default: 1.3.0)
10:09:50 AM: matrix (default: 0.1.0)
10:09:50 AM: mutex_m (default: 0.1.0)
10:09:50 AM: openssl (default: 2.1.2)
10:09:50 AM: ostruct (default: 0.1.0)
10:09:50 AM: prime (default: 0.1.0)
10:09:50 AM: psych (default: 3.1.0)
10:09:50 AM: rdoc (default: 6.1.0)
10:09:50 AM: rexml (default: 3.1.9)
10:09:50 AM: rss (default: 0.2.7)
10:09:50 AM: scanf (default: 1.0.0)
10:09:50 AM: sdbm (default: 1.0.0)
10:09:50 AM: shell (default: 0.7)
10:09:50 AM: stringio (default: 0.0.2)
10:09:50 AM: strscan (default: 1.0.0)
10:09:50 AM: sync (default: 0.5.0)
10:09:50 AM: thwait (default: 0.1.0)
10:09:50 AM: tracer (default: 0.1.0)
10:09:50 AM: webrick (default: 1.4.2)
10:09:50 AM: zlib (default: 1.0.0)
10:09:50 AM: /opt/buildhome/.rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- goodreads (LoadError)
10:09:50 AM: from /opt/buildhome/.rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
10:09:50 AM: from bin/generate-bookshelf:4:in `<main>'
Running bundle list
shows the gems are installed.
10:15:22 AM: ==> bundle list
10:15:22 AM: Gems included by the bundle:
10:15:22 AM: The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
10:15:22 AM: * activesupport (6.0.1)
10:15:22 AM: * addressable (2.7.0)
10:15:22 AM: * bundler (1.17.2)
10:15:22 AM: * colorator (1.1.0)
10:15:22 AM: * concurrent-ruby (1.1.5)
10:15:22 AM: * domain_name (0.5.20190701)
10:15:22 AM: * em-websocket (0.5.1)
10:15:22 AM: * eventmachine (1.2.7)
10:15:22 AM: * ffi (1.11.2)
10:15:22 AM: * forwardable-extended (2.6.0)
10:15:22 AM: * goodreads (0.7.0)
10:15:22 AM: * hashie (2.1.2)
10:15:22 AM: * http-accept (1.7.0)
10:15:22 AM: * http-cookie (1.0.3)
10:15:22 AM: * http_parser.rb (0.6.0)
10:15:22 AM: * i18n (1.7.0)
10:15:22 AM: * jekyll (4.0.0)
10:15:22 AM: * jekyll-feed (0.12.1)
10:15:22 AM: * jekyll-postcss (0.2.2)
10:15:22 AM: * jekyll-purgecss (0.2.0)
10:15:22 AM: * jekyll-sass-converter (2.0.1)
10:15:22 AM: * jekyll-seo-tag (2.6.1)
10:15:22 AM: * jekyll-sitemap (1.3.1)
10:15:22 AM: * jekyll-watch (2.2.1)
10:15:22 AM: * kramdown (2.1.0)
10:15:22 AM: * kramdown-parser-gfm (1.1.0)
10:15:22 AM: * liquid (4.0.3)
10:15:22 AM: * listen (3.2.0)
10:15:22 AM: * mercenary (0.3.6)
10:15:22 AM: * mime-types (3.3)
10:15:22 AM: * mime-types-data (3.2019.1009)
10:15:22 AM: * minitest (5.13.0)
10:15:22 AM: * netrc (0.11.0)
10:15:22 AM: * oauth (0.5.4)
10:15:22 AM: * pathutil (0.16.2)
10:15:22 AM: * public_suffix (4.0.1)
10:15:22 AM: * rb-fsevent (0.10.3)
10:15:22 AM: * rb-inotify (0.10.0)
10:15:22 AM: * rest-client (2.1.0)
10:15:22 AM: * rouge (3.13.0)
10:15:22 AM: * safe_yaml (1.0.5)
10:15:22 AM: * sassc (2.2.1)
10:15:22 AM: * terminal-table (1.8.0)
10:15:22 AM: * thread_safe (0.3.6)
10:15:22 AM: * tzinfo (1.2.5)
10:15:22 AM: * unf (0.1.4)
10:15:22 AM: * unf_ext (0.0.7.6)
10:15:22 AM: * unicode-display_width (1.6.0)
10:15:22 AM: * zeitwerk (2.2.1)
10:15:22 AM: /opt/buildhome/.rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- goodreads (LoadError)
10:15:22 AM: from /opt/buildhome/.rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
10:15:22 AM: from bin/generate-bookshelf:4:in `<main>'
I’ve preprended the that that the build log claims that bundled gems are installed to to the $LOAD_PATH
, but still no success.
10:25:16 AM: ==> $LOAD_PATH
10:25:16 AM: /opt/build/cache/bundle
10:25:16 AM: /opt/buildhome/.rvm/rubies/ruby-2.6.3/lib/ruby/site_ruby/2.6.0
10:25:16 AM: /opt/buildhome/.rvm/rubies/ruby-2.6.3/lib/ruby/site_ruby/2.6.0/x86_64-linux
10:25:16 AM: /opt/buildhome/.rvm/rubies/ruby-2.6.3/lib/ruby/site_ruby
10:25:16 AM: /opt/buildhome/.rvm/rubies/ruby-2.6.3/lib/ruby/vendor_ruby/2.6.0
10:25:16 AM: /opt/buildhome/.rvm/rubies/ruby-2.6.3/lib/ruby/vendor_ruby/2.6.0/x86_64-linux
10:25:16 AM: /opt/buildhome/.rvm/rubies/ruby-2.6.3/lib/ruby/vendor_ruby
10:25:16 AM: /opt/buildhome/.rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0
10:25:16 AM: /opt/buildhome/.rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/x86_64-linux
I was able to get this working fairly easily on Zeit Now.
I would rather now switch because Netlify is a much more mature platform, but I will have no choice if I’m not able to get this working in the next few days.
Any ideas? Thanks
I solved it.
I needed to run my ruby script via bundle exec
.
perry
November 19, 2019, 9:17pm
7
thanks so much for sharing your solution - this will absolutely help other people!