安装bazel时 "exec env - "路径错误

1 人关注

当我从源代码编译bazel 0.5.4时

./compile.sh meet this problem :

error executing shell command: 'cp 'bazel-out/local-opt/bin/src/main/protobuf/command_server_java_grpc_srcs.jar' 'bazel-out/local-opt/bin/src/main/protobuf/command_server_java_grpc_srcs.srcjar'' failed (Exit 127): bash failed: error executing command
  (cd /tmp/bazel_b29JWvqF/out/execroot/io_bazel && \
  exec env - \
  /bin/bash -c 'cp '\''bazel-out/local-opt/bin/src/main/protobuf/command_server_java_grpc_srcs.jar'\'' '\''bazel-out/local-opt/bin/src/main/protobuf/command_server_java_grpc_srcs.srcjar'\''').
/bin/bash: cp: command not found
Target //src:bazel failed to build

我认为这是因为 "exec env - " 使用了错误的$PATH环境。

当我只运行 "exec env - " 命令时。

$ exec env - /bin/bash -c 'echo $PATH'
/usr/local/bin:/usr/bin

但cp命令在/bin/cp下。

而且我确认"/bin "在系统的$PATH变量中。

我应该修改哪个配置?

3 个评论
替换代码0】可能作为 /bin/cp 的符号链接而存在,反之亦然。
文件名周围的引号看起来也很古怪。
这个错误信息似乎来自Bazel逻辑本身的深处。我不认为有什么你可以直接修复的。提出两个错误报告,一个是关于这个问题,一个是关于他们的shell脚本中的许多愚蠢的错误(试试 shellcheck.net 用于诊断)。顶层的 compile.sh 看起来可以接受,但当你深入研究他们的脚本时,有很多奇怪的地方(简单的引用错误,奇怪的 echo in backticks etc).
linux
shell
bazel
user2848932
user2848932
发布于 2018-01-23
1 个回答
Allan
Allan
发布于 2018-01-23
已采纳
0 人赞同

你确实需要改变你的 $PATH ,在你的shell中输入提示符后

export PATH=/bin:$PATH;

然而,由于cp是一个基本的命令,我建议在你的.bash_profile中修改你的$PATH。/ $HOME中的.profile,以便在你重启机器或运行另一个shell后保留这些更改。