ccache无法读取只读文件系统

4

我正在一个Ubuntu机器上构建Android 10。源代码是自定义的,不是Google特定的。源代码是为预构建的clang硬编码以使用ccache。我已经安装了ccache,并将以下变量添加到bashrc中:

_CCACHE_EXEC=/usr/bin/ccache

_CCACHE_EXEC -M 50G

export USE_CCACHE=1

在构建期间,对~/.ccache运行chmod和chown命令产生了相同的结果,但实际的错误是:

ccache:错误:无法创建目录/home/brandonabandon/.ccache/tmp:只读文件系统。

我无法联系源代码的所有者。我尝试禁用ccache,但由于最近硬编码的ccache提交而导致后续错误。之前我可以正常构建,但已经卡了一周了。有任何想法吗?

3个回答

11

看起来您将ccache放在与源代码相同的分区上。soong沙盒机制不喜欢这样:( 您有两个选择:

  1. 开始使用另一个分区/驱动器来存储ccache
  2. 将当前的ccache挂载到另一个分区(/mnt 例如)

以下是第二个选项的步骤列表:

sudo mkdir /mnt/ccache
sudo mount --bind /home/<your_current_path>/ccache /mnt/ccache

需要的环境:

export USE_CCACHE=1
export CCACHE_EXEC=/usr/bin/ccache
export CCACHE_DIR=/mnt/ccache
ccache -M 100G -F 0

路径应该是~/.ccache而不是(ccache)。使用正确路径的bash源以及您的答案进行排序即可解决问题。谢谢伙计。 - Brandon Shawhan
谢谢!那个有效。我的路径与Vladim的类似。 - lallolu
1
此外:如果您想让它在重新启动后保持持久,请将以下内容添加到 /etc/fstab 中:/home/<your_current_path>/ccache /mnt/ccache none defaults,bind,users,noauto 0 0,并将其添加到登录时自动挂载到 ~/.profile 中:mount /mnt/ccache - dtrunk

0

不是 OP 寻找的内容,但是:如果有人在这里遇到类似的 ccache 错误信息 问题,使用 arch/manjaro

sudo pamac build <thing>

然后改为
pamac build <thing>

然后在提示时输入密码。

0
改进这里的被接受答案,因为我第二次遇到了这个问题: PS:我正在以root身份运行
mkdir /mnt/ccache
mount --bind ~/.ccache /mnt/ccache

而且环境变量与上述相同:

export USE_CCACHE=1
export CCACHE_EXEC=/usr/bin/ccache
export CCACHE_DIR=/mnt/ccache
ccache -M 100G -F 0

另外,我建议使用以下命令将它们放置在.profile文件中:
echo -e "\nexport USE_CCACHE=1\nexport CCACHE_EXEC=/usr/bin/ccache\nexport CCACHE_DIR=/mnt/ccache\nccache -M 100G -F 0" >> ~/.profile

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接