Это действительная конфигурация пути Go? - PullRequest
0 голосов
/ 07 октября 2018

Я разместил переменные пути следующим образом:

export GOROOT=/usr/local/go
export GOPATH=$HOME/Professional/Sch/Fabric/go
export GOBIN=/usr/local/go/bin
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

Я поместил эти строки в ~ / .profile и ~ / .bashrc и получил их оба (не уверен, какая из нихвступает в силу).

мой вывод go env:

GOARCH="amd64"
GOBIN="/usr/local/go/bin"
GOCACHE="/home/deepak/.cache/go-build"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/deepak/Professional/Sch/Fabric/go"
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build653871525=/tmp/go-build -gno-record-gcc-switches"

Я поместил следующий код в $ HOME / Professional / Sch / Fabric / go / hellp.go:

package main

import "fmt"

func main() {
    fmt.Printf("Hello, World!\n")
}

но каждый раз, когда я делаю go install hellp.go, я получаю:

go install command-line-arguments: open /usr/local/go/bin/hellp: permission denied

, что странно, потому что go version возвращает go version go1.10.4 linux/amd64, и я не уверен, почему он пытаетсяссылка /usr/local/go/bin/hellp, поскольку там нет файла 'hellp', это образец файла, который я создал в $HOME/Professional/Sch/Fabric/go/.

Я не уверен, какое разрешение каталога отсутствует, но я пробовал:

  201  sudo chmod -R 777 ~/Professional/Sch/Fabric
  202  go install hellp.go 
  203  sudo chmod -R 777 ~/Professional/Sch/Fabric/go/hellp.go 
  204  go install hellp.go 
  205  sudo chmod -R 777 ~

Мой вывод uname -a:

Linux instance-1 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u4 (2018-08-21) x86_64 GNU/Linux

Япытаясь установить HyperLedger Fabric, для которой Go является обязательным условием, и ясно, что go version вывод показывает, что он успешно установлен, однако я не уверен, где или как его нужно настроить для тестирования и использования.

1 Ответ

0 голосов
/ 07 октября 2018

Ваш параметр GOBIN говорит go install попытаться установить скомпилированные двоичные файлы в системный глобальный каталог, в который у вас нет разрешения на запись.Попробуйте сбросить эту переменную;по умолчанию все должно быть установлено в $GOPATH/bin.

Также помните, что go install принимает в качестве параметра имя пакета , а не имя файла.Я не уверен, что вы можете go install что-то в $GOPATH/src напрямую, но вы можете переместить это в подкаталог

unset $GOBIN    
cd $GOPATH/src
mkdir github.com/myname/helpp
mv helpp.go github.com/myname/helpp
go install github.com/myname/helpp
$GOPATH/bin/helpp  # uses the name of the package directory
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...