
私の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
root以外のユーザーとして実行し、コマンドを実行してこのパッケージをアップグレードしようとすると、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では、root以外のユーザーとしてPerlモジュールをアップグレードできますか?
答え1
root以外のユーザーは既存のインストールを変更できません。ただし、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