From: hsbt@... Date: 2017-11-29T08:48:50+00:00 Subject: [ruby-core:83961] [Ruby trunk Bug#13997][Third Party's Issue] Bundler gem binstub broken Issue #13997 has been updated by hsbt (Hiroshi SHIBATA). Status changed from Feedback to Third Party's Issue @hone Can you reproduce without rvm environment? I think it's problem for ruby_executable_hooks with rvm. like followings. * https://stackoverflow.com/questions/32308978/ruby-file-ruby-executable-hooks-syntax-error * https://stackoverflow.com/questions/32186242/rake-dbmigrate-doesnt-work-after-ruby-2-2-2-to-2-2-3-upgrade-via-rvm ---------------------------------------- Bug #13997: Bundler gem binstub broken https://bugs.ruby-lang.org/issues/13997#change-68031 * Author: hone (Terence Lee) * Status: Third Party's Issue * Priority: Normal * Assignee: hsbt (Hiroshi SHIBATA) * Target version: 2.5 * ruby -v: ruby 2.5.0preview1 (2017-10-10 trunk 60153) [x86_64-linux] * Backport: ---------------------------------------- Hi, In Ruby 2.5.0-preview1, I'm seeing the following error if the Rubygems binstub PATH precedes the binstubs from ruby and the Bundler version installed is <= 1.15.4 (what ruby vendors). ~~~ /home/hone/.rvm/gems/ruby-2.4.1@global/bin/bundle:22:in `load': /tmp/bundler/lib/ruby/gems/2.5.0/gems/bundler-1.15.4/exe/bundle:4: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '(' (SyntaxError) exec "$bindir/ruby" -x "$0" "$@" ^ /tmp/bundler/lib/ruby/gems/2.5.0/gems/bundler-1.15.4/exe/bundle:9: syntax error, unexpected keyword_do_block, expecting end-of-input Signal.trap("INT") do ~~~ The reason for this is because the generated bundler binstub by rubygems runs code like this: ~~~ load Gem.bin_path('bundler', 'bundle', '>= 0.a') ~~~ The problem is that the binstub from the vendored bundler in ruby is not pure ruby: ~~~ #!/bin/sh # -*- ruby -*- bindir="${0%/*}" exec "$bindir/ruby" -x "$0" "$@" ~~~ The top of this file is shell and not ruby. Kernel#load chokes on this. Thanks, Terence -- https://bugs.ruby-lang.org/ Unsubscribe: