내 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
cpan
Mac 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