es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Alpine – libmhash (no existe dicho paquete)

Usando un Dockerfile, quiero instalar libmhash desde una imagen basada en alpine (FROM varnish:7.0-alpine).

Necesito estos paquetes para que funcione mi Dockerfile:

RUN apk update && apk add --no-cache \
    python3 \
    py3-docutils \
    py3-sphinx \
    varnish-dev \
    curl \
    libtool \
    automake \
    git \
    autoconf \
    musl \
    libmhash \
    openssl-dev

Y tengo este error:

#5 1.064 fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/aarch64/APKINDEX.tar.gz
#5 1.423 fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/aarch64/APKINDEX.tar.gz
#5 1.863 ERROR: unable to select packages:
#5 1.883   libmhash (no such package):

Como puedes ver, tengo un M1 Pro… Lo que no entiendo es, vi una versión ARM del paquete: https://pkgs.alpinelinux.org/contents?file=&path=&name=libmhash&branch=edge&repo=testing&arch=armv7

¿Alguna solución alternativa?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el paquete libmhash no está disponible para la arquitectura (aarch64) que estás utilizando (M1 Pro). Una posible solución alternativa es intentar usar la versión ARM del paquete (como mencionaste en la pregunta), pero para la arquitectura más cercana disponible para tu hardware. En este caso, puedes probar usando la versión armv7 y actualizar tu Dockerfile de la siguiente manera:

    FROM varnish:7.0-alpine
    
    RUN apk update && apk add --no-cache \
        python3 \
        py3-docutils \
        py3-sphinx \
        varnish-dev \
        curl \
        libtool \
        automake \
        git \
        autoconf \
        musl \
        && apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing --arch armv7 libmhash \
        && apk add --no-cache openssl-dev
    

    En este Dockerfile, agregamos el paquete libmhash usando la bandera --repository con la URL del repositorio Alpine para la rama testing, ya que este paquete no está disponible en el repositorio principal para la arquitectura aarch64. También especificamos la bandera --arch para instalar el paquete para la arquitectura más cercana disponible (armv7). Finalmente, también agregamos el paquete openssl-dev que faltaba en tu Dockerfile original.

    Una vez que actualices tu Dockerfile, puedes construir tu imagen utilizando el siguiente comando:

    docker build -t nombre-de-tu-imagen .
    

    Y luego ejecutar tu contenedor como de costumbre:

    docker run -it nombre-de-tu-imagen
    

    Esto debería permitirte instalar el paquete libmhash en tu contenedor y, con suerte, solucionar el error que estabas encontrando.

Comments are closed.