rails / rails-dev-box

A virtual machine for Ruby on Rails core development
MIT License
2.05k stars 580 forks source link

add missing dependencies #209

Open lazaronixon opened 1 year ago

lazaronixon commented 1 year ago

When running bundle install in a fresh image I'm having:

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
/tmp/bundler20230515-13058-ydlnsbpsych-5.1.0/gems/psych-5.1.0/ext/psych
/usr/bin/ruby3.0 -I /usr/lib/ruby/vendor_ruby -r ./siteconf20230515-13058-fagdm6.rb
extconf.rb
checking for yaml.h... no
yaml.h not found
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/usr/bin/$(RUBY_BASE_NAME)3.0
    --with-libyaml-source-dir
    --without-libyaml-source-dir
    --with-yaml-0.1-config
    --without-yaml-0.1-config
    --with-pkg-config
    --without-pkg-config
    --with-libyaml-dir
    --without-libyaml-dir
    --with-libyaml-include
    --without-libyaml-include=${libyaml-dir}/include
    --with-libyaml-lib
    --without-libyaml-lib=${libyaml-dir}/lib

To see why this extension failed to compile, please check the mkmf.log which can be found
here:

/tmp/bundler20230515-13058-ydlnsbpsych-5.1.0/extensions/x86_64-linux/3.0.0/psych-5.1.0/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in
/tmp/bundler20230515-13058-ydlnsbpsych-5.1.0/gems/psych-5.1.0 for inspection.
Results logged to
/tmp/bundler20230515-13058-ydlnsbpsych-5.1.0/extensions/x86_64-linux/3.0.0/psych-5.1.0/gem_make.out

  /usr/lib/ruby/vendor_ruby/rubygems/ext/builder.rb:95:in `run'
  /usr/lib/ruby/vendor_ruby/rubygems/ext/ext_conf_builder.rb:47:in `block in build'
  /usr/lib/ruby/3.0.0/tempfile.rb:317:in `open'
  /usr/lib/ruby/vendor_ruby/rubygems/ext/ext_conf_builder.rb:26:in `build'
  /usr/lib/ruby/vendor_ruby/rubygems/ext/builder.rb:164:in `build_extension'
  /usr/lib/ruby/vendor_ruby/rubygems/ext/builder.rb:198:in `block in build_extensions'
  /usr/lib/ruby/vendor_ruby/rubygems/ext/builder.rb:195:in `each'
  /usr/lib/ruby/vendor_ruby/rubygems/ext/builder.rb:195:in `build_extensions'
  /usr/lib/ruby/vendor_ruby/rubygems/installer.rb:851:in `build_extensions'
/var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/rubygems_gem_installer.rb:72:in
`build_extensions'
/var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/rubygems_gem_installer.rb:28:in
`install'
  /var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/source/rubygems.rb:207:in `install'
/var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/installer/gem_installer.rb:54:in
`install'
/var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/installer/gem_installer.rb:16:in
`install_from_spec'
/var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/installer/parallel_installer.rb:186:in
`do_install'
/var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/installer/parallel_installer.rb:177:in
`block in worker_pool'
  /var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/worker.rb:62:in `apply_func'
/var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/worker.rb:57:in `block in
process_queue'
  /var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/worker.rb:54:in `loop'
  /var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/worker.rb:54:in `process_queue'
/var/lib/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 psych (5.1.0), and Bundler cannot continue.

