目前从源代码构建张量流需要连接到Internet以下载一些依赖项 . 每次重建时,bazel都会删除已下载的内容并重新下载 .
我想知道是否有任何可能的方法来通过预先下载所有依赖项来避免这种情况,并且只是在没有互联网的情况下构建它?
Bazel自动缓存它下载的外部依赖项 . 你有可能:
移动张量流源
更改它用于外部存储库的BUILD文件
每次构建不同的目标(可能需要其他依赖项)?
如果这些似乎都不可能,你可以使用 --explain 添加输出以连续两次运行相同的bazel构建,你会看到重新下载的行为吗?
--explain
这似乎是TensorFlow没有很好支持的情况,显然有一种方法是构建Docker或其他VM环境,并分发它 - https://github.com/tensorflow/tensorflow/issues/3194#issuecomment-231326381
可以预先下载第三方依赖项,如here所述 .
在tensorflow v0.11.0中,它们列在“tensorflow / workspace.bzl”中 . 下载所需的文件后,替换如下链接:
url = "http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz",
至
url = "file:////mnt/a/usr/bzip2-1.0.6.tar.gz",
请注意,要下载大约20个依赖项 .
3 回答
Bazel自动缓存它下载的外部依赖项 . 你有可能:
移动张量流源
更改它用于外部存储库的BUILD文件
每次构建不同的目标(可能需要其他依赖项)?
如果这些似乎都不可能,你可以使用
--explain
添加输出以连续两次运行相同的bazel构建,你会看到重新下载的行为吗?这似乎是TensorFlow没有很好支持的情况,显然有一种方法是构建Docker或其他VM环境,并分发它 - https://github.com/tensorflow/tensorflow/issues/3194#issuecomment-231326381
可以预先下载第三方依赖项,如here所述 .
在tensorflow v0.11.0中,它们列在“tensorflow / workspace.bzl”中 . 下载所需的文件后,替换如下链接:
至
请注意,要下载大约20个依赖项 .