如何在macos上安装Perl模块?

bjp0bcyl  于 2023-06-06  发布在  Perl
关注(0)|答案(4)|浏览(1068)

线程perl how can I append STDOUT of list form system call of perl script to a file导致了以下解决方案:use IPC::Run qw( run );。在我的macos 10.14.6上运行perl 5.18.4,这引发了一个错误:Can't locate IPC/Run.pm in @INC (you may need to install the IPC::Run module)。因此,在What's the easiest way to install a missing Perl module?之后,我做了

> cpan IPC::Run
<snip: 403 lines later>
Appending installation info to /Users/BNW/perl5/lib/perl5/darwin-thread-multi-2level/perllocal.pod
  TODDR/IPC-Run-20180523.0.tar.gz
  /usr/bin/make install  -- OK

重启了我的MacBookPro我编辑了我的perl脚本bosswrap.pl

#!/usr/bin/perl
use strict; use warnings;
use IPC::Run qw( run );

但这显然又抛出了与之前相同的错误:

> bosswrap.pl
Can't locate IPC/Run.pm in @INC (you may need to install the IPC::Run module) (@INC contains: /sw/lib/perl5/darwin-thread-multi-2level /sw/lib/perl5 /sw/lib/perl5/darwin /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.4 /System/Library/Perl/5.18/darwin-thread-multi-2level /System/Library/Perl/5.18 /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level /System/Library/Perl/Extras/5.18 .) at /Users/BNW/u/kh/bin/bosswrap.pl line 3.
BEGIN failed--compilation aborted at /Users/BNW/u/kh/bin/bosswrap.pl line 3.

我做错了什么,或者更确切地说,我如何才能让它工作?

vlju58qv

vlju58qv1#

尝试以下操作:

sudo perl -MCPAN -e 'install -force Net::ARP'
ars1skjm

ars1skjm2#

问题似乎是您将模块安装在用户目录 /Users/BNW/perl 5/lib 下,但您没有将该路径包含在Perl用于查找库的@INC数组中。
一种方法是在 * bosswrap.pl * 程序中添加@INCuse lib的安装路径:

use lib qw(/Users/BNW/perl5/lib/perl5);

参见:

  • 如何将程序所在的目录添加到模块/库搜索路径中?
  • 如何在运行时将目录添加到包含路径(@INC)?
8gsdolmq

8gsdolmq3#

http://triopter.com/archive/how-to-install-perl-modules-on-mac-os-x-in-4-easy-steps/提供了一个深入的教程。据我所知,可能需要一些CPAN配置行,但是没有提供足够的代码来说明这是问题的原因。在任何情况下,这里是CPAN配置代码。

$ sudo perl -MCPAN -e shell
perl> o conf init
stszievb

stszievb4#

如何在macos上安装Perl模块?
具有原生arm64和启用了rosetta的x86_64的macOS计算机通过确保适用的Perl模块安装了Universal Binaries来避免指令集体系结构(伊萨)冲突。
安装通用二进制Perl模块的一种方法如下:

sudo env ARCHFLAGS='-arch arm64 -arch arm64e -arch x86_64' cpan App::cpanminus
sudo env ARCHFLAGS='-arch arm64 -arch arm64e -arch x86_64' cpanm Test2
sudo env ARCHFLAGS='-arch arm64 -arch arm64e -arch x86_64' cpanm Finance::Quote
sudo env ARCHFLAGS='-arch arm64 -arch arm64e -arch x86_64' cpanm JSON::Parse
  • 如果已经安装了非通用二进制安装,则需要首先卸载该安装,因为标准Perl安装/更新只检查版本号,而不检查任何底层ISA集。

有关其他详细信息,请参见Install & update a Perl module as "universal" (x86_64, arm64)?

相关问题