如何从本地来源进行cpan安装[Linux :: Inotify2]

时间:2019-07-12 07:10:37

标签: perl cpan inotify cpanm

尝试在失败的Fedora Core 6 x86计算机上安装Linux :: Inotify。

看起来低于2.6.36的内核不支持IN_EXCL_UNLINK。这会导致安装问题。因此,我修改了源代码并尝试安装。但是cpan再次将其替换为在线仓库。

Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00_load.t ..... Undefined subroutine &Linux::Inotify2::IN_EXCL_UNLINK called at /root/.cpan/build/Linux-Inotify2-2.1/blib/lib/Linux/Inotify2.pm line 431.
Compilation failed in require at t/00_load.t line 3.
BEGIN failed--compilation aborted at t/00_load.t line 3.
t/00_load.t ..... Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/1 subtests
t/01_inotify.t .. Undefined subroutine &Linux::Inotify2::IN_EXCL_UNLINK called at /root/.cpan/build/Linux-Inotify2-2.1/blib/lib/Linux/Inotify2.pm line 431.
Compilation failed in require at t/01_inotify.t line 2.
BEGIN failed--compilation aborted at t/01_inotify.t line 2.
# Looks like your test exited with 255 before it could output anything.
t/01_inotify.t .. Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 5/5 subtests

Test Summary Report
-------------------
t/00_load.t   (Wstat: 65280 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 255
t/01_inotify.t (Wstat: 65280 Tests: 0 Failed: 0)
  Non-zero exit status: 255
  Parse errors: Bad plan.  You planned 5 tests but ran 0.
Files=2, Tests=1,  0 wallclock secs ( 0.01 usr  0.05 sys +  0.05 cusr  0.08 csys =  0.19 CPU)
Result: FAIL
Failed 2/2 test programs. 1/1 subtests failed.
make: *** [test_dynamic] Error 255
  /usr/bin/make test -- NOT OK
Running make install
  make test had returned bad status, won't install without force

是否可以解决此问题或使用CPAN本地源进行安装?

注意:编辑源代码后,使用源代码进行安装即可正常工作。

2 个答案:

答案 0 :(得分:1)

wget https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/Linux-Inotify2-2.1.tar.gz
tar xzf Linux-Inotify2-2.1.tar.gz
cd Linux-Inotify2-2.1
...apply change...
perl Makefile.PL
make test
make install

听起来您已经完成了此操作,所以您已经安装了它。 cpan不会替换它(如果它看到已安装的版本(除非您使用了错误的perl,或者除非您使用env var PERL_MB_OPT告诉ExtUtils :: MakeMaker,否则它将替换该版本)。将该模块安装在非标准位置,并且没有通过env var PERL5LIB)告诉CPAN。

答案 1 :(得分:0)

  

使用CPAN本地源进行安装吗?

cpanm支持从本地tarball(包含修补的源代码)进行安装,请参见synopsis

cpanm ~/dists/MyCompany-Enterprise-1.00.tar.gz   # install from a local file