4657


Ruby 環境を再構築するため、 RubyGems それ自体を一度削除したいのですが、どのようにすればいいでしょうか？

RubyGems は `git clone` で取得し、ローカルリポジトリは残っています。

環境: Mac OS X Yosemite 10.10.1

[code]

    $ which gem
    /usr/bin/gem
    
    $ gem -v
    2.4.5
    
    $ ruby -v
    ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]
    
    $ cd /Library/Ruby/Gems/2.0.0;ls
    build_info  doc     gems
    cache       extensions  specifications
    
[/code]

* * *

コメントありがとうございます。入りきらないので編集します。

以下のようになっています。

[code]

    $ ruby -e 'puts $:'
    /Library/Ruby/Site/2.0.0
    /Library/Ruby/Site/2.0.0/x86_64-darwin14
    /Library/Ruby/Site/2.0.0/universal-darwin14
    /Library/Ruby/Site
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby/2.0.0
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby/2.0.0/x86_64-darwin14
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby/2.0.0/universal-darwin14
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/x86_64-darwin14
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin14
    
[/code]


CC BY-SA 3.0
2015-01-15T12:42:06.507
4619
2015-01-16T04:04:21.793
2015-01-15T16:03:43.813
5851
5851
question
ruby rubygems
RubyGems 自体を削除したい


