makefile:513: pod/perlintern.pod Segmentation fault (core dumped) 在 dockerfile 中安装特定的 perl 版本时

makefile:513: pod/perlintern.pod Segmentation fault (core dumped) When installing specific perl version in dockerfile

我正在尝试将 perl 5.12.3 安装到我的 docker 文件中的 Fedora 33 Docker 映像上,但是当我尝试构建映像时遇到此错误:

/bin/sh: line 1: /dev/tty: No such device or address
make[1]: Leaving directory '/'
make[1]: [makefile:964: minitest] Error 1 (ignored)
./miniperl -Ilib autodoc.pl
make: *** [makefile:513: pod/perlintern.pod] Segmentation fault (core dumped)

这就是我尝试安装它的方式:

RUN wget https://www.cpan.org/authors/id/R/RJ/RJBS/perl-5.12.3.tar.gz
RUN tar -xzf perl-5.12.3.tar.gz
RUN perl-5.12.3/Configure -Dmksymlinks -des -Dprefix=/usr/local/ -d y &&\
    make && \
    make test && \
    make install
RUN perl -v

我想问题是 docker 是 运行 没有标准输入或 tty 的构建上下文。有谁知道解决这个问题?我尝试安装 perlbrew 来完成此操作,但事实证明它本身存在很多问题。感谢您提供任何帮助或建议。我愿意接受在映像中安装 perl 5.12.3 的任何其他方法。

我可以像这样用 perlbrew 安装 Perl 版本 5.12.4(从我的 Ubuntu 21.04 笔记本电脑构建 fedora:33 docker 图像):

Dockerfile:

FROM fedora:33
SHELL ["/bin/bash", "-c"]
RUN yum -y update \
        && yum -y install gcc gcc-c++ make curl \
        vim wget zlib-devel openssl-devel bzip2 patch \
        perl-CPAN perl-App-cpanminus

ARG user=root
ARG home=/$user
WORKDIR $home
USER $user
COPY entrypoint.sh .
RUN chmod +x entrypoint.sh
ENTRYPOINT ["./entrypoint.sh"]

entrypoint.sh:

curl -L https://install.perlbrew.pl | SHELL=/bin/bash bash
echo 'export PERLBREW_ROOT=$HOME/perl5/perlbrew' >> .bashrc
echo 'source $PERLBREW_ROOT/etc/bashrc' >> .bashrc
export PERLBREW_ROOT=$HOME/perl5/perlbrew
source $PERLBREW_ROOT/etc/bashrc
perlbrew install --notest --noman perl-5.12.4
perlbrew install-cpanm
perlbrew switch perl-5.12.4
perl --version
exec bash