20383


[zmoazeni/csscss](https://github.com/zmoazeni/csscss)を  
`% gem install csscss`  
（ホームディレクトリで）しました。

ほとんどのディレクトリ（ホームディレクトリとか）で、  
`% csscss`  
と打てば問題なく使えます。

## bundlerが怪しい？

Gemfileを用意し  
`bundle install --path`したプロジェクト配下のディレクトリ(myprojectディレクトリとします)では、

[code]

    % csscss
    zsh: command not found: csscss
    
[/code]

となります。このディレクトリのGemfileには、`csscss`をインストールするという記述はしておりません。(推測ですが`.bundle/config`があるディレクトリでは`command
not found`になる？)

[code]

    % which csscss　（ホームディレクトリその他で）
    /Users/shingo/.rvm/gems/ruby-2.2.3/bin/csscss
    
[/code]

なので絶対パスで呼び出してみてもだめでした。

[code]

    % /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
    
[/code]

## rvmが怪しい？

加えて怪しいのが`rvm`を使っているので、`rvm`です。

該当プロジェクト（myprojectディレクトリ）は

[code]

    % cat .ruby-version 
    2.2.4
    
    % ruby -v
    ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-darwin15]
    
[/code]

ホームディレクトリでは

[code]

    ruby -v
    ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
    
[/code]

なので、rubyのバージョンのせいな気もしてきました.....

他のディレクトリで使えるので、問題ないといえば問題ないのですが、  
理屈が気になります。また合わせて、`command not found`となってしまうディレクトリからコマンドを呼び出す方法も知りたいです。

* * *

追記：  
念のため該当ディレクトリで下記を試しました

[code]

    % bundle exec csscss
    bundler: command not found: csscss
    
[/code]

（今回は`gem install`したものであって、`bundle install`したものでないのでこの挙動は当然のはず）

## 上記だと問題が切り分けられてないので切り分けました

新しくhogeディレクトリを作成し、  
その中で、

[code]

    ruby -v
    ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-darwin15]
    
[/code]

となるようにした途端、

[code]

    csscss
    zsh: command not found: csscss
    
[/code]

となったので、原因は`rvm`（rubyのバージョン関係）だと思います。

### rubyのバージョンが違う状態で絶対パスで呼ぶ

rubyのバージョンが2.2.4になった状態で、2.2.3のbinを見にいってもだめなようです。

[code]

    % /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>'
    
[/code]

もはや、古いバージョンのことは忘れて、gem installをバージョンごとにし直しということでしょうか...


CC BY-SA 3.0
2015-12-25T15:26:36.683
20377
2015-12-26T00:26:55.920
2015-12-26T00:26:48.810
9008
9008
question
ruby rubygems bundler rvm
gem installしたモノが特定ディレクトリ配下だけcommand not found


RVM管理化のrubyはバージョンごとに独立した環境なので、あるバージョンのrubyの環境でインストールしたgemは他のバージョンのrubyからは見えません。それぞれの環境ごとに必要なgemをインストールする必要があります。


CC BY-SA 3.0
2015-12-26T00:26:55.920
20383
2015-12-26T00:26:55.920
5793
20377
answer