In Gemfile:
  sdoc was resolved to 2.6.1, which depends on
    rdoc was resolved to 6.5.0, which depends on
      psych
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
/tmp/bundler20230515-13058-8no6joreadline-ext-0.1.5/gems/readline-ext-0.1.5/ext/readline
/usr/bin/ruby3.0 -I /usr/lib/ruby/vendor_ruby -r ./siteconf20230515-13058-e0ceh0.rb
extconf.rb
checking for tgetnum() in -lncurses... yes
checking for readline/readline.h... no
checking for editline/readline.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/usr/bin/$(RUBY_BASE_NAME)3.0
    --with-curses-dir
    --without-curses-dir
    --with-curses-include
    --without-curses-include=${curses-dir}/include
    --with-curses-lib
    --without-curses-lib=${curses-dir}/lib
    --with-ncurses-dir
    --without-ncurses-dir
    --with-ncurses-include
    --without-ncurses-include=${ncurses-dir}/include
    --with-ncurses-lib
    --without-ncurses-lib=${ncurses-dir}/lib
    --with-termcap-dir
    --without-termcap-dir
    --with-termcap-include
    --without-termcap-include=${termcap-dir}/include
    --with-termcap-lib
    --without-termcap-lib=${termcap-dir}/lib
    --with-readline-dir
    --without-readline-dir
    --with-readline-include
    --without-readline-include=${readline-dir}/include
    --with-readline-lib
    --without-readline-lib=${readline-dir}/lib
    --enable-libedit
    --disable-libedit
    --with-ncurseslib
    --without-ncurseslib
    --with-editline-dir
    --without-editline-dir
    --with-editline-include
    --without-editline-include=${editline-dir}/include
    --with-editline-lib
    --without-editline-lib=${editline-dir}/lib
extconf.rb:62:in `<main>': Neither readline nor libedit was found (RuntimeError)

To see why this extension failed to compile, please check the mkmf.log which can be found
here:

/tmp/bundler20230515-13058-8no6joreadline-ext-0.1.5/extensions/x86_64-linux/3.0.0/readline-ext-0.1.5/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in
/tmp/bundler20230515-13058-8no6joreadline-ext-0.1.5/gems/readline-ext-0.1.5 for inspection.
Results logged to
/tmp/bundler20230515-13058-8no6joreadline-ext-0.1.5/extensions/x86_64-linux/3.0.0/readline-ext-0.1.5/gem_make.out

  /usr/lib/ruby/vendor_ruby/rubygems/ext/builder.rb:95:in `run'
  /usr/lib/ruby/vendor_ruby/rubygems/ext/ext_conf_builder.rb:47:in `block in build'
  /usr/lib/ruby/3.0.0/tempfile.rb:317:in `open'
  /usr/lib/ruby/vendor_ruby/rubygems/ext/ext_conf_builder.rb:26:in `build'
  /usr/lib/ruby/vendor_ruby/rubygems/ext/builder.rb:164:in `build_extension'
  /usr/lib/ruby/vendor_ruby/rubygems/ext/builder.rb:198:in `block in build_extensions'
  /usr/lib/ruby/vendor_ruby/rubygems/ext/builder.rb:195:in `each'
  /usr/lib/ruby/vendor_ruby/rubygems/ext/builder.rb:195:in `build_extensions'
  /usr/lib/ruby/vendor_ruby/rubygems/installer.rb:851:in `build_extensions'
/var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/rubygems_gem_installer.rb:72:in
`build_extensions'
/var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/rubygems_gem_installer.rb:28:in
`install'
  /var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/source/rubygems.rb:207:in `install'
/var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/installer/gem_installer.rb:54:in
`install'
/var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/installer/gem_installer.rb:16:in
`install_from_spec'
/var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/installer/parallel_installer.rb:186:in
`do_install'
/var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/installer/parallel_installer.rb:177:in
`block in worker_pool'
  /var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/worker.rb:62:in `apply_func'
/var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/worker.rb:57:in `block in
process_queue'
  /var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/worker.rb:54:in `loop'
  /var/lib/gems/3.0.0/gems/bundler-2.3.22/lib/bundler/worker.rb:54:in `process_queue'
/var/lib/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 readline-ext (0.1.5), and Bundler cannot
continue.

In Gemfile:
  readline-ext
fxn commented 1 year ago

Could you elaborate a bit on this patch in the PR description please? Like, explain what error did you get, doing what, why are these dependencies needed now and not before, something like that.