LoginSignup
0
2

開発環境構築手順書 2024

Last updated at Posted at 2024-03-28

macOS 環境構築

更新履歴

  • 2024/03/28 macOS Ventura 14.4.1 M2 Proの動作確認を実施

概要

新規購入したApple silicon版のmacOS上で開発環境を整えるための手順書
dotfilesによる自動化手法は認識していますが、アンコントローラブルはなるべく避けたいため、意図的に手順書としています。

事前準備

  • 1. macOSの初回セットアップを行う
  • 2. ファイアーウォールが有効にする
  • 3. FileVaultを有効にする
  • 4. セキュリティソフトをインストールする

前提

コマンドは特別な明記がない限り、一行ずつ実行していく。
「{...} >> ~/.zshrc」のような括弧で囲まれたブロックコマンドの場合は、全てコピーして実行してください。

手順

Jetbrains社製ソフトウェアのインストール

XCode Command Line Tool

  • 1. terminal.appを起動
  • 2. XCode Command Line Tool
xcode-select --install
  • 3. ライセンスに同意
sudo xcodebuild -license

Zshフレームワークのインストール

ZInit

  • 1. terminal.appを起動
  • 2. ZInit本体のインストール
bash -c "$(curl --fail --show-error --silent --location https://raw.githubusercontent.com/zdharma-continuum/zinit/HEAD/scripts/install.sh)"
  • 3. ZInitプラグインのインストール
  {
    echo "\n\n# Zinit Plugin"
    echo "zinit light zsh-users/zsh-syntax-highlighting"
    echo "zinit light zsh-users/zsh-history-substring-search # Need to write after highlighting"
    echo "zinit light zsh-users/zsh-autosuggestions"
    echo "zinit light zsh-users/zsh-completions"
    echo "zinit light zdharma-continuum/history-search-multi-word"
  } >> ~/.zshrc
  • 4. Zshターミナルテーマのインストール
  {
    echo "\n# Terminal Theme"
    echo "## Prune (https://github.com/sindresorhus/pure)"
    echo "zinit ice compile'(pure|async).zsh' pick'async.zsh' src'pure.zsh'"
    echo "zinit light sindresorhus/pure"
    echo "zstyle :prompt:pure:path color cyan"
    echo "zstyle :prompt:pure:git:branch color yellow"
    echo "zstyle :prompt:pure:virtualenv color cyan"
    echo "PURE_CMD_MAX_EXEC_TIME=180"
  } >> ~/.zshrc
  • 5. Zshスタイル設定
  {
    echo "\n# Zsh Style"
    echo "zstyle ':completion:*' menu yes select"
    echo "zstyle ':completion:*' file-list all"
  } >> ~/.zshrc
  • 6. エイリアスの設定(任意)
  {
    echo "\n# Alias"
    echo "alias c='clear'"
  } >> ~/.zshrc
  • 7. ~/.zshrcの読み込み
    どのパターンでも可能
# パターン1. zshを呼び出す
zsh

# パターン2. sourceで読み込む
source ~/.zshrc

# パターン3. ターミナルを再起動か新規ウィンドウを表示

Homebrew

  • 1. terminal.appを起動
  • 2. Homebrew本体のインストール
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
output
# パスワードの入力
# ==> Checking for `sudo` access (which may request your password)...
# Password:

# 文字通りEnterキーを押下
# Press RETURN/ENTER to continue or any other key to abort:
  • 3. Homebrewの設定
  {
    echo "\n# Homebrew"
    echo "# Set PATH, MANPATH, etc., for Homebrew."
    echo "eval \"\$(/opt/homebrew/bin/brew shellenv)\""
  } >> ~/.zprofile
  • 4. Homebrewの読み込み
eval "$(/opt/homebrew/bin/brew shellenv)"
  • 5. Homebrewの動作確認
brew --version
  • 6. 「~/.Brewfile」として、下記内容を記入して保存する。
    microsoft-edgeのインストール時にPasswordが要求されます。
長くなったので折りたたんでいます。
.Brewfile
# 前提環境
# - XCode CLI Toolがインストール済みである事
# - MacAppStoreで予めログインしている事
# - MacAppStoreで予め購入済みである事

###################
# 公式リポジトリ一覧 #
###################

tap "homebrew/bundle"
tap "homebrew/cask"
tap "homebrew/cask-versions"
tap "homebrew/core"

##########################
# Normal Depens Binaries #
##########################

####################
# 第0階層 (依存なし) #
####################

brew "ca-certificates"
brew "cmake"
brew "gdbm"
brew "gettext"
brew "gmp"
brew "go"
brew "lua"
brew "lz4"
brew "m4"
brew "mandoc"
brew "mas"
brew "mpdecimal"
brew "nodebrew"
brew "pcre2"
brew "pkg-config"
brew "readline"
brew "texinfo"
brew "xz"
brew "zlib"

########################
# 第1階層 (第0階層に依存) #
########################

brew "autoconf" # M4
brew "docker-compose" # Go
brew "git" # GetText, Pcre2
brew "go-md2man" # Go
brew "isl" # Gmp
brew "libcbor" # Cmake
brew "libtool" # M4
brew "mpfr" # Gmp, TexInfo
brew "ncurses" # Pkg-Config
brew "openssl@3" # Ca-Certificates
brew "sqlite" # ReadLine

