pur*_*kle 9 macos perl templates cpan osx-snow-leopard
我已经在我的MacBook Pro上通过CPAN安装了模板模块,它似乎安装正确.
但是,当我尝试运行包含模块模块的脚本时,我得到以下内容:
无法在@INC中找到Template.pm(@INC包含:/ Users/purinkle/Sites/rob/modules /Library/Perl/Updates/5.10.0/darwin-thread-multi-2level/Library/Perl/Updates/5.10.0 /System/Library/Perl/5.10.0/darwin-thread-multi-2level /System/Library/Perl/5.10.0/Library/Perl/5.10.0/darwin-thread-multi-2level/Library/Perl/5.10.0 /Network/Library/Perl/5.10.0/darwin-thread-multi-2level /Network/Library/Perl/5.10.0/Network/Library/Perl/System/Library/Perl/Extras/5.10. 0/darwin-thread-multi-2level /System/Library/Perl/Extras/5.10.0.)at ./index.pl第12行.
BEGIN失败 - 编译在./index.pl第12行中止.
然后我认为在安装过程中出现问题并尝试通过CPAN再次安装但收到以下消息:
模板是最新的(2.22).
然后我运行了instmodsh命令来尝试找到模块的安装位置.instmodsh列出了这些目录:
/选择/ local/bin目录
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/Template
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/Template/Manual
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/Template/Namespace
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/Template/Plugin
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/Template/Stash
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/Template/Tools
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/Template/Tutorial
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/auto/Template/Stash/XS
/选择/本地/共享/人/ MAN1
/选择/本地/共享/人/ man3
看起来我有一些如何安装两个不同版本的Perl(5.8.9和5.10.0),这导致CPAN和其他Perl脚本之间的混淆.
如何验证此问题以及如何解决此问题?
我已经运行了命令
which perl
which cpan
Run Code Online (Sandbox Code Playgroud)
他们都返回/ opt/local/bin
运行
find / -name perl
Run Code Online (Sandbox Code Playgroud)
回报
find:/ dev/fd/3:不是目录
find:/ dev/fd/4:不是目录
/选择/ local/bin中/ perl的
/opt/local/etc/bash_completion.d/perl
/opt/local/var/macports/software/bash-completion/1.2_0/opt/local/etc/bash_completion.d/perl
/opt/local/var/macports/software/perl5.8/5.8.9_3/opt/local/bin/perl
/opt/local/var/macports/sources/rsync.macports.org/release/ports/perl
在/ usr/bin中/ perl的
在/ usr/local/bin中/ perl的
在/ usr /共享/文件/魔法/ perl的
和
find / -name cpan
Run Code Online (Sandbox Code Playgroud)
回报
/选择/ local/bin目录/ CPAN
/opt/local/var/macports/software/perl5.8/5.8.9_3/opt/local/bin/cpan
/Users/purinkle/.cpan/build/CPAN-1.9402-KtN827/blib/script/cpan
/Users/purinkle/.cpan/build/CPAN-1.9402-KtN827/scripts/cpan
/Users/purinkle/.cpan/build/CPAN-1.9402-zb0AeX/blib/script/cpan
/Users/purinkle/.cpan/build/CPAN-1.9402-zb0AeX/scripts/cpan
在/ usr/bin中/ CPAN
运行
perl -e 'print join "\n", @INC'
Run Code Online (Sandbox Code Playgroud)
回报
/用户/ purinkle /站点/抢劫/模块
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level
/opt/local/lib/perl5/site_perl/5.8.9
的/ opt/local/lib目录/ perl5的/ SITE_PERL
/opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level
/opt/local/lib/perl5/vendor_perl/5.8.9
的/ opt/local/lib目录/ perl5的/ vendor_perl
/opt/local/lib/perl5/5.8.9/darwin-2level
/opt/local/lib/perl5/5.8.9
Sch*_*ern 16
OS X附带两个版本的Perl.5.10.0是默认值,因此/ usr/bin/perl和/ usr/bin/cpan都应该与5.10.0通信.
问题是你有三个. /opt/local表示MacPorts安装可能在您不看时将Perl安装为依赖项.这是/ opt/local/bin/perl,它可能是你路径中的默认perl.检查which perl.这也意味着你可能正在使用MacPorts的cpan,检查which cpan并因此将Template Toolkit安装到MacPorts版本中.
我猜你要么#!/usr/bin/perl在顶部运行一个程序,要么你正在使用内置的mod_perl,或者你是以不是你的用户身份运行它.所有这些都将引用OS X的默认Perl而不是MacPorts安装.
Macports有5.10和5.12,但Macports中的"perl"仍为5.8.您可以在Macports中安装5.10.
至于如何解决这个问题...如果你在该机器上使用mod_perl,请使用Macports的Perl.安装模块会更容易,并且它将比操作系统版本更新.
从未来的迷茫保护自己,你可以添加别名成/usr/local/bin或~/bin成Perl,并参阅perldoc CPAN到您选择的Perl的.这将阻止其他东西在您的路径中安装perl并劫持.
| 归档时间: |
|
| 查看次数: |
18537 次 |
| 最近记录: |