从源代码构建 bazel - 失败

Building bazel from source - Getting Failed

我的实验objective是在Jetson TK1 arm based embedded board上构建tensorflow。由于官方版本未提供用于 arm 架构的预构建 tensorflow,因此我被迫选择从源代码构建它。

要构建 tensorflow,我们需要 Bazel,它也应该从源代码构建。现在我卡在这里了,根本无法构建 bazel。

我参考了各种博客和 github 项目,并尝试按照每个人都说对他们有用的说明进行操作。

1) Tensorflow on Raspberry-pi

2) Jetson Hacks building Tensorflow from source

3) Official Documentation

遵循的步骤:

$ sudo apt-get install build-essential openjdk-8-jdk python zip

$ wget https://github.com/bazelbuild/bazel/releases/download/0.4.5/bazel-0.4.5-dist.zip

$ unzip -d bazel bazel-0.4.5-dist.zip

$ cd bazel

$ sudo ./compile.sh

错误日志:

ERROR: /build/bazel/src/main/protobuf/BUILD:25:2: Java compilation in rule '//src/main/protobuf:extra_actions_base_java_proto' failed: Worker process sent response with exit code: 1.
java.lang.InternalError: Cannot find requested resource bundle for locale en_US
    at com.sun.tools.javac.util.JavacMessages.getBundles(JavacMessages.java:128)
    at com.sun.tools.javac.util.JavacMessages.getLocalizedString(JavacMessages.java:147)
    at com.sun.tools.javac.util.JavacMessages.getLocalizedString(JavacMessages.java:140)
    at com.sun.tools.javac.util.Log.localize(Log.java:673)
    at com.sun.tools.javac.util.Log.printLines(Log.java:485)
    at com.sun.tools.javac.api.JavacTaskImpl.handleExceptions(JavacTaskImpl.java:156)
    at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:93)
    at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:87)
    at com.google.devtools.build.buildjar.javac.BlazeJavacMain.compile(BlazeJavacMain.java:104)
    at com.google.devtools.build.buildjar.SimpleJavaLibraryBuilder.invokeJavac(SimpleJavaLibraryBuilder.java:163)
    at com.google.devtools.build.buildjar.ReducedClasspathJavaLibraryBuilder.compileSources(ReducedClasspathJavaLibraryBuilder.java:52)
    at com.google.devtools.build.buildjar.SimpleJavaLibraryBuilder.compileJavaLibrary(SimpleJavaLibraryBuilder.java:166)
    at com.google.devtools.build.buildjar.SimpleJavaLibraryBuilder.run(SimpleJavaLibraryBuilder.java:178)
    at com.google.devtools.build.buildjar.BazelJavaBuilder.processRequest(BazelJavaBuilder.java:90)
    at com.google.devtools.build.buildjar.BazelJavaBuilder.runPersistentWorker(BazelJavaBuilder.java:67)
    at com.google.devtools.build.buildjar.BazelJavaBuilder.main(BazelJavaBuilder.java:44)
Caused by: java.util.MissingResourceException: Can't find bundle for base name com.google.errorprone.errors, locale en_US
    at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1573)
    at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1396)
    at java.util.ResourceBundle.getBundle(ResourceBundle.java:854)
    at com.sun.tools.javac.util.JavacMessages.lambda$add[=11=](JavacMessages.java:106)
    at com.sun.tools.javac.util.JavacMessages.getBundles(JavacMessages.java:125)
    ... 15 more
Target //src:bazel failed to build
INFO: Elapsed time: 291.995s, Critical Path: 258.92s

ERROR: Could not build Bazel

为确保错误与体系结构无关,我尝试在 x86_64 PC 上构建 Bazel。即使在那里,我也会遇到同样的错误。我看到有人在 bazel github 组中创建了类似的问题,none 已解决。

版本 0.4.5 非常旧。我们只是 released 0.12.0,你能试试那个吗?