##########################
# 第2階層 (第0~1階層に依存) #
##########################

brew "automake" # AutoConf
brew "berkeley-db" # OpenSSL
brew "docker" # Go, Go-MD2Man
brew "libfido2" # Cmake, LibCbor, ManDoc, OpenSSL, Pkg-Config
brew "libmpc" # Gmp, Mpfr
brew "libssh2" # OpenSSL
brew "pyenv" # AutoConf, OpenSSL, Pkg-Config, ReadLine
brew "tig" # NCurses, ReadLine
brew "zstd" # Cmake, Lz4, Xz

##########################
# 第3階層 (第0~2階層に依存) #
##########################

brew "gcc" # Gmp, Isl, Mpfr, LibMpc, Zstd
brew "libevent" # AutoConf, AutoMake, LibTool, OpenSSL, Pkg-Config
brew "libyaml" # AutoConf, AutoMake, LibTool
brew "oniguruma" # AutoConf, AutoMake, LibTool
brew "perl" # Berkeley-DB, Gdbm
brew "ruby-build" # AutoConf, AutoMake, LibTool

##########################
# 第4階層 (第0~3階層に依存) #
##########################

brew "jq" # Oniguruma
brew "mysql-client" # Cmake, LibEvent, LibFido2, OpenSSL, Pkg-Config, ZLib, Zstd 
brew "rbenv" # Ruby-Build
brew "ruby" # LibYAML, OpenSSL, Pkg-Config, ReadLine

##########################
# Python Depens Binaries #
##########################

#########################################
# 第0階層 (Normal Depens Binaries に依存) #
#########################################

brew "python@3.12" # MpDecimal, OpenSSL, Pkg-Config, SqLite, Xz

##################################################
# 第1階層 (第0階層 + Normal Depens Binaries に依存) #
##################################################

brew "docutils" # Python@3.12
brew "ninja" # Python@3.12
brew "six" # Python@3.12

####################################################
# 第2階層 (第0~1階層 + Normal Depens Binaries に依存) #
####################################################

brew "aws-sso-util" # Python@3.12, Six
brew "rust" # libgit2, libssh2, llvm, openssl@3, pkg-config

####################################################
# 第3階層 (第0~2階層 + Normal Depens Binaries に依存) #
####################################################

brew "awscli" # Cmake, DocUtils, Python@3.12, Rust, Six

####################################################
# 第4階層 (第0~3階層 + Normal Depens Binaries に依存) #
####################################################

brew "vim" # GetText, Lua, NCurses, Perl, Python@3.12, Ruby

#############
# Cask 一覧 #
############

cask "alfred"
cask "deepl"
cask "drawio"
cask "firefox-developer-edition", args: { language: "ja" }
cask "google-chrome-dev"
cask "iterm2"
cask "microsoft-edge"
cask "postman"
cask "rancher"
cask "the-unarchiver"
cask "visual-studio-code"

#####################
# Mac App Store 一覧 #
#####################

mas "Microsoft To Do", id: 1274495053
  • 7. brew bundleを実行してインストール
brew bundle --global
  • 8. Homebrewのキャッシュ削除
brew cleanup --prune=all
  • 9. nodebrewのディレクトリ作成
nodebrew setup_dirs
  • 10. zshrcへ追加
  {
    echo "\n# Nodebrew"
    echo "export PATH=\$HOME/.nodebrew/current/bin:\$PATH"
    echo "\n# Pyenv"
    echo "export PYENV_ROOT=\"$HOME/.pyenv\""
    echo "eval \"\$(pyenv init --path)\""
    echo "eval \"\$(pyenv init -)\""
    echo "\n# Rbenv"
    echo "eval \"\$(rbenv init - zsh)\""
    echo "\n# Mysql Client"
    echo "export PATH=\"/opt/homebrew/opt/mysql-client/bin:\$PATH\""
  } >> ~/.zshrc
  • 11. 補完機能の設定
sed -i '' -e $'1s/^/autoload -Uz compinit \\&\\& compinit\\\n/' ~/.zshrc
  • 12. ~/.zshrcの読み込み
    どのパターンでも可能
# パターン1. zshを呼び出す
zsh

# パターン2. sourceで読み込む
source ~/.zshrc

# パターン3. ターミナルを再起動か新規ウィンドウを表示

nodebrew

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

NodeJS Ver:

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

pyenv

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

Python Ver:

pyenv install -l
  • 2. Pythonの最新版をインストール
pyenv install [Pythonバージョン]
pyenv global [Pythonバージョン]
  • 3. Pythonのバージョンを確認
python -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

Docker

Lima Docker

2023年版の手順書を参考にしてください。筆者はRancher Desktopに移行しました

Rancher Desktop

  • 1. rancherをインストール(手順書冒頭のBrewfileでcaskに記載済み)
  • 2. Rancher Desktopを起動
  • 3. Dockerで動作確認
docker version
# macOS側
# Client: Docker Engine - Community
# ....
#  OS/Arch:           darwin/arm64
# ...

# Rancher Desktop(裏はLima+QEMU)側
# 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

補足

ARP-SCAN

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

システム設定

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

limaの基本コマンド

2023年版の手順書を参考にしてください。筆者はRancher Desktopに移行しました

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
0

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