ruby環境を再構築されたい理由が分かりかねますが、現在もrubyが動作する状態なのであれば、rubyの環境構築は[rbenv](https://github.com/sstephenson/rbenv)を利用されたほうが便利です。

rbenvを使うと1台のMacに複数のバージョンのRubyをインストールして切り替えながら使えるようになりますし、この仕組みでインストールされたRuby環境であればインストール／アンインストールが手軽にでき、Macにもともと入っているRubyをアップデートしたりする必要はほとんどなくなるでしょう。

rbenvはhomebrewを使ってインストールするのが一番簡単です。  
こちらの記事が参考になるかと思います。

<http://dev.classmethod.jp/server-side/language/build-ruby-environment-by-
rbenv/>


CC BY-SA 3.0
2015-01-15T13:14:18.400
4622
2015-01-15T13:14:18.400
7421
4619
answer


コメント追加したかったのですが貢献度が足りずコメント出来なかったので回答にさせて頂きます。

Rubygems を本当に新しくする必要があるのかどうか、そこが一番の疑問です。

> 現在のRuby環境でRubygemのインストールに失敗する

の意味合いをもう少し確認したいです。  
例えば Ruby on Rails をインストールするために `gem install rails` するとエラーが出る、ということでしょうか。 Mac
のプリインストールされている Ruby は root 管理下なので gem をインストールするためには `sudo gem install rails` と
`sudo` する必要があります。

> rben‌​vでインストール

rbenv でインストールされる Ruby にも、もちろん Rubygems が入っています。 rbenv で選択したその Ruby
の環境は、プリインストール環境側の Rubygems を無視しますので、放置したままの状況で問題ないと思います。  
また、いま確認しましたが

[code]

    $ rbenv global 2.2.0 
    $ gem -v
    2.4.5
    
[/code]

となっており、 Ruby 2.2.0であれば Rubygems も最新になっています。


CC BY-SA 3.0
2015-01-16T02:19:40.193
4650
2015-01-16T02:19:40.193
4114
4619
answer


RubyGems だけを消す、というのは面白いので、ここにまとめます。

## RubyGems をシステムから取り除く手順

  1. 環境の調査
  2. RubyGems ライブラリ本体を取り除く
  3. gem パッケージを取り除く
  4. gem コマンドを取り除く

### 1. 環境の調査

以下の2つのコマンドで最初に概観をつかんでおきます。  
( **RubyGems を消す前に、必ず行ってください。** )

[code]

    $ ruby -e 'puts $:'
    /Library/Ruby/Site/2.0.0
    /Library/Ruby/Site/2.0.0/x86_64-darwin14
    /Library/Ruby/Site/2.0.0/universal-darwin14
    /Library/Ruby/Site
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby/2.0.0
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby/2.0.0/x86_64-darwin14
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby/2.0.0/universal-darwin14
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/x86_64-darwin14
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin14
    
    $ gem env
    ...
      - GEM PATHS:
         - /Library/Ruby/Gems/2.0.0
         - /Users/MY_USER_NAME/.gem/ruby/2.0.0
         - /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0
     ...
    
[/code]

### 2. RubyGems ライブラリ本体を取り除く

  * gemconfigure.rb
  * gauntlet_rubygem.rc
  * rubygems.rb
  * ubygems.rb
  * rubygems

があれば、site ディレクトリから取り除きます。

[code]

    $ cd /Library/Ruby/Site/2.0.0
    $ ls -la
    total 80
    drwxr-xr-x   7 root  wheel    238  2 17  2014 .
    drwxr-xr-x   4 root  wheel    136 11  4  2013 ..
    -rw-r--r--   1 root  wheel   1425  2 17  2014 gauntlet_rubygems.rb
    drwxr-xr-x  70 root  wheel   2380  2 17  2014 rubygems
    -rw-r--r--   1 root  wheel  31694  2 17  2014 rubygems.rb
    -rw-r--r--   1 root  wheel    268  2 17  2014 ubygems.rb
    drwxr-xr-x   2 root  wheel     68  8 25  2013 universal-darwin13
    
    $ rm -r gauntlet_rubygems.rb rubygems.rb ubygems.rb rubygems
    
[/code]

※ ディレクトリは、 Linux であれば `/usr/lib/ruby/site_ruby/1.9.1`などとなっているでしょう。

### 3. gem パッケージ等を取り除く

今回 `gem uninstall` コマンドを **使わない** でもいいので、 gems
パッケージの入っているディレクトリを直接削除しましょう。一番楽しい所です。まず、 `gem env` で得られた、 `GEM PATHS` の項目を見ます。

[code]

      - GEM PATHS:
         - /Library/Ruby/Gems/2.0.0
         - /Users/MY_USER_NAME/.gem/ruby/2.0.0
         - /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0
    
[/code]

次に、一応、中身になにが入っているかを見てから消してゆきます。 （何があっても消しますが）

[code]

    $ ls -la /Library/Ruby/Gems/2.0.0
    $ rm -r /Library/Ruby/Gems/2.0.0
    
    $ ls -la /Users/MY_USER_NAME/.gem/ruby/2.0.0
    $ rm -r /Users/MY_USER_NAME/.gem/ruby/2.0.0
    
    $ ls -la /Users/MY_USER_NAME/.gem/ruby/2.0.0
    $ rm -r /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.
    
[/code]

ちなみに Linux 環境だと以下のようになるでしょう

[code]

    $ ls -la /home/higon/.gem/ruby/1.9.1
    $ rm -r /home/higon/.gem/ruby/1.9.1
    
    $ ls -la /usr/share/rubygems-integration/1.9.1
    $ rm -r /usr/share/rubygems-integration/1.9.1
    
[/code]

※ `.gems` や `gems` ディレクトリが空になったならば、消しても良いです。

### 4. gem コマンドを取り除く

gem コマンドの調査

[code]

    $ which gem
    /usr/bin/gem
    
    $ ls -la /usr/bin/gem*
    -r-xr-xr-x  1 root  wheel  596  6 12  2014 /usr/bin/gem
    
[/code]

シンボリックリンクで、 gem1.8 とか gem1.9.1 にリンクされていることもありますので、このような確認が必要です。(windows
環境であれば、 `gems.bat` も取り除いてください。)

gem コマンドの削除

[code]

    $ rm -r /usr/bin/gem
    
[/code]

参考:
[rubygems/Rakefile](https://github.com/rubygems/rubygems/blob/master/Rakefile)


CC BY-SA 3.0
2015-01-16T04:04:21.793
4657
2015-01-16T04:04:21.793
4978
4619
answer