0

我正在尝试在我的用户本地安装 perl 模块 - 我没有 root 访问权限。我在我的目录结构中为 perl 库设置了以下位置:/dasd/home/miner/perl5lib/lib/lib(不要问) - 我想要我的 perl 模块。

我将愚蠢地发布我的整个 MyConfig.pm - 我认为只有 make_arg、make_install_arg 和 make_pl_arg 很重要,但我认为其中存在我的问题:我不确定 cpan 究竟是如何工作的(并且不能轻易地用谷歌搜索它)所以我不知道 MyConfig.pm 中参数的确切意义。

 'build_dir' => q[/dasd/home/miner/.cpan/build],
 'cache_metadata' => q[1],
 'cpan_home' => q[/dasd/home/miner/.cpan],
 'dontload_hash' => {  },
 'ftp' => q[/usr/kerberos/bin/ftp],
 'ftp_proxy' => q[],
 'getcwd' => q[cwd],
 'gpg' => q[/usr/bin/gpg],
 'gzip' => q[/bin/gzip],
 'histfile' => q[/dasd/home/miner/.cpan/histfile],
 'histsize' => q[100],
 'http_proxy' => q[],
 'inactivity_timeout' => q[0],
 'index_expire' => q[1],
 'inhibit_startup_message' => q[0],
 'keep_source_where' => q[/dasd/home/miner/.cpan/sources],
 'links' => q[/usr/bin/links],
 'make' => q[/usr/bin/make],
 'make_arg' => q[LIB= dasd/home/perl5lib/lib/lib PREFIX=~/perl5lib],
 'make_install_arg' => q[LIB= dasd/home/perl5lib/lib/lib],
 'makepl_arg' => q[PREFIX=~/perl5lib LIB=/dasd/home/perl5lib/lib/lib   INSTALLMAN1DIR=~/perl5lib/man1 INSTALLMAN3DIR=~/perl5lib/man3],
 'ncftp' => q[],

为了进一步解释,例如,我运行“cpan MongoDB”,我得到了很多输出,都尖叫着一堆错误,它都死于这个错误:

Checking if your kit is complete...
Looks good
Writing Makefile for File::Slurp
Writing MYMETA.yml and MYMETA.json
make: *** No rule to make target `dasd/home/perl5lib/lib/lib'.  Stop.
  /usr/bin/make LIB= dasd/home/perl5lib/lib/lib PREFIX=~/perl5lib -- NOT OK
Running make test
  Can't test without successful make
Running make install
  make had returned bad status, install seems impossible
Running make for K/KR/KRISTINA/MongoDB-0.45.tar.gz
  Is already unwrapped into directory /dasd/home/miner/.cpan/build/MongoDB-0.45

CPAN.pm:将构建 K/KR/KRISTINA/MongoDB-0.45.tar.gz

make: *** No rule to make target `dasd/home/perl5lib/lib/lib'.  Stop.
  /usr/bin/make LIB= dasd/home/perl5lib/lib/lib PREFIX=~/perl5lib -- NOT OK
Running make test
  Can't test without successful make
Running make install
  make had returned bad status, install seems impossible

“No rule to make target `dasd/home/perl5lib/lib/lib' 是什么意思?我不想制作那个目录......我想让 cpan 在他们说“为File::Slurp”。我想我想放在 /dasd/home/perl5lib/lib/lib 目录中。我假设我们正在做 File::Slurp,因为 MongoDB 在某种程度上依赖它。

我希望我有更好的方式来表达这个问题 - 但简而言之,这里是:教我这一切意味着什么 - MyConfig.pm 如何更改为我想要的?

4

2 回答 2

4

“No rule to make target `dasd/home/perl5lib/lib/lib'”意味着你在LIB=and之间放置一个空格dasd/home/perl5lib/lib/lib(当它应该是 a 时/),使它们成为单独的参数。make认为这dasd/home/perl5lib/lib/lib是您希望它构建的文件的名称,但它不知道如何构建。

我首先在文本编辑器中编辑 MyConfig.pm,然后搜索LIB= dasd并将其替换为LIB=/dasd.

于 2012-07-09T16:24:32.957 回答
0

你说你的库存储在/dasd/home/miner/perl5lib/lib/lib你的配置文件中有dasd/home/perl5lib/lib/lib.

你似乎需要一个领导者/和一个/miner步骤。

于 2012-07-09T17:10:39.093 回答