우분투에서 GOPATH 환경 변수를 어떻게 설정합니까? 어떤 파일을 편집해야합니까?
나는 노력하고있다 go get
:
go get github.com/go-sql-driver/mysql
다음 오류로 실패합니다.
package github.com/go-sql-driver/mysql: cannot download, $GOPATH not set. For more details see: go help gopath
내가 할 때 go env
Go 값 목록이 아래와 같이 표시됩니다.
ubuntu@ip-xxx-x-xx-x:~$ go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr/lib/go"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CGO_ENABLED="1"
GOPATH가 명확하게 설정되어 있지 않습니다. 어떻게 그리고 어떻게 설정합니까?
이 오류를 언급하는 많은 스레드가 있지만 내 질문에 대한 답변을 제공하는 스레드가 없습니다.이 경로의 값을 제공하기 위해 어떤 파일을 편집해야합니까?
2018+ 답변 :
2018 년 이전 답변 :
~ / .bashrc에 다음 줄을 추가하면 지속됩니다. 그러나 내 샘플에서 $ HOME / go 대신 GOPATH로 원하는 다른 경로를 사용할 수 있습니다 .
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
우분투 14.04
export GOPATH=$HOME/go
또한이 문자열을 파일에 추가 할 수 있습니다
$HOME/.bashrc
GOPATH는 새로 작성된 빈 디렉토리로 설정해야합니다. 이것은 "워크 스페이스"로, 패키지 등을 다운로드하는 곳입니다. ~ / .go를 사용합니다.
예를 들면 다음과 같습니다.
mkdir ~/.go
echo "GOPATH=$HOME/.go" >> ~/.bashrc
echo "export GOPATH" >> ~/.bashrc
echo "PATH=\$PATH:\$GOPATH/bin # Add GOPATH/bin to PATH for scripting" >> ~/.bashrc
source ~/.bashrc
출처 : http://www.larry-price.com/blog/2013/12/15/setting-up-a-go-environment-in-ubuntu-12-dot-04/
예를 들어, 패키지를 설치 한 후 우분투 인 경우 :
$sudo apt install golang -y
~ / .bashrc에 다음 줄을 추가하십시오 (사용자의)
export GOROOT=/usr/lib/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export GOPATH=/path/desired/here
파일을 편집 할 필요가 없습니다. 위 명령을 사용하여 Go 환경 변수를 직접 편집 할 수 있습니다.
모듈 이동 [새로운 방법]
Go 1.11 이후 : 이제 Go 모듈 지원 ( 이전에 vgo라고 함 )이 있으므로 더 이상 GOPATH를 사용할 필요가 없습니다. 그러나 이것은 여전히 실험적인 기능입니다.
예를 들어, 시스템의 모든 디렉토리 ($ GOPATH 외부)로 이동하여 그곳에서 새 Go 모듈을 초기화 할 수 있습니다. GOPATH가 필요하지 않습니다.
디렉토리에있는 동안 이 작업을 한 번 수행해야합니다 .
go mod init github.com/youruser/yourrepo
그런 다음 Go는 디렉토리를 모듈 루트로 가정합니다. 원하는만큼 모듈을 만들 수 있습니다. GOPATH는 곧 역사가 될 것 입니다.
GOPATH 작업을 고집한다면 다음 사항에주의하십시오.
Go 1.8 이후 : GOPATH 또는 GOROOT를 설정할 필요가 없습니다. GOPATH는 기본적으로 사용자 / 홈 디렉토리에 있습니다.
GOPATH가 설정되어 있지 않으면 Unix 시스템에서는 $ HOME / go, Windows에서는 % USERPROFILE % \ go로 간주됩니다. 사용자 정의 위치를 작업 공간으로 사용하려는 경우 GOPATH 환경 변수를 설정할 수 있습니다.
최단 및 현재 솔루션.
이 코드를 터미널에 작성하십시오.
export GOPATH=path/to/your/gopath/directory
참고 : 이것은 모든 새 터미널 창이나 시스템을 다시 시작할 때마다 재설정됩니다.
지속성을 유지하려면 쉘에 따라 아래 코드를 파일 .zshrc
또는 .bashrc
파일에 붙여 넣으십시오 . 홈 디렉토리에있는 파일들 . 아래와 같습니다.
export PATH=path/to/some/other/place/composer/for/example
export GOPATH=path/to/your/gopath/directory
export PATH=$PATH:$GOPATH/bin
나중에 GOPATH가 필요합니다. 에 추가하십시오 ~/.bashrc
.
환경 변수 (예 : Java, Go 등)를 수정해야하는 항목을 설정 한 경우 이는 매우 익숙합니다.
Go 경로로 다음 디렉토리 구조가 있다고 가정합니다.
\---[folder name]
+---bin
+---pkg
\---src
- 새로운 터미널을 열다
- 유형
sudo nano /etc/environment
- 발견
PATH=...
과 그것의 끝에 가서 콜론을 추가:
한 후 전체에 붙여 마지막 경로 후go path
예/home/user/gocode
그리고 당신은, 이것이 시스템을 통해 지속되도록해야합니다.
이것이 다음을 사용하여 Ubuntu 15.10 에서 나를 위해 일한 것입니다 fish shell
.
# ~/.config/fish/config.fish
set -g -x PATH /usr/local/bin $PATH
set -g -x GOPATH /usr/share/go
그런 다음 go
폴더 에 대한 권한을 변경해야 했습니다 (루트로 설정되었습니다)
sudo chown <name>:<name> -R /usr/share/go
Go 1.8 (2017 년 2 분기)을 사용하면 기본값을 GOPATH
설정 한 경우 파일을 편집 할 필요가 없습니다 (설정된 값).
$HOME/go
문제 17262 및 관련 트위터 투표 에 대한 의견을 확인할 수 있습니다 .
기본값을 선택하면 다음
GOPATH
과 같이 말할 수 있기 때문에 문서를 더 쉽게 만들 수 있습니다.
$ go get github.com/foo/bar
에
github.com/foo/bar
repo를 확인합니다$HOME/go/src/github.com/foo/bar
.우리는 env var를 설정 해야하는 이민자를 혼란스럽게 할 필요가 없습니다. 페이지 하단에 작은 괄호를 넣으면됩니다.
$HOME/go
이동 작업 공간의 기본 경로입니다.
이 경로를 변경하려면GOPATH
변수를 원하는 것으로 설정하십시오 .
go path는 디렉토리를 만들고 GOPATH 이름으로 전역 경로 변수를 환경에 설정하려는 모든 곳이 될 수 있습니다.
mkdir ~/go
export GOPATH=~/go
go get github.com/go-sql-driver/mysql
나의 이동 환경은 당신과 비슷해 보였습니다.
$go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr/lib/go-1.6"
GOTOOLDIR="/usr/lib/go-1.6/pkg/tool/linux_amd64"
GO15VENDOREXPERIMENT="1"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"
GOPATH를 / usr / lib / go 로 설정하여 해결했습니다 . 사용해보십시오.
export GOPATH=/usr/lib/go
export PATH=$PATH:$GOPATH/bin
GOPATH 는 작업 공간 위치에 대한 환경 변수입니다. GOROOT 는 설치 디렉토리의 환경 변수입니다. 설치 시간 동안 GOROOT 및 GOPATH 가 자동으로 설정 되지만 (버그가없는 경우) 수동으로 지정하려면 아래 프로세스를 따르십시오. 또한 자세한 정보는 GO wiki page를 참조하십시오 .
그것은 더 나은 설정하는 것입니다 GOPATH 예를 들어, 홈 디렉토리, 내부의 디렉토리에 $ HOME은 / % USERPROFILE % \ (Windows)를 이동 이동합니다.
- 이것은 macOS Sierra, ver. JetBrains가 Go 프로그래밍 용 IDE로 도입 한 Gogland-EAP에도 10.12가 포함되어 있습니다.
터미널 유형
vim ~/.profile
터미널의 열린 문서에서 i를 누르고 다음 경로를 추가하십시오.
GOPATH=/path/to/a/directory/inside/home/directory
GOROOT=/path/to/you/go/library
PATH=$PATH:$GOPATH:$GOROOT:$GOROOT/bin
ESC를 누르고 : x를 입력 하십시오 . 마지막으로 터미널을 다시 시작 ( 닫기 및 열기 )하거나 로그 아웃 한 후 다시 로그인 해야합니다.
- Windows 및 Linux 구성의 경우 GOPATH-Golang 설정 에서 Githab의 Go Wiki 페이지를 참조하십시오 .
주의 GOROOT 와 GOPATH 를 동일한 디렉토리로 설정하지 마십시오 . 그렇지 않으면 경고가 표시됩니다.
이것은 가장 성가신 일이었습니다. 시간을 절약하기 위해.
IF go가 루트 사용자로 설치되었습니다. 시스템의 bash_profile 텍스트 파일 ~ / .bash_profile의 루트 사용자는 go 설치 디렉토리에 $ GOROOT를 지정하고 go / src 디렉토리에 $ GOPATH를 지정해야합니다.
...$# sudo su
...$# vi ~/.bash_profile
***Story continues in vi editor***
GOROOT=$GOROOT:/usr/local/go
GOPATH=$GOPATH:/usr/local/go/src
...
[your regular PATH stuff here]
...
이진 경로가 .bash_profile의 경로에 있는지 확인하십시오.
PATH = $ PATH : $ HOME / bin : / usr / local / bin : / usr / local / go / bin
이 PATH는 문자열만큼 길어야합니다. 콜론으로 구분하여 새 항목을 추가하려면 다음을 수행하십시오.
vi 편집기를 종료하고 bash 프로파일 저장 (: wq는 쓰기 및 종료를 나타냄)
[esc]
[shift] + [:]
:wq
터미널에서 로그 아웃했다가 다시 로그인하여 프로필을 다시 시작해야합니다. 또는 내보내기를 사용하여 시작하면됩니다.
...$# export GOPATH=/usr/local/go/src
다음과 같은 환경을 확인할 수 있습니다.
...$# go env
예이!
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/usr/local/go/src"
GORACE=""
GOROOT="/usr/local/go"
이제 sudo 및 go를 사용하여 go / src 내부에 디렉토리를 다운로드하고 작성할 수 있으며 수행하려는 작업으로 내려갈 수 있습니다.
예
# sudo go get github.com/..
이제 다른 문제가 발생합니다. git가 설치되지 않았을 수도 있습니다. 그것은 또 다른 모험입니다 .. :)
Fedora 20 컴퓨터에서 ~ / .bashrc에 다음 줄을 추가했습니다.
export GOROOT=/usr/lib/golang
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
GOPATH 환경 변수는 작업 공간의 위치를 지정합니다. 기본적으로 홈 디렉토리 안에 go라는 디렉토리가 있으므로 Unix의 경우 $ HOME / go, Plan 9의 경우 $ home / go, Windows의 경우 % USERPROFILE % \ go (일반적으로 C : \ Users \ YourName \ go)입니다. 다른 위치에서 작업하려면 GOPATH를 해당 디렉토리의 경로로 설정해야합니다. 다른 일반적인 설정은 GOPATH = $ HOME을 설정하는 것입니다. GOPATH는 Go 설치와 동일한 경로가 아니어야합니다.
예를 들어 Jetbrains Webstorm에서 코딩하는 경우 ( Go 플러그인 사용 )로 설정 GOPATH
하는 것이 /Users/<user>/WebstormProjects
좋습니다.
간단히 말해서 Go 프로젝트가 상주 할 위치로 설정하십시오.
또 다른 해결책 : 모든 GO*
환경 변수를go env
.bashrc :
eval $(go env | grep '^GO[A-Z0-9_]*=' | while read setenv; do
echo "export $setenv; "
done 2> /dev/null)
[[ -n $GOPATH ]] || export GOPATH="$HOME/go/bin"
[[ -n $GOROOT ]] || export GOROOT=/usr/bin/go
export PATH="$PATH:$GOPATH/bin:$GOROOT/bin"
~/.bash_profile
다음 줄을 추가하도록 편집하십시오 .
$ export GOPATH=$HOME/work
편집기를 저장하고 종료하십시오. 그런 다음~/.bash_profile
$ source ~/.bash_profile
참고 : go install이 실행될 때 바이너리 파일을 생성하도록 GOBIN 경로를 설정하십시오.
$ export GOBIN=$HOME/work/bin
export GOROOT=/usr/lib/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin
그리고 당신은 $ go env로 확인하고 싶을 수도 있습니다
이 스크립트는 Gopath를 전환하는 데 도움이됩니다. https://github.com/buffonomics/goswitch
다른 사람들이 제안한 것처럼 "내보내기"솔루션을 사용할 수 있습니다. 영구적 인 편의를 위해 다른 솔루션을 제공하고 싶습니다 .Go 명령을 실행할 때 모든 경로를 GOPATH로 사용할 수 있습니다.
첫째, 당신은라는 이름의 작은 도구 다운로드해야합니다 gost
: https://github.com/byte16/gost/releases를 . 우분투를 사용하는 경우 Linux 버전을 다운로드 할 수 있습니다 ( https://github.com/byte16/gost/releases/download/v0.1.0/gost_linux_amd64.tar.gz ).
그런 다음 아래 명령을 실행하여 압축을 풉니 다.
$ cd /path/to/your/download/directory
$ tar -xvf gost_linux_amd64.tar.gz
당신은 실행 파일을 얻을 것 gost
입니다. /usr/local/bin
편리한 사용 을 위해 옮길 수 있습니다 .
$ sudo mv gost /usr/local/bin
GOPATH로 사용하려는 경로를 경로 공간 gost
유지 에 추가하려면 아래 명령을 실행하십시오 . 나중에 사용할 경로 이름을 경로에 제공해야합니다.
$ gost add foo /home/foobar/bar # 'foo' is the name and '/home/foobar/bar' is the path
원하는 형식으로 Go 명령을 실행하십시오.
gost goCommand [-p {pathName}] -- [goFlags...] [goArgs...]
예를 들어 GOPATH 로 실행하려면 다음 go get github.com/go-sql-driver/mysql
과 /home/foobar/bar
같이하십시오.
$ gost get -p foo -- github.com/go-sql-driver/mysql # 'foo' is the name you give to the path above.
GOPATH를 설정하고 명령을 실행하는 데 도움이됩니다. 그러나 당신이에 경로를 추가 한 것을 기억 gost
의 pathspace을 . 의 하위 디렉토리 수준에 있다면 /home/foobar/bar
아래 명령을 실행하여 짧게 동일한 작업을 수행 할 수도 있습니다.
$ gost get -- github.com/go-sql-driver/mysql
gost
GOPATH를 관리하고 Go 명령을 실행하는 데 도움이되는 간단한 Go of Tool입니다. 이 명령을 사용하여 다른 Go 명령을 실행하는 방법에 대한 자세한 내용은을 실행하면 gost help goCmdName
됩니다. 예를 들어에 대한 자세한 내용을 보려면 install
아래에 단어를 입력하십시오.
$ gost help install
프로젝트의 README에서 자세한 내용을 확인할 수도 있습니다. https://github.com/byte16/gost/blob/master/README.md
사용하는 터미널 (bash 또는 zsh)을 기반으로 PATH를 업데이트해야합니다.
- 터미널 즉의 쉘 스크립트 파일 열기
~/.bashrc
또는~/.zshrc
편집기에서
vi ~/.zshrc (or) code ~/.zshrc
- 아래 GOPATH를 이미 찾은 경우 아래 줄을 추가하십시오.
export GOPATH=$HOME/go:/$HOME/projects/go
여기 :
에서 시스템의 GO 프로젝트의 다른 위치에서 GOPATH
환경 변수 /path/1:path/2:path/3
등 으로 세미콜론으로 구분 된 하나 이상의 경로를 추가 할 수 있습니다 .
필자의 경우 위에 표시된 것처럼 하나는 루트 $HOME/go
에서 하나는 프로젝트 디렉토리에서 하나는 두 개의 경로를 추가했습니다.:/$HOME/projects/go
'Programing' 카테고리의 다른 글
Visual Studio에서 현재 프로젝트를 빌드하기위한 표준 키보드 단축키가 있습니까? (0) | 2020.04.12 |
---|---|
인쇄 스타일 시트 디버깅에 대한 제안? (0) | 2020.04.12 |
TFS 바인딩을 완전히 제거하는 방법 (0) | 2020.04.12 |
정규식-무엇이든 일치 (0) | 2020.04.12 |
json.dumps vs flask.jsonify (0) | 2020.04.12 |