#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 /, чтобы иметь доступ к двоичным файлам, я также добавляю путь к корзине для дополнений, надеюсь, это решит проблему и для вас