你正在使用的Go版本是(go version
)?
go version go1.14.2 windows/amd64
这个问题在最新版本的发布中是否重现?
你正在使用的操作系统和处理器架构是什么(go env
)?go env
输出
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\bert.hooyman\AppData\Local\go-build
set GOENV=C:\Users\bert.hooyman\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\bert.hooyman\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=c:\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=c:\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\BERT~1.HOO\AppData\Local\Temp\go-build874685950=/tmp/go-build -gno-record-gcc-switches
你做了什么?
go get -v golang.org/x/tools/gopls
你期望看到什么?
成功安装工具
你看到了什么?
下载golang.org/x/tools v0.0.0-20200408132156-9ee5ef7a2c0d
-> 解压C:\Users\bert.hooyman\go\pkg\mod\cache\download\golang.org\x\tools@v\v0.0.0-20200408132156-9ee5ef7a2c0d.zip: mkdir C:\Users\bert.hooyman\go\pkg\mod\golang.org\x\tools@v0.0.0-20200408132156-9ee5ef7a2c0d.tmp-041877873\cmd\fiximports\testdata\src\titanic.biz: 访问被拒绝。
go: golang.org/x/tools/gopls升级 => v0.3.4
-> 解压C:\Users\bert.hooyman\go\pkg\mod\cache\download\golang.org\x\tools@v\v0.0.0-20200316194252-fafb6e2e8a4a.zip: mkdir C:\Users\bert.hooyman\go\pkg\mod\golang.org\x\tools@v0.0.0-20200316194252-fafb6e2e8a4a.tmp-669779996\cmd\fiximports\testdata\src\titanic.biz: 访问被拒绝。
go get golang.org/x/tools/gopls: 解压C:\Users\bert.hooyman\go\pkg\mod\cache\download\golang.org\x\tools@v\v0.0.0-20200316194252-fafb6e2e8a4a.zip: mkdir C:\Users\bert.hooyman\go\pkg\mod\golang.org\x\tools@v0.0.0-20200316194252-fafb6e2e8a4a.tmp-669779996\cmd\fiximports\testdata\src\titanic.biz: 访问被拒绝。
我遇到的问题基本上是:创建titanic.biz文件夹。
.biz是一个勒索软件扩展,赛门铁克会阻止它。
我的系统有赛门铁克Endpoint Protection,而且我的雇主不允许我关闭它。
.biz对于测试数据文件夹名称后缀来说不是一个好选择。
9条答案
按热度按时间a6b3iqyw1#
这可能是在#36568中描述的相同问题,并在1.14.2中部分修复。
tag5nh1u2#
更新:我成功说服了系统管理员暂停我的赛门铁克终端防护一小时。我在VS Code中执行"Go:安装/更新工具",第一次尝试就完美地安装了所有工具。
唯一的问题是.biz文件夹名扩展名。我认为这对社区来说是有用的,以便理解这个“边缘”问题。
wecizke33#
/cc @heschik
dpiehjr44#
@bcmills@jayconrod 这是一个重复的问题吗?这是在创建目录时出现的错误,而不是重命名。
oiopk7p55#
不,它看起来不像 #36568 的重复。在错误日志中,它是在提取
x/tools
模块zip时失败的,而不是在重命名目录时失败的。@BertHooyman 所以听起来你的组织有禁止创建以
.biz
结尾的文件的政策?我不确定我们如何能预料到这种情况。l5tcr1uw6#
这些文件已经有很多年了,据我所知,我们以前从未遇到过问题。我可以审查更改以重命名它们,但我认为我自己不会这样做。
rjjhvcjd7#
@jayconrod我不确定我的公司是否有"特殊"的规则,还是这些规则来自赛门铁克终端保护。这肯定是一个边缘条件。无论如何,在这里提到的场景可能对其他人来说足够了,他们也遇到了在mkdir上显示"访问被拒绝"的相同错误信息。我花了相当长的时间来筛选所有看似相关的提及(不仅仅是在x/tools中),所以在这里分享它可能会帮助到别人。我知道如果这个问题没有得到解决的话。
2hh7jdfx8#
我们似乎无法绕过每个IT部门对文件名的任意限制。
我同意@heschik的观点:我们可以审查一个更改来解决这个限制,但我们不应该主动这样做。我还想补充一点,提交信息应该包括关于为什么(理想情况下,在什么条件下)这些名称是不允许的某些特定文档的引用。
hl0ma9xz9#
@bcmills,这是完全可以理解的。我建议让那些遭受这个问题的人能够发现根本原因。这样用户就能明白,当一个mkdir导致访问被拒绝(在Windows上),他们就能明白这不是Go Tools的错误,而是他们的终端保护。