Ошибка при установке пакета redux R на centos7

Я получаю сообщение об ошибке при попытке установить пакет redux r на centos7 и понятия не имею, как это исправить. Кто-нибудь сталкивался с этим раньше?

мой Dockerfile:

FROM centos:centos7

RUN yum -y install wget git tar

RUN yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

RUN yum -y install epel-release openssh-server

ENV R_VERSION=4.0.5

RUN wget https://cdn.rstudio.com/r/centos-7/pkgs/R-${R_VERSION}-1-1.x86_64.rpm \
  && yum -y install R-${R_VERSION}-1-1.x86_64.rpm \
  && rm R-${R_VERSION}-1-1.x86_64.rpm

ENV PATH = "${PATH}:/opt/R/${R_VERSION}/bin/"

RUN yum -y install openssl-devel


RUN Rscript -e "install.packages(c('redux'), repos = 'https://packagemanager.rstudio.com/all/__linux__/centos7/latest')"

RUN Rscript -e "library(redux)"

CMD ["/bin/bash"]

Затем я создаю образ:

docker build -t test-3:latest .

И ошибка, которую я получаю:

=> ERROR [8/8] RUN Rscript -e "library(redux)"                                                                                                                                                                    0.6s
------                                                                                                                                                                                                                  
 > [8/8] RUN Rscript -e "library(redux)":                                                                                                                                                                               
#12 0.528 Error: package or namespace load failed for 'redux' in dyn.load(file, DLLpath = DLLpath, ...):                                                                                                                
#12 0.528  unable to load shared object '/opt/R/4.0.5/lib/R/library/redux/libs/redux.so':                                                                                                                               
#12 0.528   libhiredis.so.0.12: cannot open shared object file: No such file or directory                                                                                                                               
#12 0.528 Execution halted
------
executor failed running [/bin/sh -c Rscript -e "library(redux)"]: exit code: 1

пс. Я могу установить любой другой пакет и ссылаться на него без проблем

Кстати, чтобы оптимизировать образ Docker, я рекомендую объединить несколько строк установки yum в одну команду RUN. Каждая команда RUN создает новый слой, и здесь это бессмысленно.

joanis 30.09.2022 15:54

Кроме того, рекомендуется обновить свой образ с помощью RUN yum -y update в самом начале, чтобы вы могли получать последние исправления и пакеты.

joanis 30.09.2022 15:55
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
59
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Кажется, этот файл взят из пакета hiredis: https://rhel.pkgs.org/7/okey-x86_64/hiredis-0.12.1-1.el7.centos.x86_64.rpm.html

Попробуйте добавить строку RUN yum -y install hiredis или добавить этот пакет в одну из существующих строк установки yum.

Оказывается, мне также нужно было установить hiredis для успешной загрузки пакета.

Обновленный докерфайл:

FROM centos:centos7

RUN yum -y install wget git tar

RUN yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

RUN yum -y install epel-release openssh-server

ENV R_VERSION=4.0.5

RUN wget https://cdn.rstudio.com/r/centos-7/pkgs/R-${R_VERSION}-1-1.x86_64.rpm \
  && yum -y install R-${R_VERSION}-1-1.x86_64.rpm \
  && rm R-${R_VERSION}-1-1.x86_64.rpm

ENV PATH = "${PATH}:/opt/R/${R_VERSION}/bin/"

RUN yum -y install openssl-devel hiredis


RUN Rscript -e "install.packages(c('redux'), repos = 'https://packagemanager.rstudio.com/all/__linux__/centos7/latest')"

RUN Rscript -e "library(redux)"

CMD ["/bin/bash"]

Другие вопросы по теме