【发布时间】:2014-10-26 17:12:27
【问题描述】:
user.Current() 不适用于新的 Fedora golang。不涉及交叉编译。直接go install 跑。在 Ubuntu 和自定义 slackware dist 上运行良好。有什么想法吗?
【问题讨论】:
-
go version命令的输出是什么? -
1.3.3.显然这是一个已知的 redhat 问题。也许它正在尝试使用cgo?
-
喂。不确定这是否有帮助,但是:如果它在您自己的代码中,您可能会编写一些 cgo 通过
getlogin_r或其他方式获取当前用户,或者,如果这是一次性的-启动类型的东西,你真的很想避免 cgo,实际运行系统的uname二进制文件并读取它的输出或其他东西(理解这就像贵了 100 倍)。如果它在您不想修补的第三方代码中,我想知道是否从源代码(ack,抱歉)在本地构建 golang 可能会绕过它。 -
我唯一能想到的另一件事是,如果某些东西导致它在不需要时进行交叉编译,例如,可能没有安装 gcc/g++,或者它是 32 位 golang安装在 64 位机器上。这些绝对是在黑暗和最后的想法中的狂野刺伤(因此 cmets 不是答案)。
标签: go fedora home-directory