在Ubuntu 20.04 Docker镜像中安装指定版本R(4.2.3)
在Ubuntu 20.04镜像中安装特定版本R 4.2.3
要在Ubuntu 20.04基础镜像中安装R 4.2.3,你需要在安装时明确指定版本号,同时添加版本锁定规则避免后续操作中R被意外升级。以下是修改后的Dockerfile:
FROM ubuntu:20.04 ENV DEBIAN_FRONTEND noninteractive RUN apt-get update -qq && apt-get -y install --no-install-recommends --no-install-suggests \ ca-certificates software-properties-common gnupg2 gnupg1 \ && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 \ && add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/' # 添加版本锁定规则,防止R被意外升级 RUN echo "Package: r-base r-base-dev r-recommended r-base-core" > /etc/apt/preferences.d/r-base \ && echo "Pin: version 4.2.3-1.2004.0" >> /etc/apt/preferences.d/r-base \ && echo "Pin-Priority: 1001" >> /etc/apt/preferences.d/r-base # 安装指定版本的R及核心组件 RUN apt-get update -qq && apt-get -y install --no-install-recommends \ r-base=4.2.3-1.2004.0 \ r-base-dev=4.2.3-1.2004.0 # 安装其他必要依赖包 RUN apt-get -y --no-install-recommends install \ curl \ libxml2-dev \ libcairo2-dev \ libsqlite3-dev \ libmariadbd-dev \ libpq-dev \ libssh2-1-dev \ unixodbc-dev \ libcurl4-openssl-dev \ libssl-dev \ libsodium-dev # 验证安装的R版本 RUN R --version
关键说明:
- 版本号确认:
4.2.3-1.2004.0是R 4.2.3对应Ubuntu 20.04(focal)仓库中的完整版本号,你可以在临时Ubuntu 20.04容器中执行apt-cache show r-base命令确认该版本的存在性。 - 版本锁定:通过
/etc/apt/preferences.d/r-base配置文件设置Pin-Priority为1001,确保后续执行apt-get upgrade等操作时,系统不会自动升级R相关包。 - 精准安装:在
apt-get install命令后直接指定版本号,强制安装目标版本而非仓库中的最新版。
若安装时遇到依赖冲突,可尝试添加--fix-missing参数,或查看冲突依赖包的对应版本并一并指定安装。
内容的提问来源于stack exchange,提问作者Yasin Amini
相关产品推荐
相关产品推荐

