apache / arrow

Apache Arrow is the universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics
https://arrow.apache.org/
Apache License 2.0
14.45k stars 3.52k forks source link

[Ruby] Rails console / server won't start on Mac: Typelib file for namespace 'Arrow' (any version) not found #43701

Closed bayornet closed 2 months ago

bayornet commented 2 months ago

Describe the bug, including details regarding any error messages, version, and platform.

Hi

I have installed apache-arrow / apache-arrow-glib and red-arrow / red-parquet gems.

When I try to start a rails console there is an error:

require': Typelib file for namespace 'Arrow' (any version) not found (GObjectIntrospection::RepositoryError::TypelibNotFound) from /ProjectFolder/.bundle/ruby/3.2.0/gems/gobject-introspection-4.2.2/lib/gobject-introspection/loader.rb:40:inload'

rails c
/ProjectFolder/.bundle/ruby/3.2.0/gems/gobject-introspection-4.2.2/lib/gobject-introspection/loader.rb:40:in `require': Typelib file for namespace 'Arrow' (any version) not found (GObjectIntrospection::RepositoryError::TypelibNotFound)
from /ProjectFolder/.bundle/ruby/3.2.0/gems/gobject-introspection-4.2.2/lib/gobject-introspection/loader.rb:40:in `load'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/gobject-introspection-4.2.2/lib/gobject-introspection/loader.rb:25:in `load'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/red-arrow-17.0.0/lib/arrow/loader.rb:24:in `load'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/red-arrow-17.0.0/lib/arrow.rb:29:in `<module:Arrow>'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/red-arrow-17.0.0/lib/arrow.rb:25:in `<top (required)>'
from <internal:/Users/user/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
from <internal:/Users/user/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:38:in `require'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/activesupport-6.1.7.7/lib/active_support/dependencies.rb:332:in `block in require'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/activesupport-6.1.7.7/lib/active_support/dependencies.rb:299:in `load_dependency'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/activesupport-6.1.7.7/lib/active_support/dependencies.rb:332:in `require'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/red-parquet-17.0.0/lib/parquet.rb:18:in `<top (required)>'
from <internal:/Users/user/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
from <internal:/Users/user/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:38:in `require'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/activesupport-6.1.7.7/lib/active_support/dependencies.rb:332:in `block in require'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/activesupport-6.1.7.7/lib/active_support/dependencies.rb:299:in `load_dependency'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/activesupport-6.1.7.7/lib/active_support/dependencies.rb:332:in `require'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/parqueteur-1.11.0/lib/parqueteur.rb:6:in `<top (required)>'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:38:in `require'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:38:in `require'
from /Users/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.5.4/lib/bundler/runtime.rb:60:in `block (2 levels) in require'
from /Users/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.5.4/lib/bundler/runtime.rb:55:in `each'
from /Users/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.5.4/lib/bundler/runtime.rb:55:in `block in require'
from /Users/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.5.4/lib/bundler/runtime.rb:44:in `each'
from /Users/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.5.4/lib/bundler/runtime.rb:44:in `require'
from /Users/user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.5.4/lib/bundler.rb:187:in `require'
from /ProjectFolder/config/application.rb:21:in `<top (required)>'
from <internal:/Users/user/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
from <internal:/Users/user/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/railties-6.1.7.7/lib/rails/command/actions.rb:22:in `require_application!'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/railties-6.1.7.7/lib/rails/command/actions.rb:14:in `require_application_and_environment!'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/railties-6.1.7.7/lib/rails/commands/console/console_command.rb:101:in `perform'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/thor-1.3.0/lib/thor/command.rb:28:in `run'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/thor-1.3.0/lib/thor/invocation.rb:127:in `invoke_command'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/thor-1.3.0/lib/thor.rb:527:in `dispatch'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/railties-6.1.7.7/lib/rails/command/base.rb:69:in `perform'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/railties-6.1.7.7/lib/rails/command.rb:48:in `invoke'
from /ProjectFolder/.bundle/ruby/3.2.0/gems/railties-6.1.7.7/lib/rails/commands.rb:18:in `<top (required)>'
from <internal:/Users/user/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
from <internal:/Users/user/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
from bin/rails:4:in `<main>'

OS: macOS Sonoma Rails: 6.1 Ruby: 3.2

brew info apache-arrow
==> apache-arrow: stable 17.0.0 (bottled), HEAD
Columnar in-memory analytics layer designed to accelerate big data
https://arrow.apache.org/
Installed
/usr/local/Cellar/apache-arrow/17.0.0_2 (588 files, 122.5MB) *...

brew info apache-arrow-glib
==> apache-arrow-glib: stable 17.0.0 (bottled), HEAD
GLib bindings for Apache Arrow
https://arrow.apache.org/
Installed
/usr/local/Cellar/apache-arrow-glib/17.0.0 (202 files, 6.5MB) *...

bundle info red-arrow
  * red-arrow (17.0.0)
    Summary: Red Arrow is the Ruby bindings of Apache Arrow
    Homepage: https://arrow.apache.org/
    Path: /ProjectFolder/.bundle/ruby/3.2.0/gems/red-arrow-17.0.0
    Reverse Dependencies:
        red-parquet (17.0.0) depends on red-arrow (= 17.0.0)

bundle info red-parquet
  * red-parquet (17.0.0)
    Summary: Red Parquet is the Ruby bindings of Apache Parquet
    Homepage: https://arrow.apache.org/
    Path: /ProjectFolder/.bundle/ruby/3.2.0/gems/red-parquet-17.0.0
    Reverse Dependencies:
        parqueteur (1.11.0) depends on red-parquet (> 10.0)

Component(s)

Ruby

bayornet commented 2 months ago

Fixed by adding export GI_TYPELIB_PATH=/usr/local/lib/girepository-1.0 to my shell.

kou commented 2 months ago

Yes. export GI_TYPELIB_PATH=$(brew --prefix)/lib/girepository-1.0 is more portable.