はじめに
先日のXcodeのアップデートを受け入れた結果、docker-syncが動かなくなる事態にorz
↓こんな感じのエラー吐いた
$ docker-sync start
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.h
一旦解決したので、備忘録としてまとめます。
Rubyの管理ちゃんとしよう
今までXcodeを入れておけばRubyが一緒についてくるから別に気にしなくていいや!と放置してましたが、今回のこの問題を解決するのにちゃんと見ててあげなきゃダメなんだなぁと思いました。
なんでかって?
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.
(察してください)
rbenvのインストール
Google先生の力を借りてRubyのバージョン管理ツール検索したら一番上にrbenvが出てきたのでとりあえずインストール(こっちの管理ツールの方が良い!とかあれば教えてください)
$ brew update
$ brew install rbenv ruby-build
(brewコマンド使えない人はhomebrewで検索!)
Rubyのインストール
インストールしたらRubyのバージョンリストをチェック(Rubyの公式で安定版のバージョン見た方がいいかも)
$ rbenv install -l
インストールしたいバージョンを指定し、インストール開始。
$ rbenv install 2.6.4
インストールしたら使用バージョンに指定し、バージョンチェック
$ rbenv global 2.6.4
$ rbenv versions
system
* 2.6.4 (set by /Users/admin/.rbenv/version)
最後にシェルにrbenvのパスを通して完了!シェルを再起動。
[[ -d ~/.rbenv ]] && \
export PATH=${HOME}/.rbenv/bin:${PATH} && \
eval "$(rbenv init -)"
あとはgem先生お願いします
まずはパスをチェックしてgemとrubyがどこ向いているのかを確認(rbenv向いてればOK)
$ which gem
/Users/admin/.rbenv/shims/gem
$ which ruby
/Users/admin/.rbenv/shims/ruby
最後にgem listを確認。おそらくdocker-composeもdocker-syncもいないと思うので、インストール。
$ gem list
$ gem install docker-compose
$ gem install docker-sync
これでdocker-syncも...動いた!!!!
まとめ
Rubyでの開発をしてこなかったので、アプリケーションが使っているのは知っていても放置していました。
が、ちゃんと理解しておかないとなーと改めて思いました。