Issue #14058 has been updated by hsbt (Hiroshi SHIBATA).

Status changed from Assigned to Third Party's Issue

確認ありがとうございます。

bundler がコマンドをハードコードしていることが原因なので upstream への報告をお願いします。

----------------------------------------
Bug #14058: [bundler] program-suffixを付けるとbundle gem -> rake buildなどが動作しない
https://bugs.ruby-lang.org/issues/14058#change-68202

* Author: kimuraw (Wataru Kimura)
* Status: Third Party's Issue
* Priority: Normal
* Assignee: hsbt (Hiroshi SHIBATA)
* Target version: 
* ruby -v: ruby 2.5.0dev (2017-10-26 trunk 60450) [x86_64-linux]
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
`./configure --program-suffix=2.5 ...`など、program-suffixを指定してrubyをビルドしたとき
bundlerのいくつかの機能が動作しません。

## 1. `bundle gem`で新規gemを作成したとき`rake build`や`rake install`が失敗する

~~~
$ bundle2.5 gem mygem
$ cd mygem
$ vi mygem.gemspec  # fix TODOs
$ rake2.5 build 
rake aborted!
sh: 1: gem: not found
  :
$ rake2.5 install
rake aborted!
sh: 1: gem: not found
  :
~~~

program-suffixを付けたとき、gemコマンドにも"gem2.5"などsuffixが反映されますが
lib/bundler/gem_helper.rbで常に"gem"という名前を期待している箇所があり、
そこで失敗します。

~~~
    def build_gem
      file_name = nil
      sh("gem build -V '#{spec_path}'") do # <= missing suffix
~~~

## 2. `bundler`コマンドが動作しない

コマンドbundleとbundlerのうち、program-suffixを付けたとき後者の実行が失敗します。

~~~
$ bundle2.5 --version
Bundler version 1.15.4
$ bundler2.5 --version
Traceback (most recent call last):
	1: from /home/vagrant/ruby/2.5/bin/bundler2.5:4:in `<main>'
/home/vagrant/ruby/2.5/bin/bundler2.5:4:in `load': cannot load such file -- /home/vagrant/ruby/2.5/bin/bundle (LoadError)
$ cat `which bundler2.5`
#!/home/vagrant/ruby/2.5/bin/ruby2.5
# frozen_string_literal: true

load File.expand_path("../bundle", __FILE__)
~~~

いずれもprogram-prefixでも同様だと思います。




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>