metacall / distributable-linux

Linux redistributable for shipping MetaCall Core.
Apache License 2.0
10 stars 11 forks source link

Ruby gems are not found after successful install #14

Open darabi opened 1 year ago

darabi commented 1 year ago

I would like to use ruby gem nokogiri with MetaCall (installed with install.sh) and am using the repo metacall/express-faas-rpc-example as a starting point.

I added a corresponding Gemfile, called metacall bundler install which reports the gem as being present.

When I add the `require 'nokogiri' statement to mult.rb, I get

Loading... mult.rb
Error: Ruby module evaluation failed
#<LoadError: cannot load such file -- nokogiri>
(eval):1:in `require'
(eval):1:in `<main>'
Error: Invalid ruby module loading /wrk/metacall/express-faas-rpc-example/scripts/mult.rb
Error: No module could be loaded
Error: Handle (nil) passed to metacall_handle_export is not valid
NodeJS Loader Error: MetaCall could not load from file

@viferga mentioned in the Discord chat that this is related to some environment variables and to #5.

viferga commented 4 months ago

@darabi Even when adding the env vars: https://github.com/metacall/distributable-linux/blob/5eb042f6ded5eff5f63649145bf422726ce914e6/source/metacall.scm#L482

It seems ruby is totally fucked. I could not make ruby find the gems installed by bundler, and other gems fail horribly like the ones I have added in the test.

If you are more experienced than me with Ruby, you can try to debug it: https://github.com/metacall/distributable-linux/commit/5eb042f6ded5eff5f63649145bf422726ce914e6

It would be also interesting to report this to Guix team.

shaggyyy2002 commented 3 months ago

@darabi try updating the ruby to v3 or latest stable release. that should solve your problem. Have faced the problem too. for more you could check this out: https://nokogiri.org/tutorials/installing_nokogiri.html