J'ai vérifié divers forums mais je ne l'ai toujours pas fait fonctionner. J'aime installer go (golang) sur mon Raspberry Pi - Raspbian:
Avec
Sudo apt-get install golang
J'ai installé go and with
export GOPATH=$home/pi/gocode
j'ai mis le GOPATH donc j'ai essayé d'installer à partir d'une page d'accueil un nouveau programme avec (Sudo go get -u github.com/....
) mais je ne reçois que "cannot download, $GOPATH not set. For more details see: go help gopath
".
Je deviens vraiment fou de mon studip simple erreur que je ne vois pas.
Je serais heureux si j'obtiens une description très détaillée du "comment faire" puisque je suis nouveau sur Linux et Raspbian, donc tout ce qui est fait pour de vrais mannequins devrait être assez bon pour moi. Merci de votre aide.
Ce sont des instructions détaillées sur la façon d'installer Go on Raspbian Stretch à partir des référentiels.
À compter d'aujourd'hui, 30/01/2018, cela installera Go 1.7. La version la plus récente pour l'installation manuelle à partir des téléchargements est Go 1.9.3.
I. Connectez-vous à votre utilisateur sur le Raspberry Pi (j'utilise le pi d'utilisateur par défaut).
II. Installer Go (golang)
pi@pi3-2:~ $ Sudo apt update
pi@pi3-2:~ $ Sudo apt install golang
III. Créez un répertoire de travail pour tous vos projets go dans votre répertoire $ HOME. Il est préférable de le nommer go, car il s'agit par défaut du GOPATH dans les futures versions de Go (à partir de Go 1.8).
pi@pi3-2:~ $ mkdir go
IV. Ajoutez la variable d'environnement $ GOPATH et les paramètres PATH modifiés à votre .profile
pi@pi3-2:~ $ echo 'export GOPATH=$HOME/go' >> ~/.profile
pi@pi3-2:~ $ echo 'PATH="$HOME/go/bin:$PATH"' >> ~/.profile
Déconnectez-vous et reconnectez-vous avec les nouveaux paramètres, puis vérifiez vos paramètres
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"
Assurez-vous en particulier que GOPATH pointe vers votre répertoire de travail Go créé précédemment. Ne vous souciez pas de configurer GOBIN comme mentionné dans la documentation. Ce n'est généralement pas nécessaire et Go utilisera automatiquement $ GOPATH/bin/pour vos installations Go.
Cependant, vous pouvez également vouloir vérifier les paramètres de chemin (/ home/pi/go/bin devrait être inclus) pour vous assurer que vous pouvez exécuter le code que vous avez installé avec 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. Quelques mots sur la structure du répertoire de travail Go
Au fil du temps, le répertoire de travail Go contiendra trois sous-répertoires: bin, src et pkg. Sauf src, ils seront automatiquement créés, au besoin la première fois. La structure de l'utilisateur pi ressemblera à ceci:
/home
/pi
/go
/src
/pkg
/bin
bin contiendra tous les exécutables Go que vous avez installés à l'aide de la commande go install.
pkg contiendra tous les packages compilés qui peuvent être importés dans vos projets.
src contiendra tous vos fichiers source, les vôtres ou ceux téléchargés à partir de référentiels externes.
Pour eksample, la commande go get github.com/petergloor/hello-go
récupérera et placera automatiquement les fichiers source du référentiel Github externe correspondant dans le répertoire local $ HOME/go/src/github.com/petergloor/hello-go .
Comme il est assez courant de récupérer des référentiels externes pour référence ou contribution, il devient important de garder votre structure de répertoires toujours bien organisée et propre.
En dehors de cela, vous êtes libre d'organiser vos projets tant qu'ils sont structurés hiérarchiquement sous le répertoire $ HOME/go/src/et suivez les règles mentionnées dans la documentation.
Cependant, pour organiser clairement mes projets, personnellement, je place toujours mes projets dans $ HOME/go/src/github.com/my-github-account même si je n'ai pas de référentiel externe pour cela.
Si vous n'avez pas de compte github, vous pouvez également utiliser n'importe quel autre compte de référentiel externe.
Comme je l'ai mentionné, même si ce n'est pas du tout nécessaire, je préfère utiliser mon compte Github pour identifier clairement mes projets. Et même si ce n'est pas nécessaire, j'utiliserai le nom d'utilisateur pi pour distinguer l'utilisateur des autres responsables de projet dans l'exemple suivant.
VII. Ajoutons donc un projet "hello world" pour tester notre installation.
a) Créons d'abord le dossier du projet et le cd dans son répertoire.
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) Avec un éditeur de votre choix créez un fichier main.go avec le contenu suivant
// 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")
}
L'espacement n'a pas d'importance à ce stade. Go fournit un bel outil pour le faire pour vous.
c) Maintenant, essayez d'exécuter le programme.
pi@pi3-2:~/go/src/pi/helloworld $ go run main.go
Hello world! Greetings from Raspberry Pi
pi@pi3-2:~/go/src/pi/helloworld $
Si vous obtenez une erreur, corrigez-la! Vérifiez soigneusement l'orthographe et les cas (Go est sensible à la casse).
d) Permet ensuite de formater le code:
pi@pi3-2:~/go/src/pi/helloworld $ go fmt
Sans nom de fichier, cela (re) formatera correctement tous les fichiers source dans ce répertoire et ci-dessous.
e) Ensuite, construisons helloworld en tant que procramme exécutable, dans ce répertoire.
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) Vous pouvez maintenant l'exécuter.
pi@pi3-2:~/go/src/pi/helloworld $ ./helloworld
Hello world! Greetings from Raspberry Pi
pi@pi3-2:~/go/src/pi/helloworld $
g) Enfin, installons le programme dans le répertoire $ 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) Si tout est fait correctement, il peut être exécuté par notre utilisateur pi de n'importe où en entrant simplement le nom de la commande.
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:~ $
Toutes nos félicitations!