Osx

如何以非 root 使用者身份在我的 Mac OS X 上升級 File::Path

  • January 10, 2015

我的 mac 機器很舊(Mac OS X 10.6.8),我有一個關於如何升級 perl 模組的問題File::Path

我主要使用latexmk編譯我的 LaTeX 文件,它基本上是一個 perl 腳本。它需要File::Path2.08 版,但我的機器上有一個過時的版本(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 模組?

您不能以非 root 使用者身份修改現有安裝。但是你可以在你的主目錄(或任何你有寫權限的地方)安裝一個 CPAN 模組,然後優先載入該模組(在大多數情況下。模組之間可能存在衝突,但你在這裡可能沒問題)。

cpan通過perlfaq 中的工具執行此操作的說明。但這可能有點繁瑣。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

引用自:https://unix.stackexchange.com/questions/178437