yn2011's blog

技術メモ

エンジニアが業務用 mac の ディスク空き容量を 100GB 増やすためにやったこと

気づいたら業務用 mac のディスク容量の空きが 10GB ぐらいしかなくて困ったので色々やって 100GB 空けたという話。「mac ディスク容量」みたいにググってもゴミ箱を空にするとか全然参考にならないことしか出てこなかったのでこの記事を書いている。

業務用 mac でやってること

業務では Web のフロントエンドと、React Native を利用したアプリ(iOS / Android 両方)開発をやっている。

特に以下を使って開発している人には参考になるかもしれない。

現状を把握する

mac OS 標準のディスク管理ツール的なものでも大まかには把握できるが、キャッシュ系はすべて「その他」と「書類」に分類されるのであんまり約に立たない。 アプリケーションやダウンロード、ゴミ箱などを整理したのに全然容量が空かず、「その他」が100GB使用しているのは何??となりがち。更に噂によると「書類」と「その他」が重複カウントされている場合もあるらしく、これではまったく意味が分からない。

というわけでフリーのディスク分析ツールを使う。自分は、OmniDiskSweeper というやつを使ってみた。

www.omnigroup.com

正直この手のツールはマルウェアっぽいのも多い気がしていて、あんまりインストールしたくはなかった。root から地味に du して探索する手もあり、実際最初はやってみてたが、途中でしんどくて止めた。普通に visualize 系のツールを使ったほうが楽だと思う。

以下、OmniDiskSweeper でサイズが大きなディレクトリを見つけて手当たり次第に対応していった作業ログ。

Docker

Docker for Mac が Docker.raw という 30GB ぐらいの謎ファイルを持っていた。

以下のサイトで紹介されている通り、Docker for Mac の設定でディスク使用量を最小に変更する。

apple.stackexchange.com

それから $ docker system prune -a で不要なイメージ等を全部消して 1/3 以下ぐらいに減らせた。

XCode

無駄に仮想端末を作っていたので削除した。

$ xcrun simctl list devices で一覧から削除したい端末の UDID を特定して $ xcrun simctl delete 26B***

それとなんかよく分からないキャッシュがあったのでそれも全部 rm で消した。

~/Library/Developer/CoreSimulator/Caches/dyld/20G95
❯ ls
com.apple.CoreSimulator.SimRuntime.iOS-15-0.19A339
com.apple.CoreSimulator.SimRuntime.tvOS-15-0.19J344
com.apple.CoreSimulator.SimRuntime.watchOS-8-0.19R345

Android Studio

こちらも使ってない仮想端末と SDK を削除した。 仮想端末は普通に Android Studio から削除して、SDK はよく分からなかったので rm した。 ~/Library/Android/sdk/system-images 配下にあるはず。

yarn

.yarn-cache が巨大だったので yarn cache clean で全部消した。 yarn はそれなりに使うので別に消さなくても良かった可能性はある。

参考:https://stackoverflow.com/questions/39991508/how-to-clear-cache-in-yarn

npm

yarn と同様に $ npm cache clean --force

$ npm cache verify はキャッシュを最適化してくれるらしいが、あんまり変わらなかったので全消しした。

参考:https://stackoverflow.com/questions/55157862/npm-cache-clean-v-s-npm-cache-verify

Cypress

Cypress もなぜか巨大なキャッシュを Cypress のバージョンごとに持っていた。 $ cypress cache prune で削除できるらしいが、自分はディレクトリ毎 rm した気がする。

参考:https://docs.cypress.io/guides/guides/command-line#cypress-cache-command

gradle

.gradle/caches を rm

クローンしたリポジトリ

何気に1リポジトリで 1GB ぐらい消費しているものがあったりした。昔のプロジェクトで時々参照はするから削除はしたくないけどローカルで起動することは少ないなーみたいなやつは node_moduels だけでも削除しておくとディスク容量を大きく削減できる。

まとめ

大体以上の作業で 100GB 程度のディスク空き容量を確保できた。思ったよりキャッシュや不要な仮想端末等が多かった。そもそも業務用 mac のストレージ上限が 250GB なのは心許ないが、その制約がディスクの使い方を見直すきっかけになり、この記事を書くこともできたので良かったと思う(ポジティブ)