Как избежать "Нет свободного места" в сборке Bazel? - PullRequest
0 голосов
/ 04 марта 2019

При выполнении длительной сборки Bazel на почти заполненном устройстве я сталкиваюсь с этой ошибкой:

ОШИБКА: Ошибка ввода-вывода при записи в журнал действий: не осталось места наdevice

Однако я не могу освободить место на устройстве, поэтому мне нужно каким-то образом манипулировать кешем и / или временным хранилищем.Я заметил, что кэш Bazel в ~/.cache/bazel/myproject/ может стать довольно большим, поэтому мне было интересно, могу ли я:

  • удалить некоторые файлы там после того, как я получу ошибку?
  • переместить этот кеш куда-нибудь еще?
  • вообще отключить кеш?

Руководство пользователя Bazel , похоже, указывает на то, что --[no]use_action_cache вроде бы сделает этот третий вариант(хотя я не знаю, насколько это было бы эффективно), но это замедлило бы.

Что касается временного хранилища, у меня действительно есть место с достаточным пространством, поэтому я просто назвал export TMPDIR=/path/to/morespace/.Так что, если бы я мог переместить кэш, это было бы, куда он идет.

1 Ответ

0 голосов
/ 04 марта 2019

Вы можете использовать опцию запуска --output_base, чтобы указать место, где есть больше доступного хранилища.Это скажет Bazel, куда записывать все свои выходные данные.

$ bazel --output_base=/path/to/more/space build ...

Чтобы не указывать это для каждой команды, добавьте ее в свой проект <project>/.bazelrc или пользователя ~/.bazelrc:

startup --output_base=/path/to/more/space
...