我正在尝试在我的用户本地安装perl模块 - 我没有root访问权限。我在我的目录结构中设置了perl libs的以下位置:/ dasd / home / miner / perl5lib / lib / lib(不要问) - 我想要我的perl模块。
我将愚蠢地发布我的整个MyConfig.pm - 我认为只有make_arg,make_install_arg和make_pl_arg很重要,但我在其中说谎是我的问题:我不确定cpan是如何工作的(并且不能轻易google it)所以我不知道MyConfig.pm中的params的确切点。
'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
什么“没有规则制作目标`dasd / home / perl5lib / lib / lib'是什么意思?我不想制作那个目录...我想让make文件在他们说出来时回复cpan编写Makefile for File :: Slurp“。我想我想进入/ dasd / home / perl5lib / lib / lib目录。我假设我们正在做File :: Slurp,因为MongoDB以某种方式依赖它。
我希望我有更好的方式来表达这个问题 - 但简而言之就是:教我这一切意味着什么 - 如何改变MyConfig.pm来做我想做的事?
答案 0 :(得分:3)
“没有规则来制作目标`dasd / home / perl5lib / lib / lib'”意味着你在LIB=
和dasd/home/perl5lib/lib/lib
之间放置了一个空格(当它应该是{{1}时}),使它们成为单独的参数。 /
认为make
是您希望它构建的文件的名称,并且它不知道如何。
我首先在文本编辑器中编辑MyConfig.pm,然后搜索dasd/home/perl5lib/lib/lib
并将其替换为LIB= dasd
。
答案 1 :(得分:0)
您说您的库存储在/dasd/home/miner/perl5lib/lib/lib
中,但您的配置文件已存储dasd/home/perl5lib/lib/lib
。
您似乎需要路径中的前导/
和/miner
步骤。