やりたかったこと
shell上でバージョン2.6.5のrubyをつかえるようにする(5年以上まえです)
引っかかった点
標準で設定されていた2.5.0を削除したらOSの標準rubyバージョンが有効になってしまい、homebrewのでDLした最新のrubyのバージョン2.6.5をshellの標準のrubyバージョンとして設定するのに苦労した
解決方法
zshrcにPATHを設定することでshell(zsh)利用時に適用するrubyのバージョンを管理する
流れリスト
- rbenvを使用しようとしたがやめた
- ruby使用方法は約4パターン、用途別比較
- homebrewでrubyのバージョンをアップグレードする
- 環境変数をセットする
export
コマンドを用いて、インストールしたrubyをshell(zsh)で使用できるようにする - shell(zsh)でデフォルトで使うrubyバージョンを2.6.5に設定するため、zshrcにPATHを設定する
- VSCodeで
code
コマンドを有効にした
1. rbenvを使用しようとしたがやめた
homebrewでrubyをインストールしていたため、homebrewでrubyのバージョンをアップデートしようとググってみたら、rbenvというものをインストールする手順が沢山出てきた。
一旦手順通りにrbenvをインストールする方向で進んだ。
(※rbenvとは:複数のRubyのバージョンを管理し、プロジェクトごとにRubyのバージョンを指定して使うことを可能としてくれるツールのこと)
しかしそこまで複数のバージョンを管理する必要が無いので不要と判断。
普通にhomebrewでupgradeすることに決めた。
2. ruby使用方法は約4パターン、用途別比較
パターン1 : OSにインストールされているrubyを使用する
メリット
- インストールする手間が省ける
- 標準設定されているので、設定しなくてもどこでも使える
デメリット
- macOSのバージョンアップをしないとrubyのバージョンも上がらない(Mojaveのrubyはバージョン2.5.0)
パターン2 : rubyの公式サイトから、最新のrubyをインストールする
メリット
- brewなどのパッケージマネージャーを入れていなくてもインストールできる
- 最新のバージョンが速攻で手に入る
デメリット - 自身でコンパイルなどして設定する必要があるため、手間がかかる
パターン3 : homebrewでインストールする
メリット
- 簡単
- 割とすぐに最新のバージョンが手に入る
デメリット - 複数のrubyのバージョンを共存させるのが面倒
- 完全に最新のものが手に入るわけではなく、動作が安定しているバージョンが手に入る
###パターン4 : rbenvを使用する(rbenvはhomebrewなどからインストールする必要がある)
メリット
- 複数バージョンのrubyがインストールできる
- 最新のrubyが手に入る
- PJ毎にrubyのバージョンを使い分けの設定などがしやすい
デメリット - インストールや初期設定などが面倒
- 管理(マッピング)が少し大変
3. homebrewでrubyのバージョンをアップグレードする
先ずは現在shell(zsh)で使用しているrubyのバージョンを確認する
$ ruby -v
必要な場合はrubyの情報を確認しておく
$ brew info ruby
最新のrubyをインストールする
$ brew upgrade ruby
アップデートできたら再び$ ruby -v
でバージョンを確認する。
するとバージョン2.5.0のまま、新しいバージョン2.6.5になっていない。
確認するとupgrade時に下記のエラーが表示されていた。
「OSに入っているruby2.5.0が標準設定されているので、新しい2.6.5は標準設定できなかったよ」みたいな感じのエラーらしい。
The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/bundle
上書きをした時にどうなるかの仮実行コマンドで、変更後どうなるかを確認できるので実行してみる
$ brew link --overwrite --dry-run ruby
#would remove 2.5.0 みたいな感じで確認される(ログ消えた)
2.5.0は削除したいので、下記のコマンドを実行する
$ brew link --overwrite ruby
改めて$ ruby -v
!
なんと、まだOSのruby2.5.0が表示される。
4. 環境変数をセットするexport
コマンドを用いて、インストールしたrubyをshell(zsh)で使用できるようにする
PATHの設定をする
export PATH="/usr/local/opt/ruby/bin:$PATH"
いざ!
$ ruby -v
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin18]
しかし新しいタブを開き$ ruby -v
すると、また2.5.0に戻っている
5. shell(zsh)でデフォルトで使うrubyバージョンを2.6.5に設定するため、zshrcにPATHを設定する
zshの設定ファイルである、.zshrcを編集する必要がでてきた。
vimは苦手なので(←いつか練習)VSCodeで編集するよ。
code
コマンドで指定したエディタがVSCodeでたちあがるよ。
$ code .zshrc
zsh: command not found: code
おうふ
VSCode側の設定が必要だよ
手順:
- 表示 > コマンドパレット > 「shell」で検索 => シェルコマンド:'code'コマンドをインストールします**
$ code .zshrc
VSCodeで開けたので、zshrcを編集していくマン
User configuration 以降がユーザ設定(自由エリア)だと聞いたのでその真下に書いた
# User configuration
# brewでインストールしたrubyのVersionをデフォルトで指定
export PATH="/usr/local/opt/ruby/bin:$PATH"
# export MANPATH="/usr/local/man:$MANPATH"
zshの設定ファイルである、.zshrcをcat
コマンドで確認することもできる。
$ cat .zshrc
これでshell上でバージョン2.6.5のrubyがつかえるようになった。
めでたい。