Fedora 26安装WWW::Curl::Easy失败求助:make执行报错
我之前在Fedora系统上折腾过这个Perl模块,确实踩过不少坑,结合你的情况,给你几个针对性的排查方向,你可以逐一试试:
补全Perl编译依赖工具链
WWW::Curl属于Perl的XS模块,编译时需要依赖Perl的核心编译工具。Fedora默认可能没装全这些包,试试执行:sudo dnf install perl-ExtUtils-MakeMaker perl-ExtUtils-CBuilder perl-ExtUtils-Embed
安装完成后再重新尝试编译安装模块。手动指定curl-config路径
有时候系统里的curl-config路径没被Perl的Makefile.PL正确识别,先确认路径:which curl-config,得到路径后,安装时手动传入参数:perl Makefile.PL --curl-config=/path/to/your/curl-config
接着再执行make && make test && make install。尝试更新WWW::Curl版本
你用的WWW-Curl 4.17是比较老的版本了,Fedora 26自带的curl版本可能和它存在兼容性问题。可以试试安装最新稳定版:
先装cpanm工具:sudo dnf install perl-App-cpanminus,然后执行cpanm WWW::Curl,让cpanm自动处理依赖和版本适配。查看make的详细报错日志
只显示make NO太笼统,根本找不到问题根源。重新执行安装命令并保存详细输出:perl Makefile.PL && make 2>&1 > make_error.log
打开日志查看具体错误,比如是否是curl/curl.h头文件找不到,或者链接时找不到libcurl.so库?如果是头文件问题,检查/usr/include/curl目录是否存在;如果是库文件问题,执行ldconfig -p | grep libcurl确认库是否被系统识别。优先尝试系统包管理器安装
Fedora的软件仓库里可能有现成的打包好的模块,试试搜索:dnf search perl-WWW-Curl,如果能找到,直接执行sudo dnf install perl-WWW-Curl,这种方式能避开手动编译的各种兼容问题,省心很多。排查SELinux的干扰
Fedora默认开启SELinux,有时候会阻止编译过程中的文件访问操作。可以临时关闭SELinux测试:sudo setenforce 0,然后重新编译安装。如果成功了,再考虑添加合适的SELinux规则(生产环境不建议长期关闭)。
内容的提问来源于stack exchange,提问作者TheAdam122

