【问题标题】:“user: Current not implemented on linux/amd64” with fresh golang on fedora“用户:当前未在 linux/amd64 上实现”在 Fedora 上使用新的 golang
【发布时间】: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


【解决方案1】:

这是 Fedora 中的一个错误:Bug 1135152

如果您使用 gccgo 而不是 golang 编译 Go 程序,它将起作用。

【讨论】:

    【解决方案2】:

    看起来 user.Current() 最终从 libc 调用getuid,他安装了吗?是64位的转吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-03
      • 2010-09-19
      • 1970-01-01
      • 2016-03-06
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      相关资源
      最近更新 更多