루트가 아닌 사용자로 Mac OS X에서 File::Path를 업그레이드하는 방법

루트가 아닌 사용자로 Mac OS X에서 File::Path를 업그레이드하는 방법

내 Mac 컴퓨터는 꽤 오래되었으며(Mac OS X 10.6.8) Perl 모듈을 업그레이드하는 방법에 대한 질문이 있습니다 File::Path.

나는 주로 LaTeX 문서를 다음을 사용하여 컴파일합니다.유제이것은 기본적으로 Perl 스크립트입니다. 버전 2.08이 필요 File::Path하지만 내 컴퓨터에는 오래된 버전(버전 2.07_02)이 있습니다. 이것은 명령을 실행할 때 나타나는 오류 메시지입니다 latexmk.

>> latexmk doc.tex
File::Path version 2.08 required--this is only version 2.07_02 at /usr/texbin/latexmk line 129.

cpan루트가 아닌 사용자로 실행하고 명령을 실행하여 이 패키지를 업그레이드하려고 하면 upgrade File::Path화면에 이 메시지가 표시됩니다.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Can't create '/Library/Perl/Updates/5.10.0/File'
mkdir /Library/Perl/Updates/5.10.0/File: Permission denied at 
  /System/Library/Perl/5.10.0/ExtUtils/Install.pm line 479   
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 at -e line 1
make: *** [pure_perl_install] Error 13
  DLAND/File-Path-2.09.tar.gz
  /usr/bin/make install  -- NOT OK
Warning (usually harmless): 'YAML' not installed, will not store persistent state
Failed during this command:
 DLAND/File-Path-2.09.tar.gz                  : install NO

cpanMac OS X에서 루트가 아닌 사용자로 Perl 모듈을 업그레이드할 수 있습니까?

답변1

루트가 아닌 사용자로는 기존 설치를 수정할 수 없습니다. 하지만 CPAN 모듈을 홈 디렉터리(또는 쓰기 액세스 권한이 있는 모든 위치)에 설치한 다음 해당 모듈을 먼저 로드할 수 있습니다(대부분의 경우 모듈 간에 충돌이 있을 수 있지만 여기서는 문제가 없을 것입니다).

perlfaq의 도구를 통해 cpan이를 수행하는 방법에 대한 지침이 있습니다. 하지만 조금 지루할 수 있습니다. cpanm추천하는 경우가 많습니다.

https://stackoverflow.com/questions/2980297/how-can-i-use-cpan-as-a-non-root-user자세한 설치 지침이 있습니다 cpanm.

그런 다음 설치 후 시스템 모듈 대신 사용하기만 하면 됩니다. 이를 수행하는 방법에는 여러 가지가 있습니다.

PERL5LIB를 로컬 디렉터리로 설정할 수 있습니다. 예를 들어:

$ export PERL5LIB=~/perl5
$ perl myprog

소수의 스크립트에 대해서만 이 작업을 수행해야 하는 경우 스크립트 자체에 경로를 추가할 수 있습니다.

#!/bin/perl
use lib '/home/me/perl5';
use File::Path;

둘 중 하나가 필요에 충분하지만, 무언가를 테스트하는 경우에는 다음과 같이 일시적으로 경로에 위치를 추가할 수도 있습니다.

$ perl -I ~/perl5 myprog

관련 정보