Dockerfile issue when running autoheader command - "Can't locate strict.pm in @INC"

68 views Asked by At

I'm working on my first dockerfile and trying to install htslib but I get the following "can't locate strict.pm" error. Does anyone know what this could be or how to fix it?

 ---> 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.

This is my dockerfile:

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

I've tried installing this on Amazon Linux 2 and had no problem doing so but when I go to install this on Amazon's custom EMR Serverless container, I'm finding everything breaks. Any direction would be appreciated!

0

There are 0 answers