Mountain Lion의 Perl에 내장 된 Mac OS X을 다시 설치하는 방법은 무엇입니까?


8

4 일 전에 Mountain Lion로 업데이트 한 후 펄 스크립트가 더 이상 작동하지 않는다는 것을 깨달았습니다. 따라서 perl이 삭제되었다고 생각했기 때문에 ActivePerl 5.14 (최신 버전)를 설치했습니다. 내 프로그램이 여전히 작동하지 않지만 ActivePerl을 설치 한 후 :

Warning message:
running command 'perl calc.pl' had status 2 
Can't locate Excel/Writer/XLSX.pm in @INC (@INC contains:    
/Library/Perl/5.12/darwin-thread-multi-2level /Library/Perl/5.12 
/Network/Library/Perl/5.12/darwin-thread-multi-2level /Network/Library/Perl/5.12 
/Library/Perl/Updates/5.12.4 /System/Library/Perl/5.12/darwin-thread-multi-2level 
/System/Library/Perl/5.12 /System/Library/Perl/Extras/5.12/darwin-thread-multi-
2level /System/Library/Perl/Extras/5.12 .) at test.pl line 3.
BEGIN failed--compilation aborted at calc.pl line 3.

터미널에서 perl -v를 입력하면 새로 설치된 ActivePerl을 사용한다는 것을 나타냅니다. sudo clan-> Excel :: Writer :: XLSX 설치를 사용하여 누락 된 모듈을 설치했습니다. 그러나 5.12 용이 아니라 ActivePerl 5.14 용으로 설치됩니다.

자신의 Mac OS X Perl 이음새가 여기에 설치됩니다 :

bash-3.2$ ls /Library/Perl/
5.10    5.12    Updates
bash-3.2$ ls /System/Library/Perl/
5.10    5.12    Extras  lib
bash-3.2$

여기에도 버전이 있습니다 :

bash-3.2$ ls /opt/local/lib/perl5/
5.12.4      site_perl   vendor_perl

제거 프로그램을 실행하여 ActivePerl을 삭제하는 것이 가장 좋습니다. 나는 그렇게하고 / opt / local / lib / perl5의 site_perl 디렉토리뿐만 아니라 5.12.4도 제거했습니다.

그런 다음 cpan을 사용하여 XLSX :: Writer 모듈을 다시 설치하고 싶었습니다. 그런 다음 이전 perl 디렉토리에 설치되었다고 생각했습니다. 그러나 cpan을 실행하면 다음 오류가 발생합니다.

bash-3.2$ sudo cpan
Can't locate strict.pm in @INC (@INC contains:    
/opt/local/lib/perl5/site_perl/5.12.4/darwin-multi-2level 
/opt/local/lib/perl5/site_perl/5.12.4 
/opt/local/lib/perl5/vendor_perl/5.12.4/darwin-multi-2level 
/opt/local/lib/perl5/vendor_perl/5.12.4 /opt/local/lib/perl5/5.12.4/darwin-multi-
2level /opt/local/lib/perl5/5.12.4 /opt/local/lib/perl5/site_perl 
/opt/local/lib/perl5/vendor_perl/5.12.3/darwin-multi-2level 
/opt/local/lib/perl5/vendor_perl/5.12.3 /opt/local/lib/perl5/vendor_perl .) at 
/opt/local/bin/cpan line 5.
BEGIN failed--compilation aborted at /opt/local/bin/cpan line 5.

지금 무엇을해야할지 모르겠습니다. 내가 할 수있는 최선의 방법은 아마도 Mac OS X 자체 Perl을 다시 설치하는 것입니다.


맥 포트가 설치되어 있습니까? / opt / local / bin에서 추측
user151019

네 저도 그렇습니다. 방금 xcode와 개발자 명령 줄 도구를 다시 설치했지만 여전히 동일합니다. 전체 시스템을 다시 설치하고 타임머신을 통해 일부 내용을 복원 할 수 있습니다. 어쨌든 깨끗한 시스템을 갖기를
원치 않았지만

사용할 펄 (Apple, macports 또는 activestate)을 결정한 다음 @INC에 하나만 나타나는지 확인하십시오. 어떤 것이 도움이되는지 알려주십시오
user151019

글쎄, 나는 사과 perl을 사용하고 싶지만 그것을 사용하려면 perl의 해당 버전에 대한 XLSX.pm 모듈도 설치해야합니다. 그러나 일부 폴더를 삭제했기 때문에 더 이상 cpan을 시작할 수 없습니다 ... 최선의 방법은 무엇입니까?
user26392

어떤 디렉토리를 삭제 했습니까?
user151019

답변:


6

다른 웹 사이트에서 다음 명령을 발견했습니다.

$ sudo perl -MCPAN -e 'CPAN :: Shell-> notest (설치 => CPAN :: Shell-> r)'

이것은 내 perl 모듈을 모두 업데이트했으며 모두 정상으로 돌아 왔습니다. 왜 또는 무엇인지 확실하지 않지만 지금 작동하는지 걱정하지 마십시오.


그 명령 의 한 가지 출처 가 있습니다
BryanH

0

다양하고 햇볕이 잘 드는 이유로 OS를 업그레이드하려면 MacPort를 별도로 업그레이드 / 다시 설치해야합니다. 개발자는 실제로 OS를 업그레이드 한 후 포트 환경을 다시 작동시키는 데 필요한 프로세스를 자세히 설명하는 멋진 마이그레이션 페이지를 만들었습니다 .

요약하면 따라야 할 단계는 다음과 같습니다.

  1. 새로운 Xcode를 다운로드하여 설치하십시오.
  2. 명령 행 (gcc, make 등) 도구가 설치되어 있는지 확인하십시오. Xcode 응용 프로그램 내에서 환경 설정-> 다운로드로 이동하여 설치하십시오.
  3. OS 버전에 맞는 MacPorts 설치 프로그램 을 다운로드하십시오 .
  4. 설치하십시오.
  5. 선택한 터미널을 엽니 다.
  6. 명령을 실행하십시오 port -qv installed > myports.txt. 설치된 모든 포트의 사본을 가져옵니다.
  7. 모든 포트를 설치 제거하십시오. sudo port -f uninstall installed
  8. 놀이 공간 정리하기 : sudo port clean all
  9. 파일을 myports.txt살펴보고 실제로 원하는 패키지를 다시 설치하십시오.

실제로 myports.txt파일 을 편집하여 줄당 하나의 패키지로 원하는 패키지의 이름과 이름 만 포함하고 다음 명령을 실행하여 재설치 프로세스를 가속화했습니다.

cat myports.txt | xargs -n1 port install

이것이하는 일은 해당 파일을 통해 파일의 port install line모든 줄에 대해 명령 을 실행하는 것 입니다. 그것은 쓸모없는 고양이의 사용이지만 걱정하는 사람은 읽기 쉽습니다.

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