Project

General

Profile

Actions

Bug #18608

open

`require': cannot load such file -- ripper (LoadError) after `make distclean`

Added by brandonrdn (Brandon Riden) 3 months ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [x86_64-linux]
[ruby-core:107768]

Description

When compiling multiple instances of Ruby (In our case, two separate prefixes), using the following build code causes the 2nd installed Ruby to throw an error on any ruby/irb call.

Changing the code to delete the extracted ruby-3.1.0 folder and re-extract from the tarball fixes this issue, so I believe it's something in the make distclean that's causing issues. This was not an issue for ruby 2.6.3 or 2.6.7, just on 3.0+ versions.

Build code:

# Build Ruby
RUN set -e ; \
    . /etc/profile.d/ccache.sh ; \
    wget -q https://cache.ruby-lang.org/pub/ruby/${RUBY_VERSION%.*}/ruby-${RUBY_VERSION}.tar.gz ; \
    tar zxf ruby-${RUBY_VERSION}.tar.gz ; \
    rm -f ruby-${RUBY_VERSION}.tar.gz ; \
    pushd ruby-${RUBY_VERSION} ; \
    type -p gcc ; \
    for prefix in /usr/local /opt/vendored_ruby ; do \
        ./configure --prefix=$prefix --with-compress-debug-sections=no --disable-install-doc ; \
        make ; \
        make install ; \
        make distclean ; \
    done ; \
    popd ; \
    ccache --show-stats ; \
    rm -rf ruby-${RUBY_VERSION} /root/.ccache

Error:

<internal:/opt/vendored_ruby/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- ripper (LoadError)
        from <internal:/opt/vendored_ruby/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from /opt/vendored_ruby/lib/ruby/3.1.0/irb.rb:12:in `<top (required)>'
        from <internal:/opt/vendored_ruby/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from <internal:/opt/vendored_ruby/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from /opt/vendored_ruby/lib/ruby/gems/3.1.0/gems/irb-1.4.1/exe/irb:9:in `<top (required)>'
        from /opt/vendored_ruby/bin/irb:25:in `load'
        from /opt/vendored_ruby/bin/irb:25:in `<main>'
[root@cc75157e1b69 /]# /usr/local/bin/irb 
irb(main):001:0> 

This error pops up on any reference to ruby or irb, including the base commands.

Steps to reproduce:

  • Compile/make/make install Ruby 3.0+ with the 1st prefix
  • Run make distclean
  • Compile/make/make install Ruby 3.0+ with the 2nd prefix
  • run the irb and ruby commands in both paths.

No data to display

Actions

Also available in: Atom PDF