web-dev-qa-db-ja.com

Raspbianにgo(golang)をインストールします

さまざまなフォーラムをチェックしましたが、まだ機能しませんでした。 Raspberry Piにgo(golang)をインストールしたい-Raspbian:

Sudo apt-get install golang

Goとインストールしました

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を初めて使用するので、非常に詳細な「方法」の説明を受け取っていただければ幸いです。したがって、実際のダミー用に作られたものはすべて私にとって十分なはずです。ご協力ありがとうございました。

10
heiko

これは、リポジトリからGoをRaspbian Stretchにインストールする方法に関する詳細な手順です。

2018年1月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。すべてのgoプロジェクトの作業ディレクトリを$ HOMEディレクトリに作成します。 Goの将来のバージョン(Go 1.8以降)ではデフォルトでGOPATHに設定されるため、goと名前を付けるのが最善です。

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の3つのサブディレクトリが含まれます。 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を使用して他のプロジェクトメンテナーとユーザーを区別する必要はありません。

VII。それでは、「hello world」プロジェクトを追加して、インストールをテストしましょう。

a)最初にプロジェクトフォルダーを作成し、そのディレクトリに移動します。

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)次に、このディレクトリ内で、実行可能なprocramとして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:~ $

おめでとうございます!

23
Peter Gloor