极简Ubuntu 16.04 Docker镜像编译Git遇Perl模块缺失报错
解决Ubuntu 16.04极简Docker镜像中编译Git时的Perl模块缺失问题
这个Can't locate ExtUtils/MakeMaker.pm报错其实很明确——Git编译过程里需要用到Perl的ExtUtils::MakeMaker模块来构建一些Perl相关工具,但你的极简Ubuntu镜像里没预装这个模块。下面给你两种实用的解决思路,按需选择就行:
方法一:通过CPAN安装缺失的Perl模块
因为你已经有基础的Perl环境(Git编译依赖它),直接用CPAN安装就行:
- 运行以下命令初始化CPAN并安装模块:
第一次运行CPAN会弹出配置提示,直接选默认的自动配置选项就好,等安装完成后回到Git源码目录重新执行perl -MCPAN -e 'install ExtUtils::MakeMaker'make就行。
方法二:通过Git的配置选项规避Perl依赖
如果你的场景里根本用不上Git的Perl相关工具(比如git-send-email这类),完全可以在编译时跳过这部分,效率更高:
- 先清理之前可能生成的编译文件(如果已经跑过
configure或make):make distclean - 执行configure时禁用Perl支持:
./configure --without-perl - 再正常执行
make就不会再报这个错了。
要是你手动把ExtUtils::MakeMaker装到了自定义路径,还可以通过设置环境变量让Perl找到它:
export PERL5LIB=/你的自定义模块路径/lib/perl5:$PERL5LIB ./configure make
在Docker极简镜像里,我更推荐用--without-perl的方式,既能快速解决问题,还能让最终的镜像体积更小。
内容的提问来源于stack exchange,提问作者Kalle Richter
相关产品推荐
相关产品推荐

