Ubuntu 16.04 安装 R 4.1 报错无法修正损坏的持有软件包如何解决
兼容性问题确认
你的怀疑是正确的,Ubuntu 16.04(代号Xenial Xerus)官方默认软件源以及CRAN官方提供的预编译源都不再支持R 4.x系列版本,CRAN从R 4.0版本开始就停止了对Ubuntu 16.04的适配支持,所以直接执行apt install默认只能安装到3.6.3版本。
第一步:修复损坏的软件包状态
先执行以下命令清理当前的依赖冲突:
sudo apt --fix-broken install sudo dpkg --configure -a sudo apt autoremove && sudo apt clean sudo apt update
第二步:安装R 4.1.0的两种可行方案
方案一:使用适配Xenial的第三方PPA安装
操作步骤如下:
- 移除之前错误添加的不适配的R源,避免再次出现依赖冲突
sudo rm -f /etc/apt/sources.list.d/cran*.list sudo add-apt-repository --remove ppa:marutter/rrutter4.0
- 添加适配Ubuntu 16.04的R 4.x PPA并导入公钥
sudo add-apt-repository ppa:c2d4u.team/c2d4u4.0+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 sudo apt update
- 指定版本安装R 4.1.0
sudo apt install --no-install-recommends r-base-core=4.1.0-1.16.04.1 r-base=4.1.0-1.16.04.1
方案二:源码编译安装(稳定性更高,无依赖冲突)
如果PPA安装仍出现依赖问题,推荐使用源码编译安装:
- 先安装编译所需的依赖包
sudo apt build-dep r-base sudo apt install gcc g++ gfortran libreadline-dev libx11-dev libxt-dev libpng-dev libjpeg-dev libcairo2-dev libcurl4-openssl-dev libssl-dev libxml2-dev
- 从CRAN平台下载R 4.1.0的源码压缩包,解压后进入源码目录
- 执行编译配置、编译和安装操作
./configure --enable-R-shlib --with-blas --with-lapack make -j$(nproc) sudo make install
- 验证安装:执行
R --version,返回版本号为4.1.0即为安装成功。
内容的提问来源于stack exchange,提问作者Canovice
相关产品推荐
相关产品推荐

