去1.5:"go install"行为改变了吗?删除陈旧的可执行文件?

May*_*tel 8 bash go

Till Go 1.4.2当我在运行go build之后运行go install时,我可以在当前文件夹中找到二进制文件.因此,Linux命令正在运行

$ go build && go install && ./executable

但安装完1.5后,当我运行相同的命令时,我得到了,

-bash:./ executable:没有这样的文件或目录

当我检查时,没有可执行文件可供查找.Go 1.5中的安装行为是否已更改?

Ain*_*r-G 8

是的,Go 1.5中的行为发生了变化:

如果'go install'(没有参数,意味着当前目录)成功,则删除由'go build'写的可执行文件(如果存在).这样可以避免在以下序列中留下陈旧的二进制文件:

go build
<test, mostly works, make small change>
go install
Run Code Online (Sandbox Code Playgroud)

在此CL之前,当前目录仍然具有来自"go build"的陈旧二进制文件.如果$ PATH包含点,则运行程序名称将找到这个陈旧的二进制文件,而不是新安装的二进制文件.

我在发行说明中找不到任何提及的内容.可能是文档问题.

似乎解决方案是使用go install已生成的二进制文件.

编辑: 如果您想要跟进更新,是Go问题跟踪器上的问题.应该由1.5.1修正.