구성 스크립트에서 /usr/bin/env를 하드코딩합니다.

구성 스크립트에서 /usr/bin/env를 하드코딩합니다.

나는 /usr 디렉토리 없이 Linux 시스템을 구축하고 있습니다. 툴체인을 작동시키는 것은 놀라울 정도로 쉽지만 많은 자동* 스크립트 때문에 짜증이 납니다. 구성 등이 env종종 /usr/bin.

한 가지 해결 방법은 빌드 프로세스 중에 이를 수행하는 것입니다. 그러나 이는 분명히 미학적으로 매력적이지 않으며 ln -sv .. /usr최종 시스템으로의 경로가 누출될 위험이 있습니다. /usr(프로덕션 환경에 네트워크가 설치될 예정이며 /usr기본 시스템이 네트워크가 존재한다는 사실조차 알리고 싶지 않습니다.)

잘못된 자동 도구를 설치한 걸까요, 아니면 이것은 단지 구성이 자주 하는 짜증나는 가정일까요? env투자하지 않음으로써 FHS를 위반하는 것 입니까 /usr/bin? (이것은 나에게 큰 문제가 되지 않습니다. 나는 이미 /incand 를 가지고 있어서 그것을 망쳤습니다 /share.)

답변1

보기 흉 하다고 생각할 수도 있지만 /usr그것이 우주가 작동하는 방식입니다. 거의 모든 Unix에 이 기능이 있습니다 /usr/bin/env. 제가 아는 한 이 기능이 없는 기존 Unix는 SCO OpenServer뿐이며 기존 규모도 크지 않습니다. 그렇지 않다면 /usr/bin/env귀하는 FHS를 위반할 뿐만 아니라 매우 일반적인 관행을 위반하는 것입니다. /usr/bin/env표준이 작성되지 않은 경우에도 표준 위치입니다. 이는 구성 가능한 위치가 아니며 /usr/bin/env모든 사람이 존재한다고 가정할 수 있는 위치입니다.

좋든 싫든 해결책은 일정을 잡는 것입니다 /usr/bin/env. 계층 구조를 제거하는 것은 /usr괜찮지만 이렇게 하려면 에 /usr대한 심볼릭 링크를 만드십시오 /.

/usr네트워크를 통해 설치 하는 경우 :

  • /usr심볼릭 링크가 포함된 디렉토리를 만듭니다 bin -> ../bin.
  • 마운트하는 파일 시스템에서 /usr해당 파일이 bin/env심볼릭 링크 /bin/env또는 워커 인지 확인하십시오 env.

답변2

/usr/bin이것env거의 모든 Linux 및 일부 UNIX(OpenBSD 포함)의 위치입니다. 많은 스크립트는 사용자가 , , , ... PATH에 대해 설정한 위치를 존중하기 위해 이 shebang을 사용합니다.bashshpythonperl


추가 정보

잘못된 자동화 도구를 설치했나요?

"툴체인"에 대한 더 많은 정보가 필요하다고 생각합니다.

관련 정보