Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

installing pyroscope 0.5.1 in bundler #83

Closed
Greg-Myers-SB opened this issue Feb 17, 2023 · 2 comments
Closed

installing pyroscope 0.5.1 in bundler #83

Greg-Myers-SB opened this issue Feb 17, 2023 · 2 comments
Labels
bug Something isn't working

Comments

@Greg-Myers-SB
Copy link

Describe the bug you encountered:
This works fine

gem install pyroscope

This causes a large exception

bundle init
echo "gem 'pyroscope'" >> Gemfile
bundle

Returns

Fetching gem metadata from https://rubygems.org/...
Resolving dependencies...
Using bundler 2.3.22
Using ffi 1.15.5
Installing pyroscope 0.5.1 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/pyroscope-0.5.1/ext/rbspy
/Users/me/.rbenv/versions/3.0.4/bin/ruby -I /Users/me/.rbenv/versions/3.0.4/lib/ruby/3.0.0 -r ./siteconf20230217-37601-8om20a.rb extconf.rb
creating Makefile
cargo rustc --locked --release --target=aarch64-apple-darwin -- -C linker=clang -C link-arg=-fdeclspec -L native=/Users/me/.rbenv/versions/3.0.4/lib -L native=/Users/me/.rbenv/versions/3.0.4/lib -L native=/opt/homebrew/opt/openssl@3/lib -C
link_arg=-Wl,-undefined,dynamic_lookup -C link_arg=-Wl,-multiply_defined,suppress
    Updating git repository `https://github.com/omarabid/rbspy.git`
    Updating git repository `https://github.com/omarabid/read-process-memory.git`
error: failed to get `ffikit` as a dependency of package `rbspy v0.1.0 (/Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/pyroscope-0.5.1/ext/rbspy)`

Caused by:
  failed to load source for dependency `ffikit`

Caused by:
  Unable to update /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/ffikit

Caused by:
  failed to read `/Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/ffikit/Cargo.toml`

Caused by:
  No such file or directory (os error 2)
/Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/file_utils.rb:67:in `block in create_shell_runner': Command failed with status (101): [cargo rustc --locked --release --target=aa...] (RuntimeError)
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/file_utils.rb:57:in `sh'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/pyroscope-0.5.1/ext/rbspy/Rakefile:134:in `block in <top (required)>'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/task.rb:281:in `block in execute'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/task.rb:281:in `each'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/task.rb:281:in `execute'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/task.rb:199:in `synchronize'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/task.rb:199:in `invoke_with_call_chain'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/task.rb:243:in `block in invoke_prerequisites'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/task.rb:241:in `each'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/task.rb:241:in `invoke_prerequisites'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/task.rb:218:in `block in invoke_with_call_chain'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/task.rb:199:in `synchronize'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/task.rb:199:in `invoke_with_call_chain'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/task.rb:243:in `block in invoke_prerequisites'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/task.rb:241:in `each'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/task.rb:241:in `invoke_prerequisites'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/task.rb:218:in `block in invoke_with_call_chain'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/task.rb:199:in `synchronize'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/task.rb:199:in `invoke_with_call_chain'
	from /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/rake-13.0.6/lib/rake/task.rb:188:in `invoke'
	from extconf.rb:11:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/pyroscope-0.5.1 for inspection.
Results logged to /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/extensions/arm64-darwin-21/3.0.0/pyroscope-0.5.1/gem_make.out

  /Users/me/.rbenv/versions/3.0.4/lib/ruby/3.0.0/rubygems/ext/builder.rb:93:in `run'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/3.0.0/rubygems/ext/ext_conf_builder.rb:47:in `block in build'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/3.0.0/tempfile.rb:317:in `open'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/3.0.0/rubygems/ext/ext_conf_builder.rb:26:in `build'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/3.0.0/rubygems/ext/builder.rb:159:in `build_extension'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/3.0.0/rubygems/ext/builder.rb:193:in `block in build_extensions'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/3.0.0/rubygems/ext/builder.rb:190:in `each'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/3.0.0/rubygems/ext/builder.rb:190:in `build_extensions'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/3.0.0/rubygems/installer.rb:837:in `build_extensions'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/rubygems_gem_installer.rb:72:in `build_extensions'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/rubygems_gem_installer.rb:28:in `install'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/source/rubygems.rb:207:in `install'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/installer/gem_installer.rb:54:in `install'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/installer/gem_installer.rb:16:in `install_from_spec'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/installer/parallel_installer.rb:186:in `do_install'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/installer/parallel_installer.rb:177:in `block in worker_pool'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/worker.rb:62:in `apply_func'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/worker.rb:57:in `block in process_queue'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/worker.rb:54:in `loop'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/worker.rb:54:in `process_queue'
  /Users/me/.rbenv/versions/3.0.4/lib/ruby/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/worker.rb:91:in `block (2 levels) in create_threads'

An error occurred while installing pyroscope (0.5.1), and Bundler cannot continue.

In Gemfile:
  pyroscope

...

What did you expect to happen instead?

...

How did you install pyroscope-rs?


pyroscope-rs version and environment

MacOS 13.2
ruby 3.0.4p208 (2022-04-12 revision 3fa771dded) [arm64-darwin21]
Bundler version 2.3.22
rustup 1.25.1 (2022-07-12)
rustc 1.67.1 (d5a82bbd2 2023-02-07)
cargo 1.67.1 (8ecd4f20a 2023-01-10)

@Greg-Myers-SB Greg-Myers-SB added the bug Something isn't working label Feb 17, 2023
@korniltsev
Copy link
Collaborator

As of now, building gem from source is not supported, although I want to allow it in the future.
Right now to use pyroscope we need to use platform specific binaries.

Do you have something like this in your lock file?
https://github.com/pyroscope-io/pyroscope/blob/main/examples/ruby/rideshare_rails/Gemfile.lock#L230

If no, try to execute bundle lock --add-platform arm64-darwin-21
This should force downloading a gem with prebuilt arm binaries

@korniltsev korniltsev mentioned this issue Feb 20, 2023
8 tasks
@Greg-Myers-SB
Copy link
Author

Aha! Thanks for the tip on platforms there, this was likely caused by my use of force_ruby_platform

$ bundle config
force_ruby_platform
Set for the current user (/Users/me/.bundle/config): true

Unsetting it fixed my above problem

$ bundle config force_ruby_platform false
$ bundle config
force_ruby_platform
Set for your local app (/Users/me/projects/pyroscope-test/.bundle/config): false
$ bundle
Fetching gem metadata from https://rubygems.org/..
Using ffi 1.15.5
Using bundler 2.3.22
Fetching pyroscope 0.5.1 (arm64-darwin)
Installing pyroscope 0.5.1 (arm64-darwin)
Bundle complete! 1 Gemfile dependency, 3 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.

If it's unintended for this gem to be compiled then I'm happy for this to be closed. Thanks for the help!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants