시스템에 /usr/bin/perl
와 가 모두 있는 경우 /usr/local/bin/perl
어느 것을 사용해야 합니까?
답변1
BSD 패키징과 같은 일부 시스템에서는 /usr/local/bin
패키지가 실행 파일을 설치하는 디렉터리일 수 있습니다. 이 경우에는 더 새롭지만(어쩌면 더 좋을 수도 있음) /usr/bin/perl
더 안정적입니다.
perl -V
를 사용하여 어떤 버전 번호가 최신인지 확인할 수 있습니다 . 때로는 (다중 사용자 시스템에서) 콘텐츠가 /usr/local/bin
실제로 최신이 아닐 수도 있습니다.
일반적인 절충안은 env
shebang/hashbang 줄을 사용하여 사용자가 결정하도록 하는 것입니다(그러나 다시 말하지만,길시스템에 따라 다를 수 있습니다 env
.) shebang 줄은 스크립트의 첫 번째 줄을 나타내며 다음 중 하나와 유사할 수 있습니다.
#!/usr/bin/perl
#!/usr/bin/perl -w
#!/usr/bin/env perl
처음 두 개는 Perl이 실행되는 디렉터리를 지정합니다. 보너스로 이 양식은 -w
(경고 켜기)와 같은 전달 옵션을 허용합니다. 마지막 줄에서는 프로그램을 사용하여 사용자의 환경 변수에 나열된 디렉토리를 검색하여 env
첫 번째 항목을 선택합니다 .perl
PATH
다음과 같은 스크립트를 실행할 수도 있습니다.
perl myscript
(예를 들어) 거기에 나열된 디렉토리 중 env
첫 번째 항목을 선택하도록 쉘에 지시합니다.perl
PATH
분명히
./perl myscript
물론 재정의될 것입니다 PATH
. 그러나 Shebang 라인이 있는 스크립트는 대부분의 사람들이 Perl 스크립트를 사용하는 방식입니다(Perl 원라이너는 또 다른 이야기입니다).
추가 자료:
- /usr/bin/env perl - 쿼리, Sherbon 라인 참조
- /usr/bin과 Linux의 /usr/local/bin
- 포장(7), FreeBSD 패키지 시스템
/usr/local/bin
답변2
누구를 위한 것인가요? 귀하만 해당된다면 귀하가 가지고 있는 Perl의 두 버전이 모두 최신 버전이라면 문제가 되지 않습니다. 업무환경을 위한 것인가? 그렇다면 배포 정책을 확인하세요. 답변이 있을 수 있습니다. 대중에게 배포하는 경우 패키지 유형에 따라 다양하게 사용하는 것이 좋습니다. 특히 debs(debian 가이드에 따름) 및 rpms(Red Hat은 명시적으로 rpms 설치를 허용하지 않기 때문에)에 대해 /usr/bin/perl을 사용하는 것이 좋습니다. /usr/local), 그러나 /usr/bin/env perl은 임의의 UNIX 시스템에서 작동할 가능성이 가장 높기 때문에 tar 및 shar 패키지용입니다.