r - 在 dockerfile 中运行时,“install.packages(RODBC_1.2-6.tar.gz”中出现意外符号
问题描述
我正在尝试通过使用 curl 下载包然后使用 install.packages 安装,将旧版本的 RODBC 安装到我的 dockerfile 中(我使用的是 R 3.6.3,而最新版本的 RODBC 需要 R v4)但我是得到以下错误。关于如何实现这一目标的任何想法?
Error: unexpected symbol in "install.packages(RODBC_1.2-6.tar.gz"
在 dockerfile 中,我尝试使用以下 RUN 语句执行上述操作:
RUN curl https://cran.r-project.org/src/contrib/Archive/RODBC --output RODBC_1.2-6.tar.gz
RUN R -e "install.packages(RODBC_1.2-6.tar.gz)"
完整的 dockerfile 是:
FROM ubuntu:bionic
RUN useradd docker \
&& mkdir /home/docker \
&& chown docker:docker /home/docker \
&& addgroup docker staff
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
software-properties-common \
ed \
less \
locales \
vim-tiny \
wget \
ca-certificates \
&& add-apt-repository --enable-source --yes "ppa:marutter/rrutter3.5" \
&& add-apt-repository --enable-source --yes "ppa:marutter/c2d4u3.5"
## Configure default locale, see https://github.com/rocker-org/rocker/issues/19
RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \
&& locale-gen en_US.utf8 \
&& /usr/sbin/update-locale LANG=en_US.UTF-8
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
littler \
r-base \
r-base-dev \
r-recommended \
&& ln -s /usr/lib/R/site-library/littler/examples/install.r /usr/local/bin/install.r \
&& ln -s /usr/lib/R/site-library/littler/examples/install2.r /usr/local/bin/install2.r \
&& ln -s /usr/lib/R/site-library/littler/examples/installGithub.r /usr/local/bin/installGithub.r \
&& ln -s /usr/lib/R/site-library/littler/examples/testInstalled.r /usr/local/bin/testInstalled.r \
&& install.r docopt \
&& rm -rf /tmp/downloaded_packages/ /tmp/*.rds \
&& rm -rf /var/lib/apt/lists/*
RUN apt-get update
#These are all required, the exact version, for SQL Server to work
RUN apt-get install -y gnupg2 libssl1.0 libssl1.0-dev apt-transport-https
RUN apt-get install -y libcurl4-openssl-dev curl
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN apt-get update
RUN ACCEPT_EULA=Y apt-get install -y msodbcsql17 unixodbc unixodbc-dev
RUN apt-get install -y libssl-dev
RUN install.r tidyr bigrquery dplyr sqldf readr httr uuid
RUN curl https://cran.r-project.org/src/contrib/Archive/RODBC --output RODBC_1.2-6.tar.gz
RUN R -e "install.packages(RODBC_1.2-6.tar.gz)"
COPY src/upload_v2.r /usr/local/src/scripts/upload_v2.r
WORKDIR /usr/local/src/scripts
解决方案
RUN R 行中似乎缺少引号:
RUN curl https://cran.r-project.org/src/contrib/Archive/RODBC --output RODBC_1.2-6.tar.gz
RUN R -e "install.packages('RODBC_1.2-6.tar.gz')"
推荐阅读
- c - 'localtime' api 不考虑本地时区,而是使用太平洋时区
- reactjs - 如何使用 reactjs redux-saga 将数组渲染到列表
- postgresql - 函数返回表,使用一组参数时将记录作为列获取
- html - 特殊字符在反应问题中没有替换
- python - 找不到 Python cli 模块导入
- grails - Grails 2.5.6 中的 Segfault/SIGSEGV 运行功能测试
- mysql - 在 SQL 查询结果中使用格式 DE_DE 和无限小数位
- odoo - 如何停止 Qweb 调用计算域的计算方法以在 odoo9 中生成结果?
- go - 在 golang jwt-go 中解码 JWT
- azure - Azure API 管理 - 开发门户:在操作视图上显示产品级别策略?