MacBookでGemを使えるように手間取った話

2017年11月13日

macでgem install をしようとするとpermission errorが出るのでなんとかする話

 はじめは手持ちのMacにjekyllをインストールしようとしたんだけど、PermissionErrorが出たので、なんとかしようとした話。
ちなみにMacは下のようなもの。

[code lang=text]
OS: macOS High Sierra
[/code]

jekyllをインストールしようとすると以下のようなPermissionErrorがでた。

[code lang=text]
$ gem install jekyll
Fetching: public_suffix-3.0.1.gem (100%)
ERROR: While executing gem … (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.
[/code]

Homebrewを確認

[code lang=text]
$ brew –version
Homebrew 1.3.6
Homebrew/homebrew-core (git revision 6bcd6; last commit 2017-10-25)

[/code]

すでにインストール済みだったので入ってない人は、ググって下さい。

rbenvを入れてrubyを管理

[code lang=text]
$ brew install rbenv ruby-build
Updating Homebrew…

…割愛

==> ./install.sh
🍺 /usr/local/Cellar/ruby-build/20170914: 363 files, 187.2KB, built in 4 seconds
==> Installing rbenv
==> Downloading https://homebrew.bintray.com/bottles/rbenv-1.1.1.high_sierra.bot
######################################################################## 100.0%
==> Pouring rbenv-1.1.1.high_sierra.bottle.tar.gz
🍺 /usr/local/Cellar/rbenv/1.1.1: 36 files, 62.7KB
[/code]

ちゃんと入ったか確認

[code lang=text]
$ rbenv –version
rbenv 1.1.1
[/code]

利用可能なrubyのバージョン一覧を表示

[code lang=text]
$ rbenv install -l
Available versions:
1.8.5-p52
・・・
2.3.5
2.4.0-dev
2.4.0-preview1
2.4.0-preview2
2.4.0-preview3
2.4.0-rc1
2.4.0
2.4.1
2.4.2
2.5.0-dev
・・・
[/code]

めっちゃ表示されるので割愛。
一番新しい、static 2.4.2をインストールすることにする。

[code lang=text]
$ rbenv versions
* system (set by /Users/tacky2k/.rbenv/version)
2.4.2
$ ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [universal.x86_64-darwin17]
$ rbenv global 2.4.2
$ ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [universal.x86_64-darwin17]
$ rbenv versions
system
* 2.4.2
[/code]

これでデフォルトでruby2.4.2ができるようになりました。
※と思っていたが、実際には動いていませんでした。

[code lang=text]
$ ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [universal.x86_64-darwin17]

$ rbenv global 2.4.2

$ ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859)
[universal.x86_64-darwin17]

$ rbenv rehash

$ ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [universal.x86_64-darwin17]
[/code]

かわらんがな、、、、

[code lang=text]
$ rbenv init
# Load rbenv automatically by appending
# the following to ~/.bash_profile:

eval "$(rbenv init -)"

$ vi .bash_profile
#.bash_profileの最後にeval "$(rbenv init -)"を追加

$ echo $PATH
/Users/*****/anaconda/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

$ source ~/.bash_profile

$ echo $PATH
/Users/*****/.rbenv/shims:/Users/*****/anaconda/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/Users/*****/anaconda/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

$ ruby -v
ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin17]

[/code]

やっと切り替わった。.bash_profileにevalを追加するのが必要でした。