我检查了不同的论坛,但我仍然没有使它工作.
我喜欢在我的Raspberry PI上安装go(golang) – Raspbian:
同
sudo apt-get install golang
我安装了去和
export GOPATH=$home/pi/gocode
我设置了GOPATH,所以我尝试从主页安装一个新程序(sudo go get -u github.com / ….)但是,我只得到“无法下载,$GOPATH未设置.有关详细信息,请参阅:去帮助gopath“.
我真的因为我看不到的简单错误而疯狂.
如果因为我是Linux和Raspbian的新手而得到一个非常详细的“怎么办”的描述,我会很高兴,所以为真正的dummys所做的一切应该对我来说足够好.
谢谢您的帮助.
解决方法:
这是有关如何从存储库安装Go on Raspbian Stretch的详细说明.
截至今日2018-01-30,这将安装Go 1.7. Go 1.9.3是下载手动安装的最实际版本.
I.在Raspberry Pi上登录您的用户(我使用的是默认用户pi).
II.安装Go(golang)
pi@pi3-2:~ $sudo apt update
pi@pi3-2:~ $sudo apt install golang
III.为$HOME目录中的所有go项目创建一个工作目录.最好将它命名为,因为在未来的Go版本中默认为GOPATH(从Go 1.8开始).
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将自动使用$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
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作为可执行的procram.
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:~ $
恭喜!