Macをイチから環境構築する。
目標
Rubyの環境をVScodeで書けるようにする。
全体の流れ
とにかく Homebrew で色んなモノを入れられる
後々のために anyenv で各言語のVer.を切り替えられるようにしておく
Homebrewのインストール
色んな言語やアプリをコマンド一発で入れられて便利
まずはHomebrewから導入を行う
ターミナルを立ち上げる
Dock上の「Launchpad」(ロケットアイコン)→「その他」→「ターミナル」
Homebrewのスクリプトをコピー
Homebrewにアクセスし、インストールのところに書いてあるスクリプトをコピーする
- Macでのコピペの仕方
- 人差し指で先頭をクリックして、中指で終端までドラッグ
- 二本指でタップすると右クリックメニューが出るので「コピー」(もしくは⌘+c)
ターミナルに貼り付ける
ターミナル貼り付けてエンター(ペースト:二本指でタップもしくは、⌘+v)
Xcode Command Line Toolsのインストール
上記スクリプトの実行中に、下記表示が出るのでエンター
==> The Xcode Command Line Tools will be installed.
Press RETURN to continue or any other key to abort
パスワードの入力
スクリプト実行中に、passwordを求められるので、Macのログインパスワードを入力してエンター
確認
スクリプトの実行が終わったら、brew doctor
と入力
Your system is ready to brew.
と表示されればOK
以上でHomebrewが導入できました。
ChromeやVScodeもこれでインストールできますが、次章ではRuby導入を目指してanyenvを導入します。
anyenvの導入
Homebrewを利用して、anyenvを導入します。
rbenvでRubyのVer管理を行います。
nodenvでNode.jsのVer.管理を行います。
anyenvで上記のXXenvの管理を行います。
brewコマンドでanyenvをインストールする
brew install anyenv
をターミナルに入力
pathを通す
上記の手順を実施すると、以下のようにターミナルに表示されます。
# Load anyenv automatically by adding
# the following to ~/.bash_profile:
eval "$(anyenv init -)"
言われた通りに、.bash_profileに追加しようと思います。
以下の通りに、ターミナルに入力
echo 'eval "$(anyenv init -)"' >> ~/.bash_profile
ターミナル再起動
変更を有効にするためターミナルを再起動します
(画面を閉じて、ターミナルを再度立ち上げる)
初期化
ターミナルを立ち上げ直すと、下記の表示が出ました
ANYENV_DEFINITION_ROOT(/Users/XXXX/.config/anyenv/anyenv-install) doesn't exist. You can initialize it by:
\ > anyenv install —init
# XXXXの部分にはユーザー名が入っています
言われた通りに、anyenv install --init
をターミナルに入力
MacBook-chan: XXXX$ anyenv install --init
Manifest directory doesn't exist: /Users/XXXX/.config/anyenv/anyenv-install
Do you want to checkout ? [y/N]: y
チェックアウトしますか?と言われていたので、y
と入力
Completed!
これでanyenvの導入が完了です。
確認
正常に導入されたか確認してみましょう。anyenv --version
と入力
anyenvのバージョンが表示されればOKです。
MacBook-chan: XXXX$ anyenv --version
anyenv 1.1.1
参考記事
anyenv GitHub
https://github.com/anyenv/anyenv
rbenvの導入
anyenvを利用して、rbenvを導入します。
ターミナルにanyenv install rbenv
と入力
MacBook-chan:~ XXXX$ anyenv install rbenv
# 中略
Install rbenv succeeded!
Please reload your profile (exec $SHELL -l) or open a new session.
ターミナル再起動
やはり、ターミナルの再起動しなさいと言われました。
ここでは、exec $SHELL -l
と入力して再起動と同等のことをします(親切に書いてくれている・・・!)
確認
rbenv --version
と入力し、正常に導入されたか確認します。
MacBook-chan:~ XXXX$ rbenv --version
rbenv 1.1.2-2-g4e92322
Rubyの導入
やっとRubyを導入できます!
Rubyのダウンロードサイトによりますと、2.6.4が安定版らしいので2.6.4を入れます。(2019年9月現在)
Ruby 2.6.4の導入
rbenv install 2.6.4
と入力します。
下記のように表示されれば完了です。
Installed ruby-2.6.4 to /Users/XXXX/.anyenv/envs/rbenv/versions/2.6.4
Ruby 2.6.4をセットする
anyenv versions
と入力します。
MacBook-chan:~ XXXX$ anyenv versions
rbenv:
* system (set by /Users/XXXX/.anyenv/envs/rbenv/version)
2.6.4
systemのRubyが有効になっています。
rbenv global 2.6.4
と入力してから再びanyenv versions
と入力します。
$ rbenv global 2.6.4
$ anyenv versions
rbenv:
system
* 2.6.4 (set by /Users/XXXX/.anyenv/envs/rbenv/version)
先程導入した2.6.4が有効になりました
確認
ruby --version
と入力し、正常に導入されたか確認します。
$ ruby --version
ruby 2.6.4p104 (2019-08-28 revision 67798) [x86_64-darwin18]
参考記事
Bundlerの導入
Bundlerを使ってgemファイル(例:Rails, Rubocop, Solargraph)を管理するので、先にBundlerを導入します。
ターミナルにgem install bundler
と入力
Ruby 2.6.4には最初からBundlerが入っているようです(2019.9.24追記)
Ruby 2.6で発生する「プロを目指す人のためのRuby入門」との差異について
12.8.2項ではBundlerを使うために、gem install bundler のようなコマンドでBundlerをインストールする必要があると書きました。ですが、Ruby 2.6ではBundlerが標準ライブラリとして取り込まれているため、別途インストールする必要がありません。
確認
bundle --version
と入力し、正常に導入されたているかを確認します。
$ bundle --version
Bundler version 2.0.2
各種gemの導入は後ほど
参考記事
Hombrewで必要なものを導入
git
$ brew install git
VScode
brew cask install visual-studio-code
Evernote
brew cask install evernote
Chrome
brew cask install google-chrome
Google IME
brew cask install google-japanese-ime
VScodeの拡張機能
下記の拡張機能を入れていますが、ハマったところだけ記述します。
- 日本語化
- Ruby
- Ruby Language Colorization
- endwise
- ruby-rubocop
- vscode-icons
- Ruby Solargraph
- GitHistory
下記2つがうまく行かずVScodeの設定だけでは使えませんでした。
おそらくanyenvやrbenvとの兼ね合いかと思われます。
ruby-rubocop
Ruby Solargraph
VScode上でRubocopとSolargraphを使用する
VScode上で.rbファイルを保存するたびに、VScode上でRubocopに関するエラーが出る
rubocop is not excutable
execute path is empty! please check ruby.rubocop.executePath
Solargraphが見つかりませんのようなエラーも出ていたが、詳細失念。
Bundlerで導入する
RubocopもSolargraphもgemファイルなので、Bundlerで導入する
ターミナルで、作業フォルダ(VScodeの「フォルダを開く」で開いたフォルダ)にcd
で移動する
bundle init
と入力すると、gemfileが作成される。
code gemfile
と入力すると、VScodeでgemfileを編集できる。
gemfileには以下の通り記載されていたので
source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
# gem "rails"
下記を追記し、上書き保存。
gem 'rubocop', require: false, group: :development
gem 'solargraph', group: :development
ターミナルにbundle install
と入力
参考記事
[Mac]VScode で ruby-rubocop が動かなくなったら executePath を設定してみよう
VSCodeでRuby Solargraph拡張機能を使ってみた話
余談
VScode等のエディタで作成した"hoge.rb"を実行するために、
ターミナルでhoge.rb
と入力したところ、Command not found
と怒られました。
Windowsでは、(.rbの拡張子がRuby CUIに紐付けされていれば)hoge.rb
と入力するだけでRubyファイルを実行できます。
MacOSでは、きちんとruby hoge.rb
と入力しましょう。