Osx
如何以非 root 使用者身份在我的 Mac OS X 上升級 File::Path
我的 mac 機器很舊(Mac OS X 10.6.8),我有一個關於如何升級 perl 模組的問題
File::Path
。我主要使用latexmk編譯我的 LaTeX 文件,它基本上是一個 perl 腳本。它需要
File::Path
2.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