【问题标题】:Trouble installing Go correctly on Ubuntu在 Ubuntu 上正确安装 Go 时遇到问题
【发布时间】:2015-07-17 20:21:25
【问题描述】:

我在我的 Mac 上成功安装了这个,只是在 Linux 上遇到了问题。我正在关注他们的文档https://golang.org/doc/install。我正在运行一台 64 位机器,所以我下载了 64 位存档。下载后我运行

sudo tar -C /usr/local/ -xzf ~/Downloads/go1.4.2.linux-amd64.tar.gz

我在我的主文件夹中创建了一个go 目录。我有结构

/home
--/chrism
----/go
------/src
------/pkg
------/bin

我将以下内容添加到/etc/profile。保存后我运行source /etc/profile

export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go

src/ 中,我添加了一个目录git.mycompany.com,并在他们的另一个目录中添加了一个名为test 的目录。在test/ 我创建了test.go 并将上面教程中的代码块粘贴到了

package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}

当我运行go run test.go 时,它会输出以下内容

chrism@ubuntu:~/go/src/git.mycompany.com/test$ go run test.go 
# fmt
Usage: pack op file.a [name....]
Where op is one of cprtx optionally followed by v for verbose output.
For compatibility with old Go build environments the op string grc is
accepted as a synonym for c.

For more information, run
    godoc cmd/pack
# runtime
Usage: pack op file.a [name....]
Where op is one of cprtx optionally followed by v for verbose output.
For compatibility with old Go build environments the op string grc is
accepted as a synonym for c.

For more information, run
    godoc cmd/pack

如果我在导入语句中添加更多包,它也会输出所有这些包的文档。

编辑 0: 我还尝试使用apt-get 进行安装。我卸载并删除了我以前的更改,然后安装。这导致运行时出现以下情况:

chrism@ubuntu:~/go/src/git.mycompany.com/test$ go run test.go 
go build fmt: exec: "/usr/local/go/pkg/tool/linux_amd64/pack": stat /usr/local/go/pkg/tool/linux_amd64/pack: no such file or directory
go build runtime: exec: "/usr/local/go/pkg/tool/linux_amd64/pack": stat /usr/local/go/pkg/tool/linux_amd64/pack: no such file or directory

编辑 1: 这是运行go env的输出

GOROOT="/usr/lib/go"
GOBIN=""
GOARCH="amd64"
GOCHAR="6"
GOOS="linux"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CGO_ENABLED="1"

【问题讨论】:

  • 为什么不直接用 apt-get 安装呢? github.com/golang/go/wiki/Ubuntu
  • @OneOfOne 我做了,但我遇到了另一个问题。我再试一次,用这个问题更新我的问题
  • 我不确定,但如果你在官方包中遇到这个错误,你应该提交一个错误。
  • 不要使用 apt-get。版本太过时了。看看github.com/moovweb/gvm
  • 感谢大家的帮助。我最终彻底清除了外出,然后使用@elithrar 发布的脚本进行安装,它现在可以工作了!

标签: ubuntu go installation


【解决方案1】:

这些是我在 Ubuntu 系统中安装 Go 所遵循的步骤:

短版: 1. 运行以下命令进行安装:

sudo apt-get remove -y gccgo-go && wget http://golang.org/dl/go1.8.linux-amd64.tar.gz && sudo apt-get -y install gcc && sudo tar -C /usr/local -xzf go1.8.2.linux-amd64.tar.gz && echo "export PATH=\$PATH:/usr/local/go/bin" >> ~/.bashrc

注意:更改版本号以安装特定版本的 Go。例如,要安装 1.9 而不是 1.8,请将文件名更改为 go1.9.linux-amd64.tar.gz。最新的 Go 发行版可以随时在 the official Go downloads page

找到
  1. 设置工作场所。 (第 6 点)

加长版:

  1. here 下载二进制版本。对 ubuntu 使用 go x.x.x.linux-amd64.tar.gz。 对于 1.4.2 版本,您可以在终端中键入以下内容。

    wget http://golang.org/dl/go1.8.linux-amd64.tar.gz
    
  2. 为 cgo 安装 gcc

    sudo apt-get install gcc 
    
  3. 解压 /usr/local 中的压缩包。它应该创建一个 go 目录。

    tar -C /usr/local -xzf go1.8.linux-amd64.tar.gz
    

    (通常这些命​​令必须以 root 身份或通过 sudo 运行。)

  4. 将 /usr/local/go/bin 添加到 PATH 环境变量中。

    gksu gedit ~/.bashrc
    
  5. 在文件末尾添加以下行

    export PATH=$PATH:/usr/local/go/bin
    
  6. 设置工作区

    一个。在您的首选位置创建一个工作区目录名称 go(除非您使用默认的 go 安装位置)。我正在使用 /home/vembu/work/projects/go

    mkdir -p /home/vembu/work/projects/go
    

    b.导出 GOPATH

    gedit ~/.bashrc
    

    c。在倒数第二行添加以下行

    export GOPATH=/home/vembu/work/projects/go
    

    d。为方便起见,将工作区的 bin 子目录添加到 PATH:

    export PATH=/usr/local/go/bin:$PATH:$GOPATH/bin
    

    e。最后.bashrc的最后两行应该是这样的

    export GOPATH=/home/vembu/work/projects/go
    export PATH=/usr/local/go/bin:$GOPATH/bin:$PATH
    

    f。重启终端。

【讨论】:

    【解决方案2】:

    这种方法是我通常在 ubuntu 机器上安装的方法,并且永远不会失败。希望对你有帮助。

    1. 下载去

      wget https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz

    2. 解压到 /usr/local

      sudo tar -C /usr/local -xzf go1.4.2.linux-amd64.tar.gz

    3. 添加这些行来修改~/.bashrc

      export PATH=$PATH:/usr/local/go/bin

      export GOPATH=$HOME/go

      export GOBIN=$GOPATH/bin

      export PATH=$PATH:$GOPATH/bin

    4. 保存并重新加载源代码

      source ~/.bashrc

    5. 验证安装

      go env

    6. 创建go目录

      mkdir ~/go

    7. 尝试获取一些包裹

      go get github.com/smartystreets/goconvey

    编辑

    我创建了一个 bash 脚本,它会自动为您执行上述操作。它总是指向最新的 go 版本,所以要小心。

    wget -O - https://raw.githubusercontent.com/mauleyzaola/scripts/master/go/go.install.sh | sh

    然后,只需重新加载.bashrc

    source ~/.bashrc

    【讨论】:

    • 我搞砸了 go env 变量,无法更改它们。最后,您的 bash 脚本帮助了我!非常感谢
    【解决方案3】:

    您选择了系统范围的安装,因此您可以从/etc/profile 源中删除此行:export GOPATH=$HOME/go 再次在此稍后的文件中。您提到的所有其他步骤根本不需要。而不是像之前的答案中提到的那样重新启动终端,您需要重新启动您的机器。所以最后你要做的就是仔细遵循官方文档中提到的步骤。

    【讨论】:

      猜你喜欢
      • 2012-08-27
      • 2015-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-24
      相关资源
      最近更新 更多