gpt4 book ai didi

macos - 我如何让 cpanm 使用我的本地 perl5?

转载 作者:行者123 更新时间:2023-12-05 08:07:14 25 4
gpt4 key购买 nike

我在 Mac 上,所以我当然会遇到这个 huge problem with perl on the Mac操作系统试图保护我的地方,安装 .解决方案似乎是“制作你自己的 perl 而不是使用操作系统的 perl”,所以我已经做到了。我运行了 brew install perl,现在我的 .bashrc 中有了它

PATH="/Users/ericmueller/perl5/bin${PATH:+:${PATH}}"; export PATH;
PERL5LIB="/Users/ericmueller/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
PERL_LOCAL_LIB_ROOT="/Users/ericmueller/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
PERL_MB_OPT="--install_base \"/Users/ericmueller/perl5\""; export PERL_MB_OPT;
PERL_MM_OPT="INSTALL_BASE=/Users/ericmueller/perl5"; export PERL_MM_OPT;
eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib=$HOME/perl5)"
source ~/perl5/perlbrew/etc/bashrceval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib=$HOME/perl5)"

老实说,我不知道其中大部分是什么 ;-) 但看起来我的文件夹中有我自己的 perl,而且我看到我可以运行简单的 perl 脚本,所以我想一切都很好。

所以现在我想安装 cpanminus 和 DBI。

我安装了 cpanminus (brew install cpanminus),没有错误。但是当我运行 cpanm DBI 时它失败了,当我查看它失败的日志时,我看到了这个:

"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- DBI.bs blib/arch/auto/DBI/DBI.bs 644
"/usr/bin/perl" -p -e "s/~DRIVER~/Perl/g" ./Driver.xst > Perl.xsi
"/usr/bin/perl" "/System/Library/Perl/5.18/ExtUtils/xsubpp" -typemap '/System/Library/Perl/5.18/ExtUtils/typemap' -typemap '/Users/ericmueller/.cpanm/work/1555346710.17160/DBI-1.642/typemap' Perl.xs > Perl.xsc
mv Perl.xsc Perl.c
cc -c -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector -Os -DVERSION=\"1.642\" -DXS_VERSION=\"1.642\" "-I/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE" -W -Wall -Wpointer-arith -Wbad-function-cast -Wno-comment -Wno-sign-compare -Wno-cast-qual -Wmissing-noreturn -Wno-unused-parameter Perl.c
In file included from Perl.xs:7:
./DBIXS.h:22:10: fatal error: 'EXTERN.h' file not found
#include <EXTERN.h>
^~~~~~~~~~
1 error generated.
make: *** [Perl.o] Error 1

这完全是愚蠢的 Mac perl 问题,问题似乎是它仍在尝试将 DBI 库(或其依赖项之一)放在/usr/bin/中,这是一个大禁忌。或者它可能正在尝试使用系统 perl 进行安装,所以也失败了。我的主文件夹中有自己的 perl5 安装。这就是它应该放置东西并使用它们的地方。

所以如果这是问题所在(我对 perl 和这类系统管理员的东西真的很糟糕,所以我不是 100% 确定!),我如何让 cpanm 工作在我的主文件夹中使用我的 perl,而不是在/usr/bin/中?我不希望/usr/bin/中发生任何事情,因为那是不可能的!

** 编辑 我从我的 bashrc 中删除了除 PATH 命令之外的所有内容,现在我在运行 cpanm DBI

时得到了这个
!
! Can't write to /Library/Perl/5.18 and /usr/local/bin: Installing modules to /Users/ericmueller/perl5
! To turn off this warning, you have to do one of the following:
! - run me as a root or with --sudo option (to install to /Library/Perl/5.18 and /usr/local/bin)
! - Configure local::lib in your existing shell to set PERL_MM_OPT etc.
! - Install local::lib by running the following commands
!
! cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)
!
--> Working on DBI
Fetching http://www.cpan.org/authors/id/T/TI/TIMB/DBI-1.642.tar.gz ... OK
Configuring DBI-1.642 ... OK
Building and testing DBI-1.642 ... FAIL
! Installing DBI failed. See /Users/ericmueller/.cpanm/work/1555348167.22814/build.log for details. Retry with --force to force install it.

好消息是,我确实在我的/Users 文件夹中使用了我的自定义 perl5 附带的 cpanm。坏消息是,我仍然遇到完全相同的愚蠢问题。

最佳答案

是的……MacOS Perl 是您不应该接触的东西。

是的......你可以做到。

但是......常见的做法,https://perlbrew.pl

和 ... 安装一些 Shiny 的 perl

并且...按照网站上有关cpanm

的说明进行操作

关于macos - 我如何让 cpanm 使用我的本地 perl5?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55694022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com