Git 解决ExtUtils::MakeMaker和Test::Harnese之间的循环依赖关系
我正在尝试将RHEL6上的Git2.5.2编译到我的主目录中,它需要一个perl模块ExtUtils::MakeMaker。ExtUtils::MakeMaker未安装在标准位置,由于组织限制,无法(通过yum)安装软件包 ExtUtils::MakeMaker需要测试::线束,但也未安装。线束依赖于ExtUtils::MakeMaker,有没有办法打破这种依赖关系,或者有没有办法编译git而不依赖于ExtUtils::MakeMaker 尝试安装ExtUtils::MakeMaker时的输出:Git 解决ExtUtils::MakeMaker和Test::Harnese之间的循环依赖关系,git,perl,rhel6,makemaker,Git,Perl,Rhel6,Makemaker,我正在尝试将RHEL6上的Git2.5.2编译到我的主目录中,它需要一个perl模块ExtUtils::MakeMaker。ExtUtils::MakeMaker未安装在标准位置,由于组织限制,无法(通过yum)安装软件包 ExtUtils::MakeMaker需要测试::线束,但也未安装。线束依赖于ExtUtils::MakeMaker,有没有办法打破这种依赖关系,或者有没有办法编译git而不依赖于ExtUtils::MakeMaker 尝试安装ExtUtils::MakeMaker时的输出:
Using included version of CPAN::Meta (2.120351) because it is not already installed.
Using included version of Parse::CPAN::Meta (1.4405) because it is not already installed.
Using included version of CPAN::Meta::YAML (0.008) because it is not already installed.
Using included version of ExtUtils::Manifest (1.65) because it is not already installed.
Using included version of JSON::PP (2.27203) because it is not already installed.
Using included version of ExtUtils::Install (1.54) because it is not already installed.
Using included version of CPAN::Meta::Requirements (2.127) because it is not already installed.
Generating a Unix-style Makefile
Writing Makefile for ExtUtils::MakeMaker
Writing MYMETA.yml and MYMETA.json
Can't locate Test/Harness.pm in @INC (@INC contains: bundled/CPAN-Meta bundled/JSON-PP-Compat5006 bundled/Parse-CPAN-Meta bundled/CPAN-Meta-YAML bundled/File-
Temp bundled/ExtUtils-Manifest bundled/JSON-PP bundled/ExtUtils-Install bundled/Scalar-List-Utils bundled/CPAN-Meta-Requirements lib . /usr/local/lib64/perl5
/usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at Makefile.PL line 143.
git make的输出:
SUBDIR perl
/usr/bin/perl Makefile.PL PREFIX='/home/svc_rrtd/local' INSTALL_BASE='' --localedir='/home/svc_rrtd/local/share/locale'
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 3.
BEGIN failed--compilation aborted at Makefile.PL line 3.
make[1]: *** [perl.mak] Error 2
make: *** [perl/perl.mak] Error 2
它安装在哪里?
只需将该目录添加到
更新:尝试安装git的必备组件,如
$ sudo yum install curl-devel expat-devel gettext-devel \
openssl-devel perl-devel zlib-devel
$ sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
libz-dev libssl-dev
这是一段引自的话,它安装在哪里?
只需将该目录添加到
更新:尝试安装git的必备组件,如
$ sudo yum install curl-devel expat-devel gettext-devel \
openssl-devel perl-devel zlib-devel
$ sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
libz-dev libssl-dev
这是从编译更新版本(2018年第2.17季度,大约3年后)的Git中引用的一句话,因为Git脱离了MakeMaker
,从而大大简化了perl
/part的构建过程
参见作者(2018年1月2日)参见(2017年12月22日)和(2017年12月10日)作者。
(于2018年2月13日合并) Ævar解释说: 替换下使用的
perl/Makefile.PL
和回退perl/Makefile
NO\u PERL\u MAKEMAKER=NoThanks
实现简单得多
受i18n基础架构构建过程的启发。看 将
Makefile.PL
放在首位的原因是
最初是构建一个perl C绑定到与libgit
()的接口,这个功能在Git.pm
进入master
分支之前被删除()
从那以后,我们开始维护一个后备perl/Makefile
,如下所示
MakeMaker
无法在某些平台上工作(.这只是冰山一角。我们在顶层的
Makefile
()中有PM.stamp
hack来检测我们是否需要重新生成perl/perl.mak
,我最近刚刚修复了它,以处理像perl
版本从我们下面改变()这样的问题
完全没有理由再让这件事如此复杂了。我们从这台精心设计的Rube Goldberg机器中得到的只是将
perl/*
复制到perl/blib/*
,就像我们在
*.pm
文件在源代码中的硬编码@@LOCALEDIR@
,以及
pod2man-ingGit.pm
&朋友
所以,用一个几乎是
如何从po/*.po
生成po/build/**.mo
,只需一个小的
命令而不是msgfmt
完成此操作后,将文件从
*.pm
重命名为*.pmc
,以指示它们已生成(请参阅)
使用Git2.32(2021年第2季度),构建过程得到清理 参见(2021年5月12日)和,,(2021年5月5日)的作者。
(于2021年5月20日合并) :在
NO\u GETTEXT=Y
签字人:Ævar ArnfjörðBjarmason
将我在(“i18n
:添加用gettext翻译Git的基础设施”,2011-11-18,Git v1.7.9-rc0--)中添加的i18n函数的逻辑更改为在定义了NO_gettext
时使用传递函数
当NO_GETTEXT=Y
生效时,这将加快使用此库的命令的编译时间。在我的机器上加载它和POSIX.pm大约需要20毫秒,而仅仅实例化Perl本身需要2毫秒 编译较新版本(2018年第2.17季度,大约3年后)的Git可能会更容易,因为将Git从
MakeMaker
中分离出来大大简化了perl
/part的构建过程
参见作者(2018年1月2日)参见(2017年12月22日)和(2017年12月10日)作者。
(于2018年2月13日合并) Ævar解释说: 替换下使用的
perl/Makefile.PL
和回退perl/Makefile
NO\u PERL\u MAKEMAKER=NoThanks
实现简单得多
受i18n基础架构构建过程的启发。看 将
Makefile.PL
放在首位的原因是
最初是构建一个perl C绑定到与libgit
()的接口,这个功能在Git.pm
进入master
分支之前被删除()
从那以后,我们开始维护一个后备perl/Makefile
,如下所示
MakeMaker
无法在某些平台上工作(.这只是冰山一角。我们在顶层的
Makefile
()中有PM.stamp
hack来检测我们是否需要重新生成perl/perl.mak
,我最近刚刚修复了它,以处理像perl
版本从我们下面改变()这样的问题
完全没有理由再让这件事如此复杂了。我们从这台精心设计的Rube Goldberg机器中得到的只是将
perl/*
复制到perl/blib/*
,就像我们在
*.pm
文件在源代码中的硬编码@@LOCALEDIR@
,以及
pod2man-ingGit.pm
&朋友
所以,用一个几乎是
如何从po/*.po
生成po/build/**.mo
,只需一个小的
命令而不是msgfmt
完成此操作后,将文件从
*.pm
重命名为*.pmc
,以指示它们已生成(请参阅)
使用Git2.32(2021年第2季度),构建过程