gem installしたモノが特定ディレクトリ配下だけcommand not found
zmoazeni/csscssを
% gem install csscss
(ホームディレクトリで)しました。
ほとんどのディレクトリ(ホームディレクトリとか)で、
% csscss
と打てば問題なく使えます。
bundlerが怪しい?
Gemfileを用意し
bundle install --path
したプロジェクト配下のディレクトリ(myprojectディレクトリとします)では、
% csscss
zsh: command not found: csscss
となります。このディレクトリのGemfileには、csscss
をインストールするという記述はしておりません。(推測ですが.bundle/config
があるディレクトリではcommand not found
になる?)
% which csscss (ホームディレクトリその他で)
/Users/shingo/.rvm/gems/ruby-2.2.3/bin/csscss
なので絶対パスで呼び出してみてもだめでした。
% /Users/shingo/.rvm/gems/ruby-2.2.3/bin/csscss
/Users/shingo/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/dependency.rb:315:in `to_specs': Could not find 'csscss' (>= 0) among 23 total gem(s) (Gem::LoadError)
Checked in 'GEM_PATH=/Users/shingo/Documents/raku/myproject/vendor/bundle/ruby/2.2.0', execute `gem env` for more information
rvmが怪しい?
加えて怪しいのがrvm
を使っているので、rvm
です。
該当プロジェクト(myprojectディレクトリ)は
% cat .ruby-version
2.2.4
% ruby -v
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-darwin15]
ホームディレクトリでは
ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
なので、rubyのバージョンのせいな気もしてきました.....
他のディレクトリで使えるので、問題ないといえば問題ないのですが、
理屈が気になります。また合わせて、command not found
となってしまうディレクトリからコマンドを呼び出す方法も知りたいです。
追記:
念のため該当ディレクトリで下記を試しました
% bundle exec csscss
bundler: command not found: csscss
(今回はgem install
したものであって、bundle install
したものでないのでこの挙動は当然のはず)
上記だと問題が切り分けられてないので切り分けました
新しくhogeディレクトリを作成し、
その中で、
ruby -v
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-darwin15]
となるようにした途端、
csscss
zsh: command not found: csscss
となったので、原因はrvm
(rubyのバージョン関係)だと思います。
rubyのバージョンが違う状態で絶対パスで呼ぶ
rubyのバージョンが2.2.4になった状態で、2.2.3のbinを見にいってもだめなようです。
% /Users/shingo/.rvm/gems/ruby-2.2.3/bin/csscss
/Users/shingo/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/dependency.rb:315:in `to_specs': Could not find 'csscss' (>= 0) among 11 total gem(s) (Gem::LoadError)
Checked in 'GEM_PATH=/Users/shingo/.rvm/gems/ruby-2.2.4:/Users/shingo/.rvm/gems/ruby-2.2.4@global', execute `gem env` for more information
from /Users/shingo/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/dependency.rb:324:in `to_spec'
from /Users/shingo/.rvm/rubies/ruby-2.2.4/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_gem.rb:64:in `gem'
from /Users/shingo/.rvm/gems/ruby-2.2.3/bin/csscss:22:in `<main>'
from /Users/shingo/.rvm/gems/ruby-2.2.4@global/bin/ruby_executable_hooks:15:in `eval'
from /Users/shingo/.rvm/gems/ruby-2.2.4@global/bin/ruby_executable_hooks:15:in `<main>'
もはや、古いバージョンのことは忘れて、gem installをバージョンごとにし直しということでしょうか...