繁体   English   中英

在 Raspbian 上安装 go (golang)

[英]Install go (golang) on Raspbian

我检查了各种论坛,但仍然无法正常工作。 我喜欢在我的 Raspberry PI - Raspbian 上安装 go (golang):

sudo apt-get install golang

我安装了 go and with

export GOPATH=$home/pi/gocode

我设置了 GOPATH,所以我尝试从主页安装一个新程序( sudo go get -u github.com/.... )但是,我只得到“ cannot download, $GOPATH not set. For more details see: go help gopath ”。

我真的为我没有看到的学习简单错误而疯狂。

如果我得到一个非常详细的“如何做”的描述我会很高兴,因为我是 Linux 和 Raspbian 的新手,所以所有为真正的傻瓜制作的东西对我来说应该足够了。 谢谢你的帮助。

这是有关如何从存储库安装 Go on Raspbian Stretch 的详细说明。

截至今天,2018-01-30,这将安装 Go 1.7。 从下载中手动安装的最实际版本是 Go 1.9.3。

I. 在 Raspberry Pi 上登录您的用户(我使用的是默认用户 pi)。

二、 安装 Go (golang)

pi@pi3-2:~ $ sudo apt update 
pi@pi3-2:~ $ sudo apt install golang

三、 在 $HOME 目录中为所有 go 项目创建一个工作目录。 最好将其命名为 go,因为在未来的 Go 版本(从 Go 1.8 开始)中默认为 GOPATH。

pi@pi3-2:~ $ mkdir go

四、 将 $GOPATH 环境变量和修改后的 PATH 设置附加到您的 .profile

pi@pi3-2:~ $ echo 'export GOPATH=$HOME/go' >> ~/.profile
pi@pi3-2:~ $ echo 'PATH="$HOME/go/bin:$PATH"' >> ~/.profile

V. 注销并使用新设置重新登录,然后检查您的设置

pi@pi3-2:~ $ go env

GOARCH="arm"
GOBIN=""
GOEXE=""
GOHOSTARCH="arm"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/pi/go"
GORACE=""
GOROOT="/usr/lib/go-1.7"
GOTOOLDIR="/usr/lib/go-1.7/pkg/tool/linux_arm"
CC="gcc"
GOGCCFLAGS="-fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build187598155=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"

尤其要确保 GOPATH 指向您之前创建的 Go 工作目录。 不关心在某些文档中提到的设置 GOBIN。 通常没有必要,Go 会自动使用 $GOPATH/bin/ 进行 Go 安装。

但是,您可能还想检查路径设置(应包含 /home/pi/go/bin)以确保您可以运行使用 go install 安装的代码。

pi@pi3-2:~ $ echo $PATH
/home/pi/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games

六、 关于 Go 工作目录结构的几句话

随着时间的推移,Go 工作目录将包含三个子目录:bin、src 和 pkg。 除了 src 它们将在第一次需要时自动创建。 用户 pi 的结构如下所示:

/home
  /pi
    /go
      /src
      /pkg
      /bin

bin将包含您使用 go install 命令安装的所有 Go 可执行文件。

pkg将包含所有可以导入到您的项目中的编译包。

src将包含您所有的源文件,无论是您自己的还是从外部存储库下载的源文件。

对于 eksample 命令go get github.com/petergloor/hello-go将自动从相应的外部 Github 存储库中获取源文件并将其放入本地目录$HOME/go/src/github.com/petergloor/hello-go

由于获取外部存储库以供参考或贡献是相当普遍的,因此保持目录结构始终井井有条和干净就变得很重要。

除此之外,您可以自由组织您的项目,只要它们在 $HOME/go/src/ 目录下分层结构并遵循文档中提到的规则。

然而,为了清楚地组织我的项目,我个人总是将我的项目放在 $HOME/go/src/github.com/my-github-account 中,即使我没有外部存储库。

如果您没有 github 帐户,您也可以使用任何其他外部存储库帐户。

正如我所提到的,即使根本不需要我也更喜欢使用我的 Github 帐户来清楚地识别我的项目。 即使不需要,我将在以下示例中使用用户名 pi 将用户与其他项目维护者区分开来。

七、 所以让我们添加一个“hello world”项目来测试我们的安装。

