사용자 정의 bash 스크립트를 설치하기에 좋은 영구적 장소는 어디입니까?


32

유용성이 많은 클로저 프로그래밍 언어의 bash 스크립트 인 "leiningen"을 설치하려고합니다 ... ...하지만 리눅스에서 실행 가능한 스크립트를 -put-하기에 적합한 지 확실하지 않습니다. 시스템을 영구적으로 안정적으로 사용할 수 있도록합니다.

/ home의 어느 곳에서나 의미가 있다고 생각하지 않지만 어떤 디렉토리 / 디렉토리를 사용해야하는지 모르겠습니다.

/ usr / share?


답변:


45

(참고 : 이 게시물 ~과 같이 번역 /home/user)

개인적으로 모든 맞춤형 시스템 스크립트 /usr/local/bin와 모든 개인 배쉬 스크립트를에 넣었 습니다 ~/bin. 내가 설치하는 프로그램은 /usr/local/bin디렉토리에 너무 적기 때문에 혼란스럽지 않으며 이미 $PATH대부분의 컴퓨터 변수에 있습니다.

/usr/local/bin시스템 경로에 추가하려면 (아직없는 경우) 다음을 추가하십시오 /etc/profile.

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

~/bin사용자의 경로에 추가 하려면 다음을 추가 하십시오 ~/.bash_profile.

PATH=$PATH:$HOME/bin
export PATH

때로는 기본 .bash_profile파일이 있음을 자동으로 추가하는 if 문이됩니다 ~/bin$PATH존재하는 경우를, 그래서를 작성 ~/bin하고 당신은 이미이 작업을 수행합니다 있는지 확인하기 위해 새 터미널을 엽니 다.


BSD는 기본적으로이 작업을 수행합니다.
Chris S

@Chris : BSD는 많은 것들을 / usr / local / bin에
넣었습니다

bash 스크립트와 시스템 스크립트의 차이점은 무엇이며 두 스크립트를 분리 한 이유가 있습니까?
Hashim

@Hashim 물론 Trey와 대화 할 수는 없지만 개인 요구에 맞게 개발 한 도구는 다른 사람이 어려움을 겪고있는 문제를 해결하거나 다른 시스템 전체 설치에 따라 시스템 도구를 "학습"하는 경향이 있습니다. 이 도구 중 하나에. 시스템 전체에 무언가를 설치하는 임계 값이 대부분의 프로그래머에게는 다소 높다고 생각합니다. 또한 공유하는 도구에는 많은 개발자가 달리 작성하지 않는 문서 등이 있어야합니다.
트리플 리

따로, export변수를 여러 번 사용할 필요가 없습니다 (아마도 시스템이 이미 PATH내보내기 로 표시되어 있으므로 직접 할 필요는 없습니다).
트리플 리

9

/ usr / local /은 실제로 올바른 장소이고 / opt는 실제로 타사 응용 프로그램을위한 것입니다. "/ opt는 애드온 응용 프로그램 소프트웨어 패키지 설치를 위해 예약되어 있습니다." 이것은 파일 시스템 계층 표준의 일부입니다.

/ opt에 대한 자세한 내용은 http://www.pathname.com/fhs/pub/fhs-2.3.html 을 참조 하십시오 .

/ usr / local /의 경우 "시스템 관리자가 사용"하기위한 것입니다. 그 안에있는 것들을 잊지 말고 문서화하십시오.


제공 한 링크는 "/ opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib 및 / opt / man 디렉토리는 로컬 시스템 관리자 용으로 예약되어 있습니다"라고 알려줍니다. / usr / local에 대해서는 아무것도 없습니다. / usr / local / share 만 언급됩니다. 반면에 컴파일 된 프로그램은 일반적으로 Linux의 / usr / local에 설치됩니다. / opt / bin이 시스템 관리자가 사용하기에 더 좋은 장소라고 생각하지 않습니까?
raacer

1
@raacer 내 경험은 /usr/local이름에서 알 수 있듯이 로컬 관리자 및 /opt유사한 프로세스로 관리되는 상업용 타사 소프트웨어와 같이 공식적으로 배포되지 않은 것들입니다 (업그레이드에서 교체 또는 삭제 될 수 있음) 업스트림)이지만 배포판의 패키지 관리자가 관리하지 않거나 실제로 RPM 또는 .deb패키지 로 배포 되지만 모든 배포판의 정책 및 규칙을 준수하여 구성 및 패키지되지 않았습니다.
트리플 리

1
@raacer이 /usr/local문서의 뒷부분에는 완전히 별도의 섹션 이 있습니다.
트리플 리

@raacer tripleee가 맞습니다. 다음은 링크입니다. pathname.com/fhs/pub/… .. 해당 시스템을 위해 특별히 컴파일 / 빌드되거나 여러 시스템간에 공유되는 올바른 컴파일 된 프로그램 (일반적으로 오픈 소스) 그러나 공유 라이브러리에 크게 의존하고) / usr / local에 설치해야합니다 (기본적으로 / usr의 계층 구조를 반영 함). 자체 라이브러리를 지원하는 다른 시스템 (예 : firefox, userify)으로 컴파일 된 타사 소프트웨어는 / opt로 이동해야합니다.
Jamieson Becker

3

역사적으로 / opt와 같은 것을 사용했습니다. 그것을 가지고 있어야하는 사용자를 위해 $ PATH에 업데이트되어 있으면 아무 문제가 없습니다 (따라서 / home의 모든 것이 나쁜 생각입니다).


2

/usr/share/clojureclojure의 바이너리와 라이브러리를 넣는 일반적인 장소 인 것 같습니다. 왜 알지 못하지만 당연한 것처럼 보입니다. 따라서이 bash 스크립트에 대해 하위 디렉토리를 /usr/local/share/clojure만드는 것이 site좋습니다.

일반적인 요점은 모든 bash 스크립트를 같은 위치에 두지 않고 기능별로 스크립트를 구성하는 것이 더 의미가 있다는 것입니다.


1
/usr/share이것을 사용하는 데 몇 가지 문제가 있습니다 . 우선 share아키텍처 독립적 인 파일을 의미합니다 (즉, 아키텍처간에 공유 됨). 따라서 라이브러리 및 실행 파일은 share디렉토리에 속하지 않습니다 . 둘째 /usr/local, 배포 패키지 관리자 이외의 다른 것을 제외하고는 쓸 수 없습니다 /usr.
kasperd

2

/usr/local"지역"의 의미에 약간의 혼동이 있다고 생각합니다.

알다시피, "로컬"은 "로컬 컴퓨터에서 시작 /로 시작"을 의미하는 것이 아니라, 더 간단하게는 "로컬 컴퓨터에 특정"으로, 로컬 컴퓨터에서 /로 시작될 수도 있고 그렇지 않을 수도 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.