[DRE-maint] Bug#954865: ruby: Ruby update to 2.7 broke all native extensions, including ones needed for gem pristine

Calum McConnell calumlikesapplepie at gmail.com
Tue Mar 24 15:27:54 GMT 2020


Package: ruby
Version: 1:2.7
Severity: important

I ran apt update recently, and got ruby 2.7, but now gem seems to have been broken.  
Ruby itself continues to work: however, all gems using native extensions seem to
have been broken.
Intrestingly, bundle install fetched and succsessfully installed several gems,
untill it reached one with native extensions, at which point it died dramatically.

Any call to 'gem', regardless of subcommands or options, returns this:

calum at CalumsDebianSupreme:~$ gem
Ignoring bigdecimal-2.0.0 because its extensions are not built. Try: gem pristine bigdecimal --version 2.0.0
Ignoring bigdecimal-1.4.4 because its extensions are not built. Try: gem pristine bigdecimal --version 1.4.4
Ignoring commonmarker-0.21.0 because its extensions are not built. Try: gem pristine commonmarker --version 0.21.0
Ignoring commonmarker-0.17.13 because its extensions are not built. Try: gem pristine commonmarker --version 0.17.13
Ignoring date-3.0.0 because its extensions are not built. Try: gem pristine date --version 3.0.0
Ignoring etc-1.1.0 because its extensions are not built. Try: gem pristine etc --version 1.1.0
Ignoring eventmachine-1.2.7 because its extensions are not built. Try: gem pristine eventmachine --version 1.2.7
Ignoring ffi-1.12.2 because its extensions are not built. Try: gem pristine ffi --version 1.12.2
Ignoring ffi-1.12.1 because its extensions are not built. Try: gem pristine ffi --version 1.12.1
Ignoring ffi-1.11.3 because its extensions are not built. Try: gem pristine ffi --version 1.11.3
Ignoring ffi-1.11.1 because its extensions are not built. Try: gem pristine ffi --version 1.11.1
Ignoring ffi-1.9.18 because its extensions are not built. Try: gem pristine ffi --version 1.9.18
Ignoring http_parser.rb-0.6.0 because its extensions are not built. Try: gem pristine http_parser.rb --version 0.6.0
Ignoring io-console-0.5.6 because its extensions are not built. Try: gem pristine io-console --version 0.5.6
Ignoring io-console-0.5.5 because its extensions are not built. Try: gem pristine io-console --version 0.5.5
Ignoring io-console-0.5.2 because its extensions are not built. Try: gem pristine io-console --version 0.5.2
Ignoring json-2.3.0 because its extensions are not built. Try: gem pristine json --version 2.3.0
Ignoring nokogiri-1.10.9 because its extensions are not built. Try: gem pristine nokogiri --version 1.10.9
Ignoring nokogiri-1.10.7 because its extensions are not built. Try: gem pristine nokogiri --version 1.10.7
Ignoring nokogiri-1.8.0 because its extensions are not built. Try: gem pristine nokogiri --version 1.8.0
Ignoring nokogumbo-2.0.2 because its extensions are not built. Try: gem pristine nokogumbo --version 2.0.2
Ignoring psych-3.1.0 because its extensions are not built. Try: gem pristine psych --version 3.1.0
Ignoring sassc-2.2.1 because its extensions are not built. Try: gem pristine sassc --version 2.2.1
Ignoring stringio-0.1.0 because its extensions are not built. Try: gem pristine stringio --version 0.1.0
Ignoring strscan-1.0.3 because its extensions are not built. Try: gem pristine strscan --version 1.0.3
Ignoring unicode-0.4.4.4 because its extensions are not built. Try: gem pristine unicode --version 0.4.4.4
Ignoring zlib-1.1.0 because its extensions are not built. Try: gem pristine zlib --version 1.1.0
/usr/lib/ruby/2.7.0/yaml.rb:3: warning: It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
Traceback (most recent call last):
	14: from /usr/bin/gem:21:in `<main>'
	13: from /usr/lib/ruby/2.7.0/rubygems/gem_runner.rb:44:in `run'
	12: from /usr/lib/ruby/2.7.0/rubygems/gem_runner.rb:79:in `do_configuration'
	11: from /usr/lib/ruby/2.7.0/rubygems/gem_runner.rb:79:in `new'
	10: from /usr/lib/ruby/2.7.0/rubygems/config_file.rb:182:in `initialize'
	 9: from /usr/lib/ruby/2.7.0/rubygems/config_file.rb:332:in `load_file'
	 8: from /usr/lib/ruby/2.7.0/rubygems.rb:710:in `load_yaml'
	 7: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	 6: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	 5: from /usr/lib/ruby/2.7.0/yaml.rb:4:in `<top (required)>'
	 4: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	 3: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	 2: from /home/calum/gems/gems/psych-3.1.0/lib/psych.rb:14:in `<top (required)>'
	 1: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
/usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require': cannot load such file -- 2.7/psych.so (LoadError)
	15: from /usr/bin/gem:21:in `<main>'
	14: from /usr/lib/ruby/2.7.0/rubygems/gem_runner.rb:44:in `run'
	13: from /usr/lib/ruby/2.7.0/rubygems/gem_runner.rb:79:in `do_configuration'
	12: from /usr/lib/ruby/2.7.0/rubygems/gem_runner.rb:79:in `new'
	11: from /usr/lib/ruby/2.7.0/rubygems/config_file.rb:182:in `initialize'
	10: from /usr/lib/ruby/2.7.0/rubygems/config_file.rb:332:in `load_file'
	 9: from /usr/lib/ruby/2.7.0/rubygems.rb:710:in `load_yaml'
	 8: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	 7: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	 6: from /usr/lib/ruby/2.7.0/yaml.rb:4:in `<top (required)>'
	 5: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	 4: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
	 3: from /home/calum/gems/gems/psych-3.1.0/lib/psych.rb:13:in `<top (required)>'
	 2: from /home/calum/gems/gems/psych-3.1.0/lib/psych.rb:16:in `rescue in <top (required)>'
	 1: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
/usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require': libruby-2.5.so.2.5: cannot open shared object file: No such file or directory - /home/calum/gems/gems/psych-3.1.0/lib/psych.so (LoadError)

I initially had both ruby 2.5 and 2.7 installed, but removing 2.7 did not fix the error.
I considered reinstalling ruby, but apt would then have removed a whole chain of other programs.
Further, I shouldnt need to reinstall ruby: rebuilding native extensions should
be done by the upgrade script.

Any help in making gem usable again, both for me and for anyone else who encounters this,
would be much appreciated!

-- System Information:
Debian Release: bullseye/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 5.4.0-4-amd64 (SMP w/8 CPU cores)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages ruby depends on:
ii  ruby2.7  2.7.0-4

ruby recommends no packages.

Versions of packages ruby suggests:
ii  ri        1:2.7
ii  ruby-dev  1:2.7

-- no debconf information



More information about the Pkg-ruby-extras-maintainers mailing list