Куда на самом деле уходит диск разработчика
Четыре главных накопителя редко удивляют того, кто хоть раз посмотрел: пакетные кэши растут без потолка, потому что таково умолчание; node_modules дублирует дерево зависимостей в каждом проекте; Docker хранит каждый слой, который когда-либо скачал или собрал; WSL2 держит всю файловую систему Linux в виртуальном диске, который растёт по требованию и сам никогда не уменьшается. Добавьте индексы сред разработки, артефакты сборки и три версии SDK рядом — и двухлетняя машина спокойно везёт десятки гигабайтов доказуемо мёртвого груза. Ничего загадочного в этом нет: мусор просто размазан по дюжине каталогов, куда вы никогда не заглядываете.
- npm: %LOCALAPPDATA%\npm-cache — полные копии каждой версии каждого пакета, который вы когда-либо ставили
- pip: %LOCALAPPDATA%\pip\cache — колеси на всё подряд, плюс ~/.cache/pip внутри каждого дистрибутива WSL
- Docker Desktop: висячие образы, остановленные контейнеры, кэш сборки и анонимные тома — docker system df покажет итог, docker system prune заберёт его
- WSL2: файл дистрибутива ext4.vhdx растёт с каждой сборкой и не отдаёт место обратно без принудительного сжатия
- Проекты: node_modules в брошенном репозитории весит от сотен мегабайтов до нескольких гигабайтов — ценность в lock-файле, папка пересобирается
- Среды разработки: кэши и индексы JetBrains, плюс папки target/, build/, dist/, obj/, рассыпанные по всем чекаутам
Квартальный проход, в правильном порядке
Сначала измерьте, чтобы час ушёл туда, где масса: treemap-утилита по пользовательскому профилю, docker system df по контейнерной части, wsl --list --verbose по дистрибутивам. Дальше двигайтесь от безопасного к рискованному: кэши пересобираются по требованию, так что чистите их смело — npm cache clean --force, pip cache purge и их аналоги в Gradle и cargo; следующими идут брошенные проекты — удаляйте папки зависимостей, lock-файлы оставляйте, и когда репозиторий проснётся, npm ci или pip install -r пересоберёт всё за минуты. После — Docker: сносите висячие образы и кэш сборки, помеченные образы, которые реально запускаете, оставляйте. Последним — виртуальный диск WSL2, потому что удаления внутри дистрибутива не сжимают файл на стороне Windows: выполните wsl --shutdown, затем сожмите vhdx — или экспортируйте и заново импортируйте дистрибутив, если он разросся по-настоящему чудовищно.
Привычки, из-за которых диск не растёт
Гигиена как привычка дешевле гигиены как спасательной операции. Держите инструменты внутри проектов, а не в глобальных установках; пусть образы тянет CI, а не локальный накопичуватель; запускайте docker system prune ежемесячно, пока зоопарк слоёв не оброс памятью. Многогигабайтовые датасеты вынесите на второй диск и прилинкуйте — системному диску достанется только то, что пересоздаётся. И считайте почти заполненный C: инцидентом сборки, а не косметикой: npm, Docker и компилятор начинают падать самыми изобретательными способами, когда диск, на котором они работают, заполняется под завязку.
Вопросы и ответы
Можно ли удалять кэши npm и pip?
Да — кэши для того и существуют, чтобы пересобираться. npm cache clean --force и pip cache purge освобождают место, а следующая установка просто скачает нужное заново.
Как уменьшить виртуальный диск WSL2?
Сначала удалите мусор внутри дистрибутива, затем выполните wsl --shutdown и сожмите vhdx через DiskPart или Optimize-VHD. Для по-настоящему разросшегося дистрибутива — экспорт и повторный импорт: свежий файл содержит только живые данные.
Понятно до покупки: что входит в лицензию
Разовый 30-минутный триал даёт доступ к базовым инструментам. Возможности с меткой PRO остаются закрыты до активации платной лицензии.
Читайте также
Написать нам: [email protected]