Проблема с Dockerfile при запуске команды autoheader: «Невозможно найти strict.pm в @INC»
Я работаю над своим первым файлом docker и пытаюсь установить htslib, но получаю следующую ошибку «не могу найти строгий.pm». Кто-нибудь знает, что это может быть или как это исправить?
---> Running in 0fd66f94ef7c
+ mkdir -p /opt
+ cd /opt
+ ls
aws
+ git clone https://github.com/samtools/htslib.git
Cloning into 'htslib'...
+ cd htslib
+ git checkout 1.17
Note: switching to '1.17'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 6143086 Release 1.17
+ autoheader
Can't locate strict.pm in @INC (@INC contains: /usr/share/autoconf /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/share/autoconf/Autom4te/Channels.pm line 70.
BEGIN failed--compilation aborted at /usr/share/autoconf/Autom4te/Channels.pm line 70.
Compilation failed in require at /usr/share/autoconf/Autom4te/ChannelDefs.pm line 19.
BEGIN failed--compilation aborted at /usr/share/autoconf/Autom4te/ChannelDefs.pm line 19.
Compilation failed in require at /usr/bin/autoheader line 41.
BEGIN failed--compilation aborted at /usr/bin/autoheader line 41.
Это мой докер-файл:
FROM public.ecr.aws/emr-serverless/spark/emr-6.9.0:latest
USER root
# set variables
ARG HTSLIB_VERSION="1.17"
ARG SAMTOOLS_VERSION="1.10"
ARG HAIL_VERSION="0.2.108"
ARG SPARK_VERSION="3.3.0"
ARG HTSLIB_REPOSITORY_URL="https://github.com/samtools/htslib.git"
# htslib install
RUN set -xe \
yum update -y && \
yum upgrade -y && \
yum -y install \
autoconf \
bzip2-devel \
gcc72 \
git \
libcurl \
libcurl-devel \
openssl-devel \
xz-devel \
zlib-devel
RUN set -xe \
&& mkdir -p /opt \
&& cd /opt \
&& ls \
#RUN yum -y groupinstall "Development Tools"
&& git clone $HTSLIB_REPOSITORY_URL \
&& cd htslib \
&& git checkout $HTSLIB_VERSION \
## Problem starts here
&& autoheader \
&& autoconf \
&& make -j "$(grep -c ^processor /proc/cpuinfo)" \
&& make install
USER hadoop:hadoop
Я попробовал установить это на Amazon Linux 2, и у меня не возникло никаких проблем, но когда я собираюсь установить это на собственный бессерверный контейнер EMR Amazon, я обнаруживаю, что все ломается. Любое направление будет оценено по достоинству!