如何将其他文件夹包含到Perl的@INC中?(原问题:svn2git中@INC找不到Git.pm)

5

我试图通过 svn2git 将一个 SVN 存储库导入到 Git 中。当我运行 svn2git --verbose https://url_to_repo 时,输出如下:

Running command: git svn init --prefix=svn/ --no-metadata --trunk=trunk --tags=tags --branches=branches https://url_for_repository
Can't locate Git.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8 /home/cpdirect/perl5/lib/perl5 /usr/local/lib/perl5/5.8.8/x86_64-linux /usr/local/lib/perl5/5.8.8 /usr/local/lib/perl5/site_perl/5.8.8/x86_64-linux /usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl .) at /usr/libexec/git-core/git-svn line 80.
BEGIN failed--compilation aborted at /usr/libexec/git-core/git-svn line 80.
command failed:
2>&1 git svn init --prefix=svn/ --no-metadata --trunk=trunk --tags=tags --branches=branches https://url_for_repository

很明显,Perl无法在路径中找到该模块,但是我在CentOS 5.9上尝试了一切方法都没有结果。例如,以下内容已安装:
git-1.7.11.3-1.el5.rf
git-svn-1.7.11.3-1.el5.rf
cpanel-git-1.7.11.3-1.cp1136

有什么解决这个问题的想法吗?事实证明,由于某些原因,Perl 不知道如何查看 /usr/lib/perl5/vendor_perl/5.8.8/。如果我在 /usr/lib/perl5/site_perl/5.8.8 中创建每个模块的链接,则似乎可以正常工作且不会出现错误。所以,真正的问题是如何强制 Perl 查找那个 vendor_perl 文件夹?

你能升级一下你的git安装吗?1.7.11版本存在一个bug(https://dev59.com/gmgu5IYBdhLWcg3wbWk9#11326520),至少对于`msysgit`是如此。也许你的安装也受到了影响? - eckes
很抱歉,我在这个CentOS安装中使用的是rpmforge,并且没有找到升级的简单路径。 我正在尝试遵守管理员设置的某些参数,以便不会对Cpanel等造成问题,因此我有点犹豫过多地使用yum repos。 尽管如此,我并没有看到任何迹象表明上述与5.9一起工作应该是有问题的,也许只是这个配置的奇怪之处。 - ylluminate
请查看此链接:http://navyblueshellingford.blogspot.de/2009/08/cant-locate-gitpm-in-inc.html - Daniel Hilgarth
好的,我想我不太确定如果那是建议的解决方案,应该选择哪个路径。例如,从头开始构建git,寻找它显然包含的某种perl库,然后将其移动到perl路径中的某个位置?如果我能在这一部分找到更多的明确性,那肯定会有所帮助,因为他说得并不完全清楚,至少对我来说是这样。 - ylluminate
@ylluminate:在这种情况下,我没有更多的想法了,因为我是一个Windows的人。抱歉。 - Daniel Hilgarth
显示剩余2条评论
1个回答

1

所以我发现了如何添加多个库,这解决了缺少的Perl库问题:

PERL5LIB="/usr/lib/perl5/vendor_perl/5.8.8/:/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi" svn2git -v file:///my/path/to/svn/repo

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