gpt4 book ai didi

linux - 在Raspbian上安装go(golang)

转载 作者:IT王子 更新时间:2023-10-29 00:16:44 27 4
gpt4 key购买 nike

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


sudo apt-get install golang

我安装了go and
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的新手,如果我得到非常详细的“如何做”字样,我将感到高兴,因此,真正的假人所做的一切对我来说都足够好。
谢谢您的帮助。

最佳答案

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

从2018年1月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

IV。将$ 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会自动为您的Go安装使用$ GOPATH/bin/。

但是,您可能还需要检查路径设置(应包括/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

VI。关于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:~ $

恭喜你!

关于linux - 在Raspbian上安装go(golang),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48348262/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com