LoginSignup
0
2

More than 1 year has passed since last update.

開発環境構築手順書 2022 更新版

Last updated at Posted at 2022-08-26

macOS 環境構築

更新履歴

  • 2022/08/27: 2022年版からアップデート
    主な内容: HomebrewとDocker(有償回避)のインストール手法を刷新

概要

新規購入したApple silicon版のmacOS上で開発環境を整えるための手順書

前提

コマンドは特別な明記がない限り、一行ずつ実行していく。

手順

oh-my-zsh

  • 1. terminal.appを起動
  • 2. oh-my-zsh本体のインストール
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Homebrew

  • 1. terminal.appを起動
  • 2. HomeBrew本体のインストール
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile

eval "$(/opt/homebrew/bin/brew shellenv)"
  • 3. 「~/.Brewfile」として、下記内容を記入して保存する。
.Brewfile
tap "homebrew/bundle"
tap "homebrew/cask"
tap "homebrew/cask-versions"
tap "homebrew/core"
cask "iterm2"
cask "visual-studio-code"
cask "jetbrains-toolbox"
cask "alfred"
brew "vim"
brew "git"
brew "tig"
brew "zsh-syntax-highlighting"
brew "zsh-completions"
brew "zsh-autosuggestions"
brew "arp-scan"
brew "imagemagick"
brew "docker"
brew "docker-compose"
brew "lima"
  • 4. 下記コマンドを実行してインストール
brew bundle --global
  • 5. 設定をzshrcに保存
.zshrc
echo '# zsh-syntax-highlighting' >> ~/.zshrc
echo 'source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh' >> ~/.zshrc

echo '# zsh-completions' >> ~/.zshrc
echo 'if type brew &>/dev/null; then' >> ~/.zshrc
echo '  FPATH=$(brew --prefix)/share/zsh-completions:$FPATH' >> ~/.zshrc
echo '  autoload -Uz compinit' >> ~/.zshrc
echo '  compinit' >> ~/.zshrc
echo 'fi' >> ~/.zshrc

echo '# zsh-autosuggestions' >> ~/.zshrc
echo 'source /opt/homebrew/share/zsh-autosuggestions/zsh-autosuggestions.zsh' >> ~/.zshrc
  • 6.設定の再読み込みと下処理
source ~/.zshrc
rm -f ~/.zcompdump; compinit

Docker(有償回避)

  • 1. Dockerに必要なソフトウェアのインストール(brewfileで入れてなければ)
brew install lima docker docker-compose

Dockerテンプレート経由でお手軽インストール

  • 2. limaのDockerテンプレートをダウンロード
curl -o docker.yaml https://raw.githubusercontent.com/lima-vm/lima/master/examples/docker.yaml
  • 3. テンプレートを編集
# To run `docker` on the host (assumes docker-cli is installed):
# $ export DOCKER_HOST=$(limactl list docker --format 'unix://{{.Dir}}/sock/docker.sock')
# $ docker ...

# ===これを追記===
arch: "x86_64"
cpus: 4
memory: "4GiB"
disk: "10GiB"
# ==============
....

# writableをtrueにすると読み書きができる。
# デフォルトにも書いてある通り、「~」や「/」のみを指定してwritableをtrueにはしないこと。非常に危険。
mounts:
  - location: "~"
    writable: false
  - location: "/tmp/lima"
    writable: true
  - location: "~/work"
    writable: true
  - location: "~/private"
    writable: true
  • 4. 仮想環境を新規作成
limactl start docker.yaml
# Proceed with the current configuration を選択
  • 5.dockerの設定
    ※ 手順4の最後に出てくるものをコピペで実行。最後の行にあるdocker runは実行しない。
docker context create lima-docker --docker "host=unix:///Users/[username]/.lima/docker/sock/docker.sock"
docker context use lima-docker
  • 6. dockerの動作確認
docker version
# macOS側
# Client: Docker Engine - Community
# ....
#  OS/Arch:           darwin/arm64
# ...

# Lima側
# Server: Docker Engine - Community
#  Engine:
# ...
#   OS/Arch:          linux/amd64
# ...

defaultテンプレート経由のローレベル設定

  • 2. limaのテンプレートをダウンロード
curl -o default.yaml https://raw.githubusercontent.com/lima-vm/lima/master/examples/default.yaml
  • 3. テンプレートを編集
# ===================================================================== #
# BASIC CONFIGURATION
# ===================================================================== #

# Arch: "default", "x86_64", "aarch64".
# "default" corresponds to the host architecture.
arch: "null" # ← defaultをx86_64に書き換える

....

# writableをtrueにすると読み書きができる。
# デフォルトにも書いてある通り、「~」や「/」のみを指定してwritableをtrueにはしないこと。非常に危険。
mounts:
  - location: "~"
    writable: false
  - location: "/tmp/lima"
    writable: true
  - location: "~/work"
    writable: true
  - location: "~/private"
    writable: true
  • 4. 仮想環境を新規作成
limactl start default.yaml
# Proceed with the current configuration を選択
# INFO[0036] READY. Run `limactl shell ...まで待機
  • 5. 仮想環境が動いていることを確認し、インスタンス名を控えておく。

インスタンス名:

limactl list
# NAME       STATUS     SSH                ARCH      DIR
# default    Running    127.0.0.1:60022    x86_64    /Users/[username]/.lima/default
# インスタンス名は、 NAME列の名前
  • 6. Dockerホストの設定
echo  "export DOCKER_HOST='tcp://127.0.0.1:2375'" >> ~/.zshrc
source ~/.zshrc
  • 7. 仮想環境にDockerをインストール
curl -fsSL https://get.docker.com | limactl shell [インスタンス名]
  • 8. 仮想環境のユーザー名を控える

ユーザー名:

limactl shell [instance名] whoami
  • 9. dockerグループに追加
limactl shell [instance名] sudo gpasswd -a [ユーザー名] docker
  • 10. 仮想環境を再起動
limactl stop [instance名] ; sleep 5; limactl start [instance名]
  • 11. 仮想環境のDockerを確認
limactl shell [instance名] docker version
  • 12. dockerのdeamon.jsonを作成
limactl shell [instance名] sudo vim /etc/docker/daemon.json
  • 13. 下記を追記し、保存
{"hosts": ["tcp://127.0.0.1:2375", "unix:///var/run/docker.sock"]}
  • 14. dockerサービスのoverride.confを作成
limactl shell [instance名] sudo mkdir -p /etc/systemd/system/docker.service.d/
limactl shell [instance名] sudo vim /etc/systemd/system/docker.service.d/override.conf
  • 15. 下記を追記し、保存
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd
  • 16. dockerサービスを再起動
limactl shell [instance名] sudo systemctl daemon-reload
limactl shell [instance名] sudo systemctl restart docker.service
  • 17. dockerの動作確認
docker version
# macOS側
# Client: Docker Engine - Community
# ....
#  OS/Arch:           darwin/arm64
# ...

# Lima側
# Server: Docker Engine - Community
#  Engine:
# ...
#   OS/Arch:          linux/amd64
# ...

その他のDockerコマンド集

  • Opensearch(or Elasticsearchの為に設定変更
 limactl shell [instance名] sudo sysctl -w vm.max_map_count=262144
  • docker-composeバルスコマンド
docker-compose down --rmi all --volumes --remove-orphans

Docker-compose - LocalStack

  • docker-composeファイル

下記ファイルを作成後、このファイルがあるディレクトリで「docker-compose up」

version: '3'

services:
  localstack:
    image: localstack/localstack:latest
    ports:
      - "127.0.0.1:4566:4566"
      - "127.0.0.1:4510-4559:4510-4559"
      - "127.0.0.1:443:443"

  • localstackの動作確認

何かしらのAWSコマンドでエンドポイントをローカルホストにすればOK。
サービスによってポート番号が異なるので各自調べていただく。

aws s3 ls --endpoint-url=http://localhost:4566
  • localstackの状態を取得
curl -s http://localhost:4566/health | jq

nodebrew

  • 1. terminal.appを起動
  • 2. nodebrew本体のインストール
brew install nodebrew
mkdir -p ~/.nodebrew/src
echo '# Nodebrew' >> ~/.zshrc
echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.zshrc
  • 3. NodeJSの最新版を控える

NodeJS Ver:

nodebrew ls-remote
# example) v17.2.0
  • 4. NodeJSの最新版をインストール
nodebrew install [NodeJS Ver]
nodebrew use [NodeJS Ver]
  • 5. NodeJSのバージョン確認
node -v

SDKMAN

  • 1. terminal.appを起動
  • 2. SDKMAN本体のインストール
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

Java

  • 1. Amazon Correttoの最新版を控える

最新版のバージョン:

sdk list java | grep amzn
#example) 17.0.1.12.1-amzn
  • 2. Amazon Correttoの最新版をインストール
sdk install java [最新版のバージョン] 
# globalにするのかを聞かれたら Y を入力。
# 聞かれていない場合は、下記コマンドを実行
sdk default java [最新版のバージョン]
  • 3. Amazon Correttoのバージョンを確認
java -version

Sbt

  • 1. Sbtの最新版を控える

最新版のバージョン:

sdk list sbt
#example) 1.5.7
  • 2. Sbtの最新版をインストール
sdk install sbt [最新版のバージョン] 
# globalにするのかを聞かれたら Y を入力。
# 聞かれていない場合は、下記コマンドを実行
sdk default sbt [最新版のバージョン]
  • 3. Sbtのバージョンを確認
sbt about

Scala

  • 1. Scalaの最新版を控える
    最新版のバージョン:
sdk list scala
#example) 3.1.0
  • 2. Scalaの最新版をインストール
sdk install scala [最新版のバージョン] 
# globalにするのかを聞かれたら Y を入力。
# 聞かれていない場合は、下記コマンドを実行
sdk default scala [最新版のバージョン]
  • 3. Scalaのバージョンを確認
scala -version

Rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# 1) Proceed with installation (default)← これを選ぶ
# 2) Customize installation
# 3) Cancel installation

echo '# Rust' >> ~/.zshrc
echo 'source $HOME/.cargo/env' >> ~/.zshrc

Python

brew install pyenv

echo '# Python' >> ~/.zshrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

source ~/.zshrc

pyenv install -l

pyenv install [Pythonバージョン] # 3.10.6とか anacondaとか

pyenv global [Pythonバージョン]

python -V # バージョン確認

補足

ARP-SCAN

sudo arp-scan -I [ifconfigのインターフェイス] -l
# ex) sudo arp-scan -I en0 -l

システム設定

  • キー入力の連打を有効化させる
defaults write -g ApplePressAndHoldEnabled -bool false

limaの基本コマンド

limactl ls # lima vm 一覧

limactl start xxxx(or xxxxx.yml) vm 起動

limactl stop xxxx vm 停止

limactl delete xxxx 削除

ecrの認証情報の取得

aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin [accountID].dkr.ecr.ap-northeast-1.amazonaws.com

iOSバックアップ - NAS 間 シンボリックリンク

ln -s /Volumes/BackUps/Buckup /Users/${USERNAME}/Library/Application\ Support/MobileSync 

Terminal.appの背景を透明にする方法

  1. Terminal.appの環境設定→「プロファイル」タブを選択
  2. 「カラーとエフェクト」をクリック
  3. 出てきたウィンドウの「不透明度」を50~60%に、「ブラー」を0%にする
  4. Terminal.appを再起動

Apple Developerの証明リスト出力

security -v find-identity

参考文献

0
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2