a) 首先让我们创建项目文件夹并将 cd 放入其目录。

pi@pi3-2:~ $ mkdir -p $HOME/go/src/pi/helloworld
pi@pi3-2:~ $ cd $HOME/go/src/pi/helloworld
pi@pi3-2:~/go/src/pi/helloworld $

b) 使用您选择的编辑器创建一个包含以下内容的文件 main.go

// helloworld project main.go.
package main

import ("fmt")

// main is the entrypoint of the application.
func main() {
  fmt.Println("Hello world! Greetings from Raspberry Pi")
}

间距在这一点上并不重要。 Go 提供了一个很好的工具来为你做这件事。

c) 现在尝试运行该程序。

pi@pi3-2:~/go/src/pi/helloworld $ go run main.go
Hello world! Greetings from Raspberry Pi
pi@pi3-2:~/go/src/pi/helloworld $

如果出现错误,请修复它! 仔细检查拼写和大小写(Go 区分大小写)。

d) 接下来让我们格式化代码:

pi@pi3-2:~/go/src/pi/helloworld $ go fmt

如果没有文件名,这将正确(重新)格式化此目录及以下目录中的所有源文件。

e) 接下来让我们在此目录中将 helloworld 构建为可执行程序。

pi@pi3-2:~/go/src/pi/helloworld $ go build
pi@pi3-2:~/go/src/pi/helloworld $ ls
helloworld  main.go
pi@pi3-2:~/go/src/pi/helloworld $

f) 现在您可以运行它了。

pi@pi3-2:~/go/src/pi/helloworld $ ./helloworld
Hello world! Greetings from Raspberry Pi
pi@pi3-2:~/go/src/pi/helloworld $

g) 最后让我们将程序安装到 $HOME/go/bin/ 目录中。

pi@pi3-2:~/go/src/pi/helloworld $ go install
pi@pi3-2:~/go/src/pi/helloworld $ ls $HOME/go/bin
hello-go  helloworld
pi@pi3-2:~/go/src/pi/helloworld $

h) 如果一切顺利,我们的 pi 用户只需输入命令的名称即可从任何地方运行它。

pi@pi3-2:~/go/src/pi/helloworld $ helloworld
Hello world! Greetings from Raspberry Pi
pi@pi3-2:~/go/src/pi/helloworld $ cd ~
pi@pi3-2:~ $ helloworld
Hello world! Greetings from Raspberry Pi
pi@pi3-2:~ $

恭喜!

截至 2019 年 11 月。(请注意,如果您需要 1.13+ 版本,请手动 wget go1.13.3.linux-amd64.tar.gz )或sudo apt-get install golang-go - source

你只需要在你的 RPi 上输入以下命令

sudo apt-get update
sudo apt-get install golang --fix-missing

当你现在输入go version以下应该是你的输出

pi@rpi1:~ $ go version
go version go1.11.6 linux/arm

此外,在运行所有内容之前,我还安装了以下内容sudo apt-get install make gcc g++

在此处输入图片说明

golang的安装方法:

将最新的 tarball go1.9.linux-armv6l.tar.gz下载到/home/pi/downloads 等目录

然后使用:

sudo tar -C /home/pi -xzf go1.9.linux-armv6l.tar.gz

将 go 安装解压到目录

/家/pi

创建/home/pi/go

检查使用

go version

这将为您提供实际版本的 go。

应该是 go1.9 linux/arm。

请检查:

go env

go env GOPATH

GOPATH方向

ls -a # (used in /home/pi/ )

给你一个所有文件的列表,并显示你~/.profile

sudo nano ~/.profile

您可以打开该文件并为 go 目录添加推荐的代码

 export GOROOT=/home/pi/go
 export GOPATH=/home/pi/go/bin

用 STRG + O 和 ENTER 和 STRG + X 关闭

检查

go env GOPATH

然后使用

source ~/.profile

然后你可以再次检查

go env

现在 go 应该在最新版本上运行并且应该有正确的GOPATH目录

这个链接对我很有帮助: https : //tecadmin.net/install-go-on-debian/#

我真的希望其他人也能以简短而详细的方式详细说明如何安装程序。 而不是 3 行单一代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM