コロナ禍における大学研究室でのソフトウェア開発環境構築(macOS編)


本記事は東京学芸大学 櫨山研究室 Advent Calendar 2020の二日目の記事になります

はじめに

前回の記事ではWindowsにおける環境構築を扱いました,

今回の記事ではmacOSでの環境構築を取りあげます.
なお本記事のソースコードやドキュメントなどは以下のGitHubリポジトリから見ることができます.

概要

  • 研究室配属後に最初に行う環境構築を自動化したよmacOS編)
  • この記事の内容を使えば,あなたのmacの環境構築を自動化できます

macOSのパッケージ管理ソフト(Homebrew)

macOSのパッケージ管理ソフトはHomebrewが最も多く使われていると思います.

Homebrewでは以下のようなコマンドで必要なソフトウェアをインストールすることができます.

brew install インストールしたいソフトウェア名

このHombrewを使って環境構築の自動化をします.

brew tap

brew tapコマンドはhomebrewでソフトウェアを取得するリポジトリを追加することができる命令です.
brew tapでリポジトリを追加することで通常homebrewではインストールできないGUIのソフトウェアもコマンドからインストールが可能になります.

Homebrew Cask

Homebrew CaskはHomebrewによってGoogle chromeなどのGUIアプリケーションのインストールを可能にします.

どうやら標準でtapされているようです.

Brewfile

HomebrewではインストールするパッケージやtapするリポジトリなどをBrewfileというファイルで管理することができます.
今回,用意しているBrewfileはGitHubから確認することができます.

Brewfile
tap "homebrew/cask"
tap "AdoptOpenJDK/openjdk"
brew "git"
brew "mysql"
brew "mas"
cask "adoptopenjdk/openjdk/adoptopenjdk8"
cask "adoptopenjdk11"
cask "adoptopenjdk14"
cask "iterm2"
cask "visual-studio-code"
cask "google-chrome"
cask "docker"
cask "virtualbox"
cask "vagrant"
mas "Xcode", id: 497799835

Brewfileがあるディレクトリでbrew bundleコマンドを実行するだけでBrewfileに記述してあるパッケージをインストールすることが可能です.

terminal
brew bundle

これらを一括で実行するシェルスクリプトを書く

実はHomebrewを使うにはCommand line tools for Xcodeが必要になります.
なのでそのインストールから行うシェルスクリプトを書きます.

スクリプトの手順を図示すると以下のようになります.

スクリプトのコード

実際のスクリプトのコードはGitHubにおいてあります.
ここでは説明用に改変したコードを載せます.

#!/bin/bash

# Command Line Developper Toolsのインストール
if which xcode-select >/dev/null 2>&1; then
  echo "[1/4] xcode-select is already installed! skipping this step."
else
  echo "[1/4] installing xcode-select..."
  xcode-select --install
fi

# Homebrewのインストール
if which brew >/dev/null 2>&1; then
  echo "[2/4] homebrew is already installed! skipping this step."
else
  echo "[2/4] installing homebrew..."
  /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
fi

# GitHubからBrewfileをダウンロード (とりあえずHOMEディレクトリに配置する.)
echo "[3/4] download Brewfile..."
cd "$HOME" && curl -fsSL https://raw.githubusercontent.com/${Brewfileを配置しているGitHubリポジトリのBrewfileへのパス} > ./Brewfile

# 取得したBrewfileをもとにパッケージをインストール
echo "[4/4] installing package..."
cd "$HOME" && brew bundle

上記のコードではBrewfileをGitHubリポジトリからcurlで取得しています.
適宜,読み替えてください🙇‍♂️

スクリプトの実行方法

Homebrewのインストール手順に倣ってcurlでWeb上からコードを取得し実行します.
今回はGitHubで管理しているのでGitHub上からスクリプトのソースを取得してパイプで流します.

terminal
curl -sf https://raw.githubusercontent.com/${GitHubリポジトリにあるスクリプトファイルへのパス}| sh -s

curlはmacOSでは標準で使えるので1コマンドで環境を構築することができます.

[注意]
前回の記事でも書きましたが,単純な方法なので採用しています.
Web上のスクリプトコードには必ずしも安全である保証はありません.
安易に他人が作成したWeb上のスクリプトコードを実行しないようにしましょう.

おわりに

研究室では前回の記事と今回の記事の内容で遠隔で環境構築を実施しました.
スクリプトを用意する手間はありましたが比較的スムーズに環境構築を終えることができ無事にチームでのWebアプリケーション開発も終えることができました.

また環境構築の手順をソースコード化することができ保守性も向上したと感じております.