fluentd: Cannot install fluentd from source on M1 MacbookAir

Describe the bug

I could not install fluentd from source on MacbookAir(M1, 2020) of BigSur 11.2.3. fluentd --setup ./fluent command failed by missing compatible arch in oooo.bundle (LoadError).

The ruby installed by defalut was ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.arm64e-darwin20].

I think arm64e ruby could be a problem, so I report here to share this.

I reinstalled ruby to ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [arm64-darwin20], then I succeeded in installing.

To Reproduce

I had reinstalled ruby and succeeded in installing, so I cannot reproduce this behavior currently. I think this behavior may reproduce on default M1 MacbookAir, or on arm64e universal ruby.

Expected behavior

Proceeding with the installation according to Install from Source section of the fluentd document, then the installation will be successful.

Your Environment

  • Fluentd or td-agent version: fluentd 1.12.2
  • Operating system: macOS Big Sur 11.2.3 (Apple M1)
    • sw_vers
      • ProductName: macOS
      • ProductVersion: 11.2.3
      • BuildVersion: 20D91
  • Kernel version: 20.3.0
    • uname -m: arm64

Your Configuration

omitted because this is about installation problem.

Your Error Log

Traceback (most recent call last):
	28: from /usr/local/bin/fluentd:23:in `<main>'
	27: from /usr/local/bin/fluentd:23:in `load'
	26: from /Library/Ruby/Gems/2.6.0/gems/fluentd-1.12.2/bin/fluentd:8:in `<top (required)>'
	25: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	24: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	23: from /Library/Ruby/Gems/2.6.0/gems/fluentd-1.12.2/lib/fluent/command/fluentd.rb:19:in `<top (required)>'
	22: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	21: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	20: from /Library/Ruby/Gems/2.6.0/gems/fluentd-1.12.2/lib/fluent/supervisor.rb:20:in `<top (required)>'
	19: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	18: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	17: from /Library/Ruby/Gems/2.6.0/gems/fluentd-1.12.2/lib/fluent/config.rb:18:in `<top (required)>'
	16: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	15: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	14: from /Library/Ruby/Gems/2.6.0/gems/fluentd-1.12.2/lib/fluent/config/element.rb:18:in `<top (required)>'
	13: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	12: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	11: from /Library/Ruby/Gems/2.6.0/gems/fluentd-1.12.2/lib/fluent/config/literal_parser.rb:19:in `<top (required)>'
	10: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	 9: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	 8: from /Library/Ruby/Gems/2.6.0/gems/json-2.5.1/lib/json.rb:575:in `<top (required)>'
	 7: from /Library/Ruby/Gems/2.6.0/gems/json-2.5.1/lib/json.rb:579:in `<module:JSON>'
	 6: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	 5: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	 4: from /Library/Ruby/Gems/2.6.0/gems/json-2.5.1/lib/json/ext.rb:3:in `<top (required)>'
	 3: from /Library/Ruby/Gems/2.6.0/gems/json-2.5.1/lib/json/ext.rb:6:in `<module:JSON>'
	 2: from /Library/Ruby/Gems/2.6.0/gems/json-2.5.1/lib/json/ext.rb:7:in `<module:Ext>'
	 1: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': dlopen(/Library/Ruby/Gems/2.6.0/gems/json-2.5.1/lib/json/ext/parser.bundle, 0x0009): missing compatible arch in /Library/Ruby/Gems/2.6.0/gems/json-2.5.1/lib/json/ext/parser.bundle - /Library/Ruby/Gems/2.6.0/gems/json-2.5.1/lib/json/ext/parser.bundle (LoadError)
	32: from /usr/local/bin/fluentd:23:in `<main>'
	31: from /usr/local/bin/fluentd:23:in `load'
	30: from /Library/Ruby/Gems/2.6.0/gems/fluentd-1.12.2/bin/fluentd:8:in `<top (required)>'
	29: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	28: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	27: from /Library/Ruby/Gems/2.6.0/gems/fluentd-1.12.2/lib/fluent/command/fluentd.rb:19:in `<top (required)>'
	26: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	25: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	24: from /Library/Ruby/Gems/2.6.0/gems/fluentd-1.12.2/lib/fluent/supervisor.rb:20:in `<top (required)>'
	23: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	22: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	21: from /Library/Ruby/Gems/2.6.0/gems/fluentd-1.12.2/lib/fluent/config.rb:18:in `<top (required)>'
	20: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	19: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	18: from /Library/Ruby/Gems/2.6.0/gems/fluentd-1.12.2/lib/fluent/config/element.rb:18:in `<top (required)>'
	17: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	16: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	15: from /Library/Ruby/Gems/2.6.0/gems/fluentd-1.12.2/lib/fluent/config/literal_parser.rb:19:in `<top (required)>'
	14: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	13: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	12: from /Library/Ruby/Gems/2.6.0/gems/json-2.5.1/lib/json.rb:575:in `<top (required)>'
	11: from /Library/Ruby/Gems/2.6.0/gems/json-2.5.1/lib/json.rb:578:in `<module:JSON>'
	10: from /Library/Ruby/Gems/2.6.0/gems/json-2.5.1/lib/json.rb:581:in `rescue in <module:JSON>'
	 9: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	 8: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	 7: from /Library/Ruby/Gems/2.6.0/gems/json-2.5.1/lib/json/pure.rb:3:in `<top (required)>'
	 6: from /Library/Ruby/Gems/2.6.0/gems/json-2.5.1/lib/json/pure.rb:6:in `<module:JSON>'
	 5: from /Library/Ruby/Gems/2.6.0/gems/json-2.5.1/lib/json/pure.rb:7:in `<module:Pure>'
	 4: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	 3: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	 2: from /Library/Ruby/Gems/2.6.0/gems/json-2.5.1/lib/json/pure/parser.rb:2:in `<top (required)>'
	 1: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': dlopen(/Library/Ruby/Gems/2.6.0/gems/strscan-3.0.0/lib/strscan.bundle, 0x0009): missing compatible arch in /Library/Ruby/Gems/2.6.0/gems/strscan-3.0.0/lib/strscan.bundle - /Library/Ruby/Gems/2.6.0/gems/strscan-3.0.0/lib/strscan.bundle (LoadError)

Additional context

none.

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 17 (17 by maintainers)

Most upvoted comments

Can you write such a PR and submit to the documentation project?

Sure! I will write it.

Done at https://github.com/fluent/fluentd-docs-gitbook/pull/307 Thanks!

I think the correct path forward from here is to add “TroubleShooting” section to the installation article, and add something like this:

# Troubleshooting
## Cannot install Fluentd from source on M1 macOS

There is a known problem in the system Ruby on M1 macOS that ...

(... add some more problem description & explain how one can avoid the error)

@daipom Can you write such a PR and submit to the documentation project? Our documentation repository is here:

https://github.com/fluent/fluentd-docs-gitbook

and the specific file to edit is:

https://github.com/fluent/fluentd-docs-gitbook/blob/1.0/installation/install-from-source.md

Since the documentation project uses 1.0 as the main branch (not usual master branch), please be careful to submit your PR against 1.0 branch on GitHub.

If you feel anything unclear, just reply us in this thread.

Thank you everyone.

If anyone else has similar problems, we may need it.

It took a long time for me to solve this error. At first I wondered if fluentd did not support M1 Mac, then I tried to use Rosetta, but it did not work either.

I reinstalled ruby by using homebrew.

I installed homebrew for apple silicon as it is on brew website.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Then I reinstalled ruby by this.

brew reinstall -s ruby