포장 된 Perl 분포 대신 딸기 Perl을 사용하기 위해 Cygwin 환경을 어떻게 수정하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/463947

문제

나는 현재 사용하고있다 딸기 perl 내 주요 Perl 분포로. 그러나 Cygwin을 통해 Perl 호출을하는 일부 응용 프로그램이 있습니다. 이들은 일반적으로 Cygwin으로 패키지 된 Perl 버전을 호출하고 Cygwin의 Lib 폴더 만보고 있기 때문에 실패합니다. Cygwin 환경을 어떻게 딸기 Perl에 전화하고 대신 C :/Strawberry/Perl/Lib Dirs를 사용) 어떻게 수정할 수 있습니까?

도움이 되었습니까?

해결책

설정 프로그램을 사용하여 Cygwin에서 Perl을 제거하면 기본적으로 Strawberry Perl을 사용합니다.

Cygwin에서 Perl을 제거 할 수없는 경우 Strawberry에서 Perl 실행 파일에 대한 상징적 링크를 만들 수 있습니다.

Cygwin Shell에서 다음 명령 세트를 사용하십시오.

$ mv /usr/bin/perl /usr/bin/perl-cygwin
$ ln -s /cygdrive/c/strawberry/perl/bin/perl.exe /usr/bin/perl

이것은 기본 딸기 Perl 설치 프로그램을 사용했다고 가정합니다. 업데이트 perl.exe 그에 따라 다른 곳에 설치 한 경우 위치.

PERL 버전을 확인하여 링크가 올바르게 작동하는지 확인하십시오.

$ perl -v

말해야합니다 이것은 perl, (버전) MSWIN32-X86-MULTI-STHREAD 용으로 제작되었습니다. (또는 이와 유사) 및 ~ 아니다 Cygwin-Thread-Multi-64int 용으로 제작되었습니다.

다른 팁

딸기 디렉토리를 먼저 놓기 위해 길을 변경할 수 있습니다. 딸기는 길 끝에 디렉토리를 넣어서 친절하게 노력합니다. 그러나 .zip 파일에서 설치 한 경우 경로가 전혀 변경되지 않았습니다.

당신은/usr/bin/perl을 움직일 수 있지만, Cygwin이 Perl이라고 생각하는 것을 업데이트하려고 할 때 깨지기 때문에 나쁜 생각입니다. 나는 이번 주에 그 일이 일어 났고 시스템 설정을 중단하고 내 자신의 물건을 완전히 별도로 설치할 때까지 Mac에서 나에게 일어났습니다.

내가 추가 할 수있는 한 가지 좋은 점은 경로에서 올바른 Perl을 먼저 올리면 CMD 쉘에서 딸기 Perl이 실행되는 상태에서 설치 한 사이트 별 CPAN 모듈을 처리해야한다는 것입니다.

"어떤 Perl"은 당신의 친구입니다.

이 문제가 발생하면 Perl5Lib 환경 변수를 설정할 수 있지만 필요하지 않아야합니다.

나는 여전히 "/cygdrive/d/data/myfile.txt"가 아닌 "d : data myfile.txt"에 대한 Perl 스크립트에 매개 변수로 DOS 스타일 파일 경로를 전달합니다. 이상하게 도이 경로 표기법의 혼합은 다음과 같습니다.

bash> /cygdrive/d/scripts/myscript.pl d : data myfile.txt

이것들 중 다수는 좋은 솔루션이지만, 두 번 이상 수정할 필요가없는 쉬운 솔루션을 취합니다.

.bashrc 파일에서 줄을 추가/수정하기 만하면됩니다.

# Prepend strawberry perl to cygwin's path
export PATH=/cygdrive/C/Tools/Perl/perl/bin:$PATH

쉘에서 .bashrc 파일 (또는 새 쉘을 시작) 및 프로그램을 실행하십시오.

source ~/.bashrc
perl script.pl 

이것은 아마도 선호하는 솔루션이 아니지만 #을 수정할 수 있어야합니다! 선:

#!/cygdrive/c/strawberry/perl/bin/perl5.10.0

나는 항상 /usr /bin에있는 것에 의존하기보다는 명백한 위치와 Perl의 설치를 언급합니다.

첫 번째 Perl 스크립트를 수정하는 데 사용하는 두 개의 스크립트가 있습니다. 오른쪽 내 $ 경로에서 첫 번째 Perl에 대한 하드 코드 지금, ENTPERL 라인을 #!/usr/bin/env perl로 변경하므로 스크립트가 호출 될 때만 사용할 Perl 만 선택됩니다. Cygwin (일반적으로 Unix 쉘에서)에서 실제로 잘 작동합니다.

길을 엉망으로 만들고 싶지 않거나 영구적 인 일을하고 싶다면 쉬운 일이 있습니다. 임시 해킹. Cygwin Sh 프롬프트에 "Perl"을 입력하십시오. 그것은 실행 순서대로 경로에서 볼 수있는 모든 perl.exe를 나열합니다. 사용하려는 Perl 전에 나열된 것을보고 싶지 않은 이름의 이름을 변경하십시오. 그러나 끝났을 때 다시 변경하거나 도로 아래로 몇 가지 문제가있을 수 있습니다.

근처에 Cygwin 기계가 없어서 테스트 할 수 없지만 스크립트로 Perl 명령을 프론트 엔드 할 수 있습니다. Cygwin 아래로 가서 Perl.exe를 Perl-와 같은 다른 것으로 옮길 수 있습니다. org.exe, 그런 다음 다른 perl을 동일한 인수로 실행하는 쉘 스크립트를 설정하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top