たまにあるよね、クリーンインストールして環境構築し直すはめになること
…ありませんかね?
というわけでMacOSからクリーンインストールして、開発環境諸々再構築するはめになったので次に備えて備忘録として書いてます。
目次
1.MacOS再インストール
色々方法はありますが、私はUSBメモリにOSデータを書き込んでブータブルUSBメモリを作成して、そのUSBメモリから起動する形でインストーラを起動し、再インストールしています。
※詳細はこちら
macOS の起動可能なインストーラを作成する方法 - Apple
まず肝心のOSのデータをダウンロードします。
macOS Catalina にアップグレードする方法 - Apple
上記リンクの手順4「macOS Catalina をダウンロードする」からAppStoreを開いてCatalinaのインストーラディスクイメージをダウンロードします。
Mojave, HighSierraを使用したい場合は下記からダウンロードできます。
macOS Mojave にアップグレードする方法 - Apple
macOS High Sierra にアップグレードする方法 - Apple
Catalinaの場合と同じく手順4からAppStoreを開き、OSインストーラーのディスクイメージをダウンロードできます。
ダウンロードが完了したらUSBメモリに書き込みます。ただコピーするだけではブータブルメディアにはならないのでターミナルから作成します。
//Catalina
$ sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
//Mojave
$ sudo /Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
//High Sierra
$ sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
ここではUSBメモリの名前をMyVolume
としています。
もちろん任意に変更しても問題ありませんが、その場合はコマンド後半の--volume /Volumes/MyVolume
を--volume /Volumes/"USBメモリの名前"
としないと当然作成できません。
USBメモリへの書き込みが終了したらMacをシャットダウンします。
電源が切れたら目的のUSBメモリ以外の周辺機器は取り外して、optionキー
を押したまま電源ボタンを押してStartup Manager
を起動し、先ほど作成したインストーラー(USBメモリ)から起動します。
インストーラーが起動したらディスクユーティイリティを開いて、MacのSSDのパーティションを全て消去し、APFS形式で新しいパーティションを再作成します。
パーティションの再作成が完了したら、ディスクユーティイリティを閉じて、インストールを開始します。
インストール手順自体はインストーラーが指示を出してくれるのでそのまま従ってインストールしていきます。
インストールが完了したら自動的に再起動されます。ユーザー情報や iCloudログイン等が
またこのタイミングでTimeMachine
からの復元も可能です。その場合はこれ以降の操作は不要です。
※ブータブルメディアを作成せずに、再インストールする方法もあります。
これはAppleが公式サイトにまとめてくれているので詳細はそちらで。
※注意
英字キーボードの場合言語切替キーが存在しないため、ショートカットで切り替えることになる。
少し調べた範疇ではCatalinaではMojaveかそれ以前から言語切替のショートカットキーの組み合わせのデフォルト値が変更されたようで、これを以前に戻そうという記事をいくつか見かけた。
が、これはやらないほうが良さそう。
実際に変更してみたがデフォルトのキーペアの場合と比較して言語切替のスピードが遅い。
メニューバーの表示からは切り替わっていても実際には切り替わらないことが多々あった。
あるいは切り替えてから入力までに一瞬待たないと切り替わらないことも多々あった。
原因は不明だが、デフォルトのキーペアに戻したら同様の減少は発生しなくなったので理由がない限り少なくとも言語切替のショートカットキーペアは変更しないほうが良さそう。
2.Homebrewインストール
言わず知れたHombrewをインストールしていきます。
公式ドキュメントに従ってターミナルで以下のコマンドを実行します。もちろんインストール済みなら飛ばしても問題ありません。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew
コマンドが実行できれればインストール完了です。
$ brew -v
Homebrew/homebrew-core (git revision 279ca1; last commit 2020-09-10)
Homebrew/homebrew-cask (git revision 9c41b; last commit 2020-09-10)
3.CLIパッケージインストール
Homebrewもインストールできたので各パッケージをインストールしていきます。
複数のパッケージを同時にインストールできるので1行で実行します。
ひとまず今回はGit
, NodeJS
, Yarn
, PostgreSQL
, pyenv
をインストールします。
$ brew upgrade
$ brew install git node yarn postgresql pyenv
brew list
で各パッケージが確認できれば成功です。
$ brew list
autoconf icu4c openssl@1.1 postgresql yarn
gettext krb5 pcre2 pyenv
git node pkg-config readline
pyenv
を使ったpythonのインストールはここから。
4.GUIパッケージインストール
これまでGUIパッケージは手動で各インストーラーでインストールしていたのですが、今回環境構築をやり直している過程でbrew cask
でGUIパッケージもインストールできる事を思い出しました。
調べてみたら今回インストールしたGUIパッケージがなんと全てbrew cask
に対応していたことがわかりました。
今回はGUIパッケージは全部それぞれのインストーラーからインストールしてしまったのでそのままにしておきますが、次回以降のためにbrew
でインストールする手順を記録しておきます。
今回インストールするのは以下のパッケージです。
※ブラウザ
MozillaFireFox
GoogleChrome
※オンラインストレージ
GoogleBackup&Sync
※オフィスソフト
AdobeAcrobatReader
LibreOffice
※開発環境
VisualStudioCode
PostMan
VirtualBox
※セキュリティソフト
AvastSecuroty
※言語環境
Google日本語入力
DeepL
※システムユーティリティ
iStat-Menus
TheUnarchiver
※システムクリーナー
AppCleaner
CCleaner
OnyX
それではインストールしていきます。
$ brew cask install firefox google-chrome google-backup-and-sync adobe-acrobat-reader libreoffice visual-studio-code psotman virtualbox slack zoomus avast-security google-japanese-ime deepl istats-menus the-unarchiver app-cleaner ccleaner onyx spotify vlc
brew list --cask
でパッケージが確認できれば成功です
$ brew list --cask
5.npmパッケージインストール
グローバルでインストールするnpmパッケージをインストールします。
現時点でインストールしてあるのはtypescript
だけなので、インストールしておきます。
$ npm install -g typescript
必要に応じて追加していこう。
とは言ってもグローバルでインストールする項目はそんなに多くはならないと思うが。
あとはプロジェクト単位でのローカルインストールになるかな?
あとがき
brew
は使ってたけどbrew cask
は使ってなかった。そして今回少し調べたら自分が使ってる有名所のソフトは全部あったので、次回以降の環境再構築の際に試したみたいところ。
これで行けるならいちいちインストーラ起動しなくてもいいし、一括でパッケージ管理もできるからインストール/アップデート/アンインストールの管理の手間も削減できそう。
CLIパッケージだけでなく、これまで手動でインストールしていたGUIパッケージもbrew
コマンドで、つまりは今回まとめたようにパッケージのリストを作成しておけば1行のコードをターミナルにコピー・アンド・ペーストするだけでインストールできることになる、これは後々すごく楽になりそう。
brew
でインストールできていないパッケージはあるにはあるが、AppStoreでインストールだからログインしてワンクリックで済むからさして手間にはならない。
あとは必要になるとしたらファイルのコピーとOSや各パッケージの設定かな。
そのあたりもコマンドでできるやつは一括でやりたいところ。
コマンドで実行できるならシェルスクリプト書いておけば一括で実行できるので、合間見て記録しておこうかな。