Bazel,如何在 Centos6 上跳过“损坏安装”

Mar*_*app 2 bazel

我正在尝试在 CentOs6 上使用 EasyBuild 编译 tensorflow,但 Bazel 捕获了错误的 binutils 目录,不幸的是,这是一个硬编码的目录,以错误的汇编程序结束。

如果我尝试为链接器 bazel 修补硬编码的“-B/usr/bin”,稍后会告诉我下面的错误......

"find %(builddir)s/ -type f | grep \"cpp/CROSSTOOL\" | xargs -n 1 sed -i \"s|-B/usr/bin/|-B$EBROOTBINUTILS|\"

错误:损坏的安装:文件 _embedded_binaries/embedded_tools/tools/cpp/CROSSTOOL' 已修改。请删除“安装/c3fbdea9fb934f1ff0d8172c25d0dab2”并重试。(在easybuild/tools/run.py:469 在 parse_cmd_output 中)

我花了一些时间来看看是否有办法跳过那些愚蠢的校验和测试,或者重新计算校验和,但这对用户来说真的不透明。

任何想法如何解决?

Lás*_*zló 5

是的,将文件的 mtime 设置为未来 10 年:

touch -m -t 202712120101 path/to/file
Run Code Online (Sandbox Code Playgroud)

编辑:Bazel 检查安装文件的 mtimes 的原因是为了避免对其进行意外更改。如果您知道自己在做什么,即故意修补 CROSSTOOL 文件,那么这就是绕过检查的方法。

  • 这让我解决了这个问题,但我必须将时间更新为从今天开始的 10 年后(因为这是旧帖子),例如 202901010101。感谢您的信息! (2认同)