r - 无法在 docker 映像中安装 R 包
问题描述
几天以来,我在构建 docker 映像期间遇到了安装 R 包的问题:
> install.packages("devtools", repos = "https://mran.microsoft.com/snapshot/2018-10-25")
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning: unable to access index for repository https://mran.microsoft.com/snapshot/2018-10-25/src/contrib:
cannot open URL 'https://mran.microsoft.com/snapshot/2018-10-25/src/contrib/PACKAGES'
>
>
Warning message:
package ‘devtools’ is not available (for R version 3.4.4)
这是我的Dockerfile
:
FROM rocker/rstudio-stable:3.4.4
MAINTAINER Tazovsky
# system libraries of general use
RUN apt-get update && apt-get install -y \
sudo \
pandoc \
pandoc-citeproc \
pkg-config \
libnlopt-dev \
libcurl4-gnutls-dev \
libcairo2-dev \
libxt-dev \
libgsl-dev \
libssl-dev \
libssh2-1-dev \
libssl1.0.0 \
libxml2-dev \
openssl
RUN apt-get update && apt-get install -y \
libmpfr-dev
RUN apt-get install libcurl4-openssl-dev -y
# install java
RUN apt-get update && apt-get install -y openjdk-8-jdk openjdk-8-jre
RUN R CMD javareconf
# r-java
RUN apt-get install r-cran-rjava -y
RUN R -e 'install.packages("devtools", repos = "https://mran.microsoft.com/snapshot/2018-10-25")'
我确信它更早(几周前)起作用了。
此外,我检查了命令
install.packages("devtools", repos = "https://mran.microsoft.com/snapshot/2018-10-25")
在本地,它可以工作。
我还尝试通过运行添加 CA 证书:
本地:
openssl genrsa -des3 -out myCA.key 2048
openssl req -x509 -new -nodes -key myCA.key -sha256 -days 1825 -out myCA.pem
在Dockerfile
:
CP myCA.pem /tmp/myCA.pem
RUN cd tmp && \
openssl x509 -in myCA.pem -inform PEM -out myCA.crt && \
cp myCA.crt /usr/local/share/ca-certificates/myCA.crt && \
update-ca-certificates && \
rm -rf /tmp/*
但这没有帮助。
知道发生了什么吗?
解决方案
你可以尝试改变(它对我有用)
install.packages("devtools", repos = "https://mran.microsoft.com/snapshot/2018-10-25")
至
install.packages("devtools", repos = "http://cran.rstudio.com/")
推荐阅读
- python - 如何从 Python Numpy array1 中提取特定值并从这些值中创建一个与 array1 具有相同形状的新 array2
- java - 我的 java 计算器项目有错误。我不知道如何解决它们
- firebase - Firebase 和 One Signal 推送通知指南
- android - 什么机制导致在 Fragment 到 Fragment 导航中调用 View.onSaveInstanceState?
- asp.net-core - DotNetCore 3.1 中配置的双下划线似乎不像我预期的那样工作
- objective-c - 为什么我的约束在我的 xib 文件中不起作用
- javascript - 如何将嵌套对象转换为一个对象
- python - 以非交互方式获取“帮助()”文本(Python)
- c - 为什么这段代码在第二行写输入?
- macos - 调试人偶错误:找不到依赖项