2016-03-09 34 views
1

我正在嘗試在使用MP3 :: Tag模塊的perl中編寫一個小程序。 程序不執行,給我:MP3 :: Tag - 不工作

Can't locate MP3/Tag.pm in @INC (you may need to install the MP3::Tag module) (@INC contains: ... .) at mp3Editor.pl line 3. 

,其中第3行是:use MP3::Tag;

於是我試着命令:cpan MP3::Tag

,但我得到:Warning: Cannot install MP3::Tag, don't know what it is.

我已經從CPAN的網站下載了該模塊,但是我似乎無法使其工作。我必須做什麼才能獲得MP3 :: Tag模塊在我的系統上工作?任何幫助表示讚賞。謝謝。

編輯env | grep -i perl生產:

PERL_MB_OPT=--install_base "/home/bronson/perl5" 
PERL_MM_OPT=INSTALL_BASE=/home/bronson/perl5 
+0

嘗試使用['cpanm'](https://github.com/miyagawa/cpanminus),而不是'cpan',這是一個更加用戶友好的CPAN客戶端。 – Schwern

+0

'cpanm'似乎至少做了一些事情。儘管如此,我仍然在嘗試運行程序時遇到同樣的問題。 – OxenMeat

+1

然後你可能已經安裝了多個Perl的副本。你的程序正在使用一個,而cpanm正在安裝到另一個。 cpanm將使用你的PATH中的任何Perl,檢查'which perl'並檢查你的程序頂部的'#!'行。 – Schwern

回答

1

看來你cpan客戶端配置錯誤,它似乎不具備的CPAN模塊正確的名單。 cpanm是一個比cpan更方便用戶的CPAN客戶端,我推薦使用它。

如果新安裝cpanm安裝模塊,但你仍然得到錯誤,如果which perl和Perl的在你#!線是一樣的,那麼你的模塊可能得到安裝在標準的Perl庫位置之外。有幾種方法可能發生,首先是檢查影響安裝的環境變量。 env | grep -i perl是一個好的開始。比如PERL_MB_OPTPERL_MM_OPT將改變cpancpanm調用Build.PL和Makefile.PL安裝程序的方式。

如果設置了PERL_M*_OPT,那麼應該有相應的PERL5LIB來告訴Perl查看這些模塊的非標準位置。

通常這樣做是爲了允許非root用戶將模塊安裝到他們的主目錄中。

在你的情況下,你似乎有PERL_M*_OPT設置,但沒有PERL5LIB。您需要將PERL5LIB設置爲安裝模塊的位置,可能是/home/bronson/perl5/lib/perl5/


這可能會有點毛茸茸的。有兩種工具可以使這更容易。

首先是Perlbrew。它將Perl安裝在您的主目錄中併爲您配置所有內容。它甚至可以支持多個版本。這是開發Perl的最簡單和推薦的方式。它使您可以完全控制Perl的安裝,而不必依賴於系統的安裝。

另一種是使用local::lib來管理你的Perl環境。它將幫助您設置Perl環境變量,將Perl模塊安裝到您的主目錄並使用它們。你現在可能會有一個錯誤的版本。

0

sudo cpan啓動交互CPAN
install CPAN更新CPAN
reload cpan刷新CPAN
install MP3::Tag安裝模塊

不能保證工作,但你似乎CPAN搞砸。