copr経由でインストールされたBazel 0.16.1とDNF経由でインストールされたccache 3.4.2を使用して、Fedora 28でC++アプリケーションを構築しようとしています。デフォルトの cc_binary および cc_library ルールを使用しています。bazel build コマンドを実行すると、ccache で次のエラーが発生します。
ccache: error: Failed to create temporary file for /home/mwalker/.ccache/tmp/time.stdout: Read-only file system
ビルドすると--verbose_failures --sandbox_debug
、ccache tmp ディレクトリ r/w をマウントしていないことがわかります。
では、bazel に ccache ディレクトリを r/w でマウントさせるにはどうすればよいですか、またはワークスペースの正しいキャッシュ ディレクトリが存在する場所を bazel を介して ccache に伝えるにはどうすればよいでしょうか?
Ubuntu 18.04 で同じコマンドを実行すると成功するため、ccache が何らかの形でサポートされていると思われます。
私の問題の一部は、ccache がそのコンパイラー・ドライバーを gcc としてインストールしたことのようです。例which gcc -> /usr/lib64/ccache/gcc
。Ubuntu では ccache を明示的に呼び出す必要があり、デフォルトのツールチェーンはそれを呼び出していません。