red-data-tools/red-arrow

Failed to build gem native extension when execute gem install red-arrow

Closed this issue · 8 comments

I try to install red-arrow gem. but install failed.

Before install red-arrow gem, I installed Arrow GLib(Apache Arrow 0.6.0) using pip
I used python3 and venv's virtual environment.

My environment

  • MacBook Pro (15-inch, Mid 2015)
  • macOS Sierra Version 10.12.6
  • 2.8 GHz Intel Core i7
  • ruby 2.4.1 (rbenv)
  • python3.6.2 (venv)
  • pyarrow0.6.0

Installation Log

Building native extensions.  This could take a while...
ERROR:  Error installing red-arrow:
	ERROR: Failed to build gem native extension.

    current directory: /Users/hoge/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/red-arrow-0.4.1/dependency-check
/Users/hoge/.rbenv/versions/2.4.1/bin/ruby -rubygems /Users/hoge/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rake-12.0.0/exe/rake RUBYARCHDIR=/Users/hoge/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/extensions/x86_64-darwin-16/2.4.0-static/red-arrow-0.4.1 RUBYLIBDIR=/Users/hoge/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/extensions/x86_64-darwin-16/2.4.0-static/red-arrow-0.4.1

rake failed, exit code 1

Can you give me some advice? 🙏

kou commented

I installed Arrow GLib(Apache Arrow 0.6.0) using pip

Please describe more details.

kou commented

For example, I want to know the actual command line what you used.

Sorry. I executed this command.

$ python3 -m venv red-arrow
$ . red-arrow/bin/activate
$ pip install 'pyarrow==0.6.*'
$ gem install red-arrow
kou commented

Thanks.
It seems that pyarrow doesn't bundle Arrow GLib.

We have two options:

  1. Send a pull request to pyarrow to bundle Arrow GLib
  2. Send a pull request to Homebrew to add apache-arrow-glib Formula (@mrkn is working on this)

Which option do you like?

I would personally prefer option 2) as the pip-based pyarrow only bundles the dependencies it needs. Including Arrow GLib would increase its yet already large size.

As an alternative, we could make a apache-arrow-glib conda-forge package. This could then be used as an alternative way of distribution independent from the platform.

@kou @xhochy @mrkn Thanks! I agree with option 2. I also try to make apache-arrow-glib Formula.

mrkn commented

I've submitted the pull request that proposes to add apache-arrow-glib formula.
See Homebrew/homebrew-core#18590

kou commented

apache-arrow-glib formula has been merged: Homebrew/homebrew-core#25505