Go 설치 웹 페이지에서
아카이브를 다운로드하고 /usr/local에 추출하여 /usr/local/go에 Go 트리를 만듭니다. 예를 들어:
tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz
설치에 적합한 아카이브 파일을 선택하십시오. 예를 들어 Linux에 64비트 x86용 Go 버전 1.2.1을 설치하는 경우 필수 아카이브 이름은 go1.2.1.linux-amd64.tar.gz입니다.
(일반적으로 이러한 명령은 루트 또는 sudo를 통해 실행해야 합니다.)
PATH 환경 변수에 /usr/local/go/bin을 추가합니다. /etc/profile(시스템 전체 설치의 경우) 또는 $HOME/.profile에 다음 줄을 추가하면 됩니다.
export PATH=$PATH:/usr/local/go/bin
내 디렉터리 계층 구조 /usr/local
는 다음과 같습니다.
$ ls /usr/local/
bin etc games include lib man sbin share src texlive
추출된 Go 바이너리 배포판이 적합한가요 /usr/local
? Go의 바이너리 배포판을 복사하는 것이 좋은 습관입니까 /usr/local/
?
그렇지 않다면 어디에 배치할지 제안해 주실 수 있나요? /opt
내 홈 디렉토리가 더 좋은 곳인가요?
감사해요.
답변1
내 제안은아니요Go 언어 웹사이트의 설치 지침을 따르세요.
대신 배포판에 적합한 패키지를 설치하십시오.
예를 들어 Debian은 golang 1.6.1과 수백 개의 Go 라이브러리를 패키지로 제공합니다.
우분투에도 1.6.1이 있습니다. http://packages.ubuntu.com/xenial/devel/golang
apt-get install golang
컴파일러, 문서 및 golang 소스 코드가 설치됩니다.
apt-cache show -n golang
패키지 이름에 "golang"이 포함된 다른 모든 패키지 목록을 제공합니다. 언뜻 보면 데비안만큼 많지는 않습니다.
실제로 직접 컴파일하고 설치해야 한다면 최소한 다음을 사용해야 합니다 checkinstall
.
CheckInstall은 설치 스크립트("make install", "make install_modules", "setup" 등)에 의해 생성되거나 수정된 모든 파일을 추적하고 표준 바이너리 패키지를 빌드하여 시스템에 설치하므로 배포 버전을 사용하여 제거할 수 있습니다. 표준 패키지 관리 유틸리티 중 하나입니다.
컴파일한 Go 라이브러리와 함께 사용하세요.
답변2
~에 따르면FHS, /usr/local/
정확히 이 목적을 위해:
/usr/local 계층 구조는 소프트웨어를 로컬로 설치할 때 시스템 관리자가 사용합니다.
이것대안은 /opt
:
/opt
추가 애플리케이션 패키지 설치를 위해 예약되어 있습니다.
설치할 패키지/opt
에는 별도의 디렉터리 트리에 정적/opt/<package>
파일이 있어야 합니다/opt/<provider>
.
에서도 /usr/local
별도의 트리는 서로 다른 패키지를 서로 분리하여 유지하고 업데이트, 삭제를 단순화하고 동일한 프로그램의 여러 버전을 유지 관리하는 데 유용합니다. 둘 중 하나를 선택하는 것은 /usr/local
주로 시스템 관리자에게 달려 있습니다.
답변3
일반적으로 설치 지침을 따르는 것이 좋습니다.
내 생각엔 Go 항목을 . 아래에 두는 것이 좋은 생각인 것 같습니다 /usr/local/go
. 이렇게 하면 해당 디렉터리 계층 구조를 삭제하여 업데이트하기 전에 전체 설치를 쉽게 제거할 수 있습니다.
쉘 변수에 적절한 경로를 추가하는 한, 원하는 /opt
대로 또는 원하는 위치 /opt/go
에 변수를 넣는 것을 막을 수 없습니다./sw
$HOME/local
PATH
소프트웨어가 아래에 자체 계층 구조를 만드는 것은 전례가 없습니다 /usr/local
. 일부 BSD 시스템에서 GNU를 설치하면 등 (접두사가 붙은 일반 유틸리티 ) 과 같은 프로그램이 에서 로의 심볼릭 링크 로 coreutils
생성됩니다 ./usr/local/gnu
gls
gcp
grm
g
/usr/local/bin
/usr/local/gnu/bin