Проблема с Go go-bindata-assetfs: команда не найдена

#go

#Вперед

Вопрос:

У меня возникли проблемы при попытке собрать этот код:https://github.com/EmbarkStudios/wg-ui

Похоже, что она не может найти go-bindata-assetfs, но я думаю, что все установлено правильно… Я в Debian 10

 go get github.com/go-bindata/go-bindata/...
go get github.com/elazarl/go-bindata-assetfs/...
go-bindata-assetfs -prefix ui/dist ui/dist
make: go-bindata-assetfs: Command not found
make: *** [Makefile:23: assets] Error 12
  

Go установлен, и его путь добавлен в / etc / profile:

export PATH=$PATH:/usr/local/go/bin

 $ which go
/usr/local/go/bin/go
  

Файл Makefile:

 # Parameters
GOCMD=go
GOBUILD=$(GOCMD) build
GOCLEAN=$(GOCMD) clean
GOGET=$(GOCMD) get
BINARY_NAME=wireguard-ui

.PHONY: build container ui assets

all: build

clean:
    $(GOCLEAN)
    rm -rf bin
    rm -rf ui/node_modules ui/dist

ui:
    cd ui amp;amp; npm install amp;amp; npm run build

assets:
    $(GOGET) github.com/go-bindata/go-bindata/...
    $(GOGET) github.com/elazarl/go-bindata-assetfs/...
    go-bindata-assetfs -prefix ui/dist ui/dist

build: ui assets
    CGO_ENABLED=0 $(GOBUILD) -o bin/$(BINARY_NAME) -v

build-amd64: ui assets
        CGO_ENABLED=0 GOOS=linux GOARCH=amd64 $(GOBUILD) -o bin/$(BINARY_NAME)-amd64 -v

build-armv5: ui assets
    CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=5 $(GOBUILD) -o bin/$(BINARY_NAME)-armv5 -v

build-armv6: ui assets
    CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=6 $(GOBUILD) -o bin/$(BINARY_NAME)-armv6 -v

build-armv7: ui assets
    CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 $(GOBUILD) -o bin/$(BINARY_NAME)-armv7 -v

container:
    docker build -t wireguard-ui .

run-dev:
    sudo ./bin/$(BINARY_NAME) --log-level=debug --dev-ui-server=http://localhost:5000

run-dev-ui:
    cd ui amp;amp; npm run dev
  

Версия узла:

 $ node -v
v12.18.3
  

Вот go env

 GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/debianuser/.cache/go-build"
GOENV="/home/debianuser/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/debianuser/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/debianuser/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g  "
CGO_ENABLED="1"
GOMOD="/home/debianuser/wireguard-ui/go.mod"
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-build504714797=/tmp/go-build -gno-record-gcc-switches"
  

Спасибо за внимание

Комментарии:

1. поделитесь go env результатами, пожалуйста.

2. добавлено в сообщение, спасибо

3. вы не установили GOBIN переменную env. Возможно, вам также потребуется добавить этот путь к вашей переменной PATH. Попробуйте.

4. кстати, я рекомендую использовать что-то вроде GVM, чтобы помочь вам управлять несколькими версиями. По крайней мере, обновлять настройки go в будущем (каждые 6 месяцев) будет очень просто.

5. решается с помощью export GOBIN=$HOME/go/bin переменной env. Спасибо, mh-cbon! Я взгляну на GVM

Ответ №1:

У меня это работает…

Я добавляю в домашнюю папку новую папку с именем go, что я делаю, это добавляю это

 export PATH=$PATH:/opt/golang/go/bin:$HOME/go/bin
  

Я установил go в / opt / golang /, чтобы иметь доступ к двоичным файлам, я также добавляю путь к корзине для дополнений, надеюсь, это решит проблему и для вас