From: "Tietew (Toru Iwase)" Date: 2021-12-09T07:53:26+00:00 Subject: [ruby-core:106576] [Ruby master Bug#18398] bundler cannot install digest Issue #18398 has been updated by Tietew (Toru Iwase). Description updated Seems to be resolved. Thank you. Run `gem install`with `--pre` under bundler ... ok ``` $ bundle exec gem install digest --pre Fetching digest-3.1.0.pre3.gem Building native extensions. This could take a while... Successfully installed digest-3.1.0.pre3 Parsing documentation for digest-3.1.0.pre3 Installing ri documentation for digest-3.1.0.pre3 Done installing documentation for digest after 0 seconds 1 gem installed ``` Adding digest `>= 3.1.0.pre0` to Gemfile ... ok ``` $ cat Gemfile source 'https://rubygems.org' gem 'net-smtp' gem 'digest', '>= 3.1.0.pre0' $ rm -rf vendor/ $ bundle install Fetching gem metadata from https://rubygems.org/. Using digest 3.1.0.pre3 Using timeout 0.2.0 Using bundler 2.3.0.dev Fetching io-wait 0.2.1 Installing io-wait 0.2.1 with native extensions Using net-protocol 0.1.2 Fetching net-smtp 0.3.0 Installing net-smtp 0.3.0 Bundle complete! 2 Gemfile dependencies, 6 gems now installed. Bundled gems are installed into `./vendor/bundle` ``` NOTE: Run `gem install` without `--pre` ... ERROR ``` $ bundle exec gem install digest Fetching digest-3.0.0.gem Building native extensions. This could take a while... ERROR: Error installing digest: ERROR: Failed to build gem native extension. (...) /usr/bin/mkdir: cannot create directory ���/usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/include/ruby-3.1.0/site_ruby���: Permission denied ``` ---------------------------------------- Bug #18398: bundler cannot install digest https://bugs.ruby-lang.org/issues/18398#change-95239 * Author: Tietew (Toru Iwase) * Status: Open * Priority: Normal * ruby -v: ruby 3.1.0dev (2021-12-08T23:58:25Z master 45c5794d32) [x86_64-linux] * Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN ---------------------------------------- `bundle install` gives up installing `digest` gem due to trying to write `digest.so` in global site_ruby directory (not writable). # How to reproduce In clean directory, create a following Gemfile: ``` ruby source 'https://rubygems.org' gem 'net-smtp' ``` Set bundle path to `vendor/bundle` and install. ``` $ bundle -v Bundler version 2.3.0.dev $ bundle config set --local path vendor/bundle $ bundle install ``` # Expected result All gems are successfully installed in `vendor/bundle`. # Actual result ``` $ bundle install Fetching gem metadata from https://rubygems.org/. Using bundler 2.3.0.dev Using io-wait 0.2.1 Using timeout 0.2.0 Fetching digest 3.0.0 Using net-protocol 0.1.2 Installing digest 3.0.0 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /***/test/ruby31/vendor/bundle/ruby/3.1.0/gems/digest-3.0.0/ext/digest /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/bin/ruby -I /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0 -r ./siteconf20211209-660991-1c5c0k.rb extconf.rb creating Makefile current directory: /***/test/ruby31/vendor/bundle/ruby/3.1.0/gems/digest-3.0.0/ext/digest make DESTDIR\= clean current directory: /***/test/ruby31/vendor/bundle/ruby/3.1.0/gems/digest-3.0.0/ext/digest make DESTDIR\= compiling digest.c linking shared-object digest.so current directory: /***/test/ruby31/vendor/bundle/ruby/3.1.0/gems/digest-3.0.0/ext/digest make DESTDIR\= install /usr/bin/install -c -m 0755 digest.so ./.gem.20211209-660991-1jo093 /usr/bin/mkdir: cannot create directory ���/usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/include/ruby-3.1.0/site_ruby���: Permission denied make: *** [Makefile:212: .sitehdrdir.time] Error 1 make install failed, exit code 2 Gem files will remain installed in /***/test/ruby31/vendor/bundle/ruby/3.1.0/gems/digest-3.0.0 for inspection. Results logged to /***/test/ruby31/vendor/bundle/ruby/3.1.0/extensions/x86_64-linux/3.1.0-static/digest-3.0.0/gem_make.out /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/rubygems/ext/builder.rb:95:in `run' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/rubygems/ext/builder.rb:44:in `block in make' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/rubygems/ext/builder.rb:36:in `each' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/rubygems/ext/builder.rb:36:in `make' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:63:in `block in build' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/tempfile.rb:317:in `open' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:26:in `build' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/rubygems/ext/builder.rb:161:in `build_extension' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/rubygems/ext/builder.rb:195:in `block in build_extensions' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/rubygems/ext/builder.rb:192:in `each' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/rubygems/ext/builder.rb:192:in `build_extensions' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/rubygems/installer.rb:837:in `build_extensions' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/rubygems_gem_installer.rb:71:in `build_extensions' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/rubygems_gem_installer.rb:28:in `install' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/source/rubygems.rb:204:in `install' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/installer/gem_installer.rb:54:in `install' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/installer/gem_installer.rb:16:in `install_from_spec' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/installer/parallel_installer.rb:186:in `do_install' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/installer/parallel_installer.rb:177:in `block in worker_pool' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/worker.rb:62:in `apply_func' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/worker.rb:57:in `block in process_queue' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/worker.rb:54:in `loop' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/worker.rb:54:in `process_queue' /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/worker.rb:91:in `block (2 levels) in create_threads' An error occurred while installing digest (3.0.0), and Bundler cannot continue. In Gemfile: net-smtp was resolved to 0.3.0, which depends on digest ``` digest-3.0.0/gem_make.out ``` current directory: /***/test/ruby31/vendor/bundle/ruby/3.1.0/gems/digest-3.0.0/ext/digest /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/bin/ruby -I /usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/lib/ruby/3.1.0 -r ./siteconf20211209-660991-1c5c0k.rb extconf.rb creating Makefile current directory: /***/test/ruby31/vendor/bundle/ruby/3.1.0/gems/digest-3.0.0/ext/digest make DESTDIR\= clean current directory: /***/test/ruby31/vendor/bundle/ruby/3.1.0/gems/digest-3.0.0/ext/digest make DESTDIR\= compiling digest.c linking shared-object digest.so current directory: /***/test/ruby31/vendor/bundle/ruby/3.1.0/gems/digest-3.0.0/ext/digest make DESTDIR\= install /usr/bin/install -c -m 0755 digest.so ./.gem.20211209-660991-1jo093 /usr/bin/mkdir: cannot create directory ���/usr/local/anyenv/envs/rbenv/versions/3.1.0-dev/include/ruby-3.1.0/site_ruby���: Permission denied make: *** [Makefile:212: .sitehdrdir.time] Error 1 make install failed, exit code 2 ``` -- https://bugs.ruby-lang.org/ Unsubscribe: