无法在docker中安装perl模块PerlIO :: locale

时间:2014-02-05 17:27:15

标签: perl docker

我遇到了在docker中安装某些perl模块的问题。对于默认的ubuntu映像,是否有建议的稳定方法?

此外,我无法在失败的版本中访问安装日志文件(例如,对于cpan减去/.cpanm/build.log)。

以下Dockerfile失败并显示以下消息:

请指定locale.xs的原型行为(请参阅perlxs手册)

当它试图解决对PerlIO :: locale的依赖时。

# use the ubuntu base image provided by dotCloud
FROM ubuntu

# make sure the package repository is up to date
RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
RUN apt-get update

# install perl and modules
RUN apt-get install -y make
RUN apt-get install -y perl
RUN apt-get install -y cpanminus

RUN cpanm -v Text::Names

2 个答案:

答案 0 :(得分:3)

某些模块包含需要在目标系统上编译的C代码(“XS模块”)。为此,您需要一个完整的C工具链。这意味着make,编译器:gcc和C标准库头:libc-devbuild-essential元数据包包含这些组件(以及其他一些组件),因此我建议您安装它。

答案 1 :(得分:3)

根据perlxstut,这只是一个警告,而不是一个致命的错误。

有一个明确记录的默认值(perlxs:“默认情况下启用了原型”)。此外,这个特定的XS组件实际上并没有将任何函数导出到Perl,因此甚至不使用该设置。

警告可以通过向PROTOTYPES: ENABLE添加locale.xs来保持沉默 - 您甚至可以要求作者进行更改 - 但这不会有任何区别。

问题出在其他地方。