はじめに
M2のMatsunoMです。
知能情報コース(旧:工学部知能情報コース)では、入学時にMacBook Pro/Airの購入が推奨されています。学部生4年間、さらに修士課程2年間と1度購入したPCは、何ごとも無ければ4~6年間使用することになります。
しかし、4年間の間に何回ものOSの更新があったり、PCが不調に陥ることも少なくありません。そのためバックアップを残した上で、クリーンインストールをすることになります。自分の場合だと、半年に1度くらいクリーンインストールを行なっています。
クリーンインストールを行う場合、バックアップからの回復と初期化のどちらかを選ぶことになります。ただ、動作を悪くしていた原因(キャッシュ)などを無くすことを考えると、初期化をしPCを再構築し、必要なファイルはバックアップから取り出すことになると思います。
ここでは、初期化したMacをいかに効率良く再構築するかという話です。
事前準備
まず、クリーンインストールを開始する前に、PCのバックアップや設定ファイルなどが新しい環境でもすぐに使えるようにする必要があります。
PCのデータ全体をHDDやSSDにバックアップします。MacのTime Machineにお任せしましょう。
設定ファイル(vimrcやzshrcなど)は、自らのgithubやDropboxのアカウントにアップロードしてあると、クリーンインストール時やファイルの更新が容易です。
またmackupというアプリでは、指定した設定ファイルを、クラウドストレージのフォルダに移動させ、元々ファイルがあった場所にシンボリックリンクを置いてくれるので便利です。
Homebrewでインストールできます。クリーンインストール前に設定ファイルをバックアップしておきましょう。
mackup backup
アプリのインストール
Macでアプリをインストールする際、多くの学生はHomebrewを使用していると思います。Homebrew自体はbashスクリプトでインストールできます。
# install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)
また、Homebrewでは自分がインストールしているアプリを書き出すことができます。その書き出したファイルのことをBrewfileと言います。
HomebrewではオープンソースのCUIアプリ以外にも、Google-chromeなどのオープンソースでないGUIアプリもcaskを指定することでインストールできます。
また Mac App Store でダウンロードするアプリに関してもmasを指定すればインストールできます。
# directory for apps from cask
cask_args appdir: "/Applications"
# formula
brew "git"
brew "ghq"
brew "vim"
brew "tree"
brew "wget"
brew "peco"
brew "tmux"
brew "mas"
brew "mackup"
# Applications
## Reader
cask "adobe-acrobat-reader"
## Browser
cask "firefox"
cask "google-chrome"
## Video Meeting Tools
cask "zoomus"
cask "skype"
## SNS
cask "mattermost"
## Development Environments
cask "visual-studio-code"
cask "iterm2"
cask "docker"
## Clouds Sync
cask "google-backup-and-sync"
cask "dropbox"
## Support Tools
cask "alfred"
cask "clipy"
cask "Bitwarden"
cask "station"
cask "cheatsheet"
## Memos
cask "notion"
# Mac App Store
mas "LINE", id: 539883307
mas "Slack", id: 803453959
mas "Spark", id: 1176895641
mas "Pocket", id: 568494494
mas "Magnet", id: 441258766
mas "Simplenote", id: 692867256
mas "Microsoft Word", id: 462054704
mas "Microsoft Excel", id: 462058435
mas "Microsoft PowerPoint", id: 462062816
作成したBrewfileを元に一括でアプリケーションのインストールを指示します。ただし Mac App Store のアプリに関しては、事前にMac App Store にログインの必要があります。
# install CUI & GUI apps
brew bundle --file Brewfile
設定ファイルのリストア
クラウドストレージにバックアップしていた設定ファイルを元に適切な場所にファイルのシンボリックリンクを貼り、自らの設定を使用可能にします。
mackup restore
言語環境
VSCodeをエディターとして使用している場合は、MSアカウントまたはGithubアカウントでエディター環境(拡張機能など)を同期できます。
また、私はMacのパスを散らかしたくないという理由から、VSCodeとDockerを使用しています。研究ではPython3をメインに利用しているため、必要となるライブラリやモジュールをpipやcondaでインストールした自作のイメージからコンテナを起動して使っています。コンテナの良いところはすぐに他のPCで同じ環境を作成できることです。基本的にはWindows・Mac・Linux問わないので、研究室の処理に強いサーバーにすぐに同じ環境を構築できます。
たとえば、自然言語処理のためのPython環境を作成する場合のDockerfileは以下のようになります。VSCodeで作成したコンテナにアタッチ(接続)して使用します。
# ベースイメージ名:タグ名
FROM continuumio/anaconda3:2020.02
# ロケール環境変数の設定
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
# timezone setting
ENV TZ Asia/Tokyo
RUN apt-get update \
&& apt-get install -y tzdata \
&& rm -rf /var/lib/apt/lists/* \
&& echo "${TZ}" > /etc/timezone \
&& rm /etc/localtime \
&& ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
&& dpkg-reconfigure -f noninteractive tzdata
# zshのインストールと環境整備用パッケージのインストール
RUN apt-get update \
&& apt-get install -y zsh vim sed git man apt-utils
# 基本的なパッケージをインストール
RUN apt-get update && \
apt-get install -y --no-install-recommends \
software-properties-common \
build-essential \
curl \
wget \
less \
tree \
rsync \
zip \
unzip && \
apt-get clean
# 日本語入力に対応
RUN apt-get update \
&& apt-get install -y locales \
&& locale-gen ja_JP.UTF-8 \
&& echo "# 日本語入力に対応" >> ~/.zshrc \
&& echo "export LANG=ja_JP.UTF-8" >> ~/.zshrc
# pipをアップグレードし必要なパッケージをインストール
RUN pip install --upgrade pip && \
pip install janome && \
pip install transformers && \
pip install jsonlines
# MeCabのインストール
RUN git clone https://github.com/taku910/mecab && \
cd mecab/mecab && \
./configure --enable-utf8-only && \
make && \
make check && \
make install && \
pip install --no-cache-dir mecab-python3 && \
ldconfig && \
cd ../mecab-ipadic && \
./configure --with-charset=utf8 && \
make && \
make install
# データ解析に必要なパッケージのインストール
RUN conda install beautifulsoup4 && \
conda install tensorflow h5py && \
conda install -c conda-forge tensorboard && \
conda install -c anaconda gensim
最後に
PCを使いやすいように設定することは非常に重要です。しかし、環境構築より実作業の方が重要なのは間違いありません。毎回、1から模索するのではなく、これまでの自分を頼りにできる限り早急に復帰できるのが望ましいと思います。
準備ができていれば、少しでもPCの調子が悪くなったら、クリーンインストールという手段を手軽に試すことができます。この記事が誰かの参考になれば嬉しいです。