M1 MacBook Pro 14インチ買ったのでセットアップしたこととかメモ
開発用のツールまわり
ターミナル
デフォルトのzshでテーマはpreztoを使って、powerlevel10kにした。
prezto
使ったことなかったけど、結構すっと設定できて良かった。
Editor
brew caskでinstall
brew install --cask visual-studio-code
テーマはOne Dark Proにした
Git
brew install git
以下を実行して設定
git config --global user.name my_name git config --global user.email my_email git config --global core.editor "code --wait"
以下を参考に自動補完の設定も入れた
zsh で git コマンドの補完を有効にする · GitHub
Ruby
rbenv
を入れて複数バージョンで運用できるようにする
brew install rbenv rbenv init rbenv install 3.1.0 rbenv global 3.1.0
eval "$(rbenv init - zsh)"
を.zshrc
にも追記
以下のgemはglobalに入れといた
gem install solargraph gem install dip
Node.js
nodebrew
を入れて複数バージョンで運用できるようにする
brew install nodebrew mkdir -p ~/.nodebrew/src nodebrew install stable nodebrew use stable
yarnもglobalに入れておく
sudo npm install --global yarn
Docker
brew caskでインストール
brew install --cask docker
アーキテクチャを考慮してinstallしてくれるっぽいのでcaskでinstallしても大丈夫そうだった。
個人のRails製のWebサービスで試してみたけど、対応が必要だったのは以下ぐらいで思ったよりは全然動く。
ActiveSupport::EventedFileUpdateChecker
を使わないようにした
Chromeが動かないのでFirefoxでSystem Specを実行するようにした
RUN sudo apt -y install firefox firefox-locale-ja firefox-geckodriver
Capybara.register_driver :haedless_firefox do |app| browser_options = ::Selenium::WebDriver::Firefox::Options.new browser_options.add_argument('--headless') Capybara::Selenium::Driver.new( app, browser: :firefox, options: browser_options ) end RSpec.configure do |config| config.before(:each, type: :system) do |example| example.metadata[:js] ? driven_by(:headless_chrome) : driven_by(:rack_test) js_driver = ENV['CI'] ? :headless_chrome : :haedless_firefox example.metadata[:js] ? driven_by(js_driver) : driven_by(:rack_test) end end
でも思ったよりパフォーマンスは良くない。。。この辺は開発環境でarm対応してないImageを使っているからかも。
今まで開発環境でもcimg/ruby
を使ってたけど、これがarmアーキテクチャに対応してなかったため、エミュレーションが発生してたっぽい。
なのでarmに対応しているrubyイメージを使うようにした。
しかし上述の通りarmイメージではchromeが動かないため妥協してchromiumを使うようにした。
割と快適になった。
おわりに
M1 Mac、Dockerまわりとかだいぶハマるのかなと思ってましたが、意外とそこまではまらずに今のところは動いてる。