自定义perl安装无法找到Git.pm

3

我已经在我的主目录下安装了自己的Perl副本,但是我有一些Perl脚本需要Git.pm,这是Git分发的一部分,无法从CPAN安装。系统perl使用的Git.pm位于/usr/share/perl5/Git.pm。如何使此Git.pm可用于自定义perl安装,或者获取另一个复制品并将其安装在正确的位置?我应该只将它复制到自己的Perl lib目录中吗?

3个回答

6

Git.pm是自包含的,因此将它复制到您私有perl @INC 目录中的一个目录即可。它需要Error.pm(版本大于或等于0.15009),所以不要忘记安装该模块。

如果您正在寻找Git包装器(而不是特定的Git.pm),则CPAN上有几个可用的包装器(按字母顺序排序):

  • Git::Class
  • Git::Repository
  • Git::Wrapper

我最终只是将系统副本的 Git.pm 复制到了我自己的 Perl 模块目录中。 - Ryan C. Thompson

1

但是Git.pm在系统Perl模块目录中。我不想将所有系统Perl模块添加到我的自定义安装中,特别是因为其中一些模块可能是为系统Perl编译的XS模块,在我的自定义Perl上会出现错误。 - Ryan C. Thompson
@Ryan:你能把那个模块移到自定义路径中吗?而不是保留在默认(系统)位置? - VonC
好的,我可以复制它。我的当前解决方案是将系统Git.pm复制到适当路径下的本地安装中。 - Ryan C. Thompson

0

要控制Perl搜索模块的位置,请使用PERL5LIB(或PERLLIB)。

如果要让您的模块/脚本在非标准位置使用某个模块,请使用use lib "<dir>"(尽管我认为它通常已被弃用)。

要从CPAN本地安装Perl模块,请使用local::lib


Git.pm无法从CPAN安装,我也不能将其当前目录添加到PERL5LIB中,因为这会将系统Perl的所有模块都添加到我的自定义Perl路径中。我应该只是将Git.pm从系统Perl目录复制到我的主目录中的某个随机目录,然后将其添加到PERL5LIB中吗? - Ryan C. Thompson
@Ryan:如果Git.pm已经安装在系统Perl目录中,为什么你的模块/脚本找不到它?如果你将Git.pm安装在本地,你总是可以将它安装在"local::lib"的位置(默认情况下为~/perl5)。 - Jakub Narębski
我正在使用自己的Perl副本,因为我想要最新版本,但系统(Ubuntu Natty)只提供5.10。因此,将系统Perl目录添加到PERL5LIB中是一个不好的主意。 - Ryan C. Thompson
@Ryan:你是如何安装Git.pm的(或者你是怎么得到它的)? - Jakub Narębski
Git.pm是Git的一部分安装。在Ubuntu上,它安装在/usr/share/perl/Git.pm,但许多(所有?)其他系统安装的Perl模块也安装在那里。 - Ryan C. Thompson
@Ryan:所以Git.pm是系统安装的,但你使用的是你的Perl副本(perlbrew?)。你需要的是搭配你的Perl的Git.pm副本:可以直接复制,也可以安装perl-Git包并重新定位,或从git源安装Git.pm... - Jakub Narębski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接