CentOS EC2实例的RServer环境中能否安装caret包?
在CentOS EC2的RServer中安装caret包的解决方案
没问题,Linux环境完全可以安装caret包,你遇到的报错核心原因是你的R版本(3.4.1)太老旧了,当前CRAN上的caret包已经不再适配这么早期的R版本,所以才会提示“package ‘caret’ is not available”。下面给你两种可行的解决方案:
方案一:升级R版本到兼容版本(推荐)
升级R到最新的稳定版是最稳妥的选择,后续也能避免其他包的兼容问题:
- 首先为CentOS添加CRAN的yum源:
编辑/etc/yum.repos.d/cran.repo文件,写入以下内容:[CRAN] name=CRAN baseurl=https://cran.rstudio.com/bin/linux/centos/$releasever/$basearch/ gpgcheck=1 gpgkey=https://cran.rstudio.com/bin/linux/centos/RPM-GPG-KEY-cran - 执行yum命令升级R:
sudo yum update R - 升级完成后,重新运行安装命令即可:
install.packages("caret", dependencies=TRUE, repos='http://cran.rstudio.com/')
方案二:安装适配R 3.4.1的旧版caret包
如果因为业务限制无法升级R,可以安装适配旧版R的caret历史版本:
- 先安装
devtools包(用于安装指定版本的R包):install.packages("devtools") - 加载devtools并安装caret的旧版本(比如适配R 3.4.x的
6.0-86版本):library(devtools) install_version("caret", version = "6.0-86", repos = "http://cran.rstudio.com/")
注意:旧版本caret可能缺少新功能,且后续依赖包也可能出现兼容问题,所以仅在无法升级R时使用此方案。
额外注意事项
在CentOS上编译安装R包时,可能需要先安装系统级依赖工具,避免编译报错:
sudo yum install gcc gcc-c++ make libcurl-devel openssl-devel libxml2-devel
内容的提问来源于stack exchange,提问作者Cauder




