【エンジニア用】Macのストレージが足りなくなった時にやること
最近、ストレージ不足でOSアップデートができなくなりました。
備忘録も兼ねてMacのストレージが足りなくなった時にやることを記事にします。
一般的な解消方法
この章は基本的なことしか書いていないため読み飛ばしても構いません。
ストレージの状況を確認する
まず、ストレージの使用状況を確認しましょう。以下の手順で確認できます。
- 「システム設定」を開く
- 「一般」を選択
- 「ストレージ」タブをクリック
ここで、どの種類のファイルがどれだけの容量を占めているかを確認できます。
現在の状態をメモしておくと、どの程度効果があったのかわかりやすいです。
不要なファイルやアプリを削除する
- ダウンロードファイル
- 不要なアプリケーション
- 不要な画像・動画ファイル
- ゴミ箱フォルダ
容量の大きい画像や動画ファイルなどを消したくない場合はクラウドに移動することをおすすめします。
エンジニア用の解消方法
brew
brewの古いバージョンのキャッシュを削除します。
brew cleanup
-s
オプションをつけると最新のキャッシュも削除します。
brew cleanup -s
Docker
Dockerの未使用データ(コンテナ、ネットワーク、イメージ、ボリューム)を削除します。
docker system prune -a --volumes
Go
Goのキャッシュを削除します。
go clean -cache
go clean -modcache
npm
npmのキャッシュフォルダーからデータを削除します。
npm cache clean --force
yarn
yarnでインストールしたパッケージキャッシュを削除します。
yarn cache clean
Git
リポジトリ内の不要なファイルをクリーンアップし、ローカルリポジトリを最適化します。
正直これは数MBしか効果が無いので、ストレージ容量を大幅に改善するというよりは特定のリポジトリでGit操作が重くなった際に使います。
git gc
Xcode
Xcodeのキャッシュを削除します。
rm -rf ~/Library/Developer/Xcode/DerivedData/*
xcrun simctl delete unavailable
ライブラリ配下の不要なものを削除
まず、以下のコマンドでライブラリの容量が大きいディレクトリを確認します。
sudo du -sh ~/Library/* | sort -hr | head
私がよく消すディレクトリを紹介します。
Caches
アプリのキャッシュファイルが入っています。
以下のコマンドで容量の大きいディレクトリを確認します。
du -sh ~/Library/Caches/* | sort -hr
もし全て消す場合は以下を実行してください。ただしアプリによっては消してはいけないファイルもあるはずなので個人の責任で行ってください。
sudo rm -rf ~/Library/Caches
Logs
各アプリやシステムが動作した履歴が保存されています。
以下のコマンドで容量の大きいディレクトリを確認します。
du -sh ~/Library/Logs/* | sort -hr
もし全て消す場合は以下を実行してください。ただしアプリによっては消してはいけないファイルもあるはずなので個人の責任で行ってください。
sudo rm -rf ~/Library/Logs
Containers 配下
サンドボックス化されたアプリ(主にApp Storeアプリや一部のサードパーティアプリ)が内部で使用しているデータや設定が入っています。
Containersは大容量になりがちで、その原因として使っていないアプリのデータが残っていることもあります。
もう使わないアプリをアンインストールしてもディレクトリが残っているというケースであれば、そのディレクトリを消してください。
以下のコマンドで容量の大きいディレクトリを確認します。
du -sh ~/Library/Containers/* | sort -hr
Application Support 配下
多くのアプリが設定ファイルや追加データなどを保存する場所です。
アプリによっては大量のデータが格納されています(XcodeやAdobe系などが特に大きくなりがち)。
以下のコマンドで容量の大きいディレクトリを確認します。
du -sh ~/Library/Application\ Support/* | sort -hr
セーフモードで起動
Macをセーフモードで起動すると容量が増えることもあるそうです。
Macを再起動と同時に「shift」キーを押し続けるとセーフモードで起動ができます。
ちなみに私の場合だと、あまり効果がありませんでした。
Discussion