makefile:513: pod/perlintern.pod Ошибка сегментации (дамп ядра) при установке определенной версии perl в файл докеров
Я пытаюсь установить perl 5.12.3 на образ Docker Fedora 33 в моем файле докеров, однако, когда я пытаюсь создать образ, я сталкиваюсь с этой ошибкой:
/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
Я предполагаю, что проблема в том, что докер запускает контекст сборки без stdin или tty. Кто-нибудь знает, как исправить это? Я попытался установить perlbrew вместо этого, но это уже оказывало немало собственных проблем. Спасибо за любую помощь или совет. Я открыт для любых других методов установки perl 5.12.3 в образ.
1 ответ
Мне удалось установить Perl версии 5.12.4 с помощью
perlbrew
вот так (здание
fedora:33
образ докера с моего ноутбука Ubuntu 21.04):
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