Go 바이너리 배포판을 "/usr/local/"에 복사하는 것이 좋은 습관입니까? [폐쇄]

Go 바이너리 배포판을 "/usr/local/"에 복사하는 것이 좋은 습관입니까? [폐쇄]

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" 등)에 의해 생성되거나 수정된 ​​모든 파일을 추적하고 표준 바이너리 패키지를 빌드하여 시스템에 설치하므로 배포 버전을 사용하여 제거할 수 있습니다. 표준 패키지 관리 유틸리티 중 하나입니다.

홈페이지:http://checkinstall.izto.org

컴파일한 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/localPATH

소프트웨어가 아래에 자체 계층 구조를 만드는 것은 전례가 없습니다 /usr/local. 일부 BSD 시스템에서 GNU를 설치하면 등 (접두사가 붙은 일반 유틸리티 ) 과 같은 프로그램이 에서 로의 심볼릭 링크 로 coreutils생성됩니다 ./usr/local/gnuglsgcpgrmg/usr/local/bin/usr/local/gnu/bin

관련 정보