如何在Linux(Red Hat / CentOS)上更新为特定的R版本,并保持先前 的版本?

问题描述 投票:2回答:1

(可能是典型的)在Linux上升级R故事...

历史记录:

[在过去的某个时候,我使用当时yum软件包管理器下拉的默认版本更新了RHEL / CentOS 7服务器上的R版本。例如,在2019年初某个时候,将sudo yum install R升级到3.5.2版。默认情况下,这将为所有用户在/usr/lib64/R上安装R,并完全替换以前在此安装的3.4.x版本。已经安装了Shiny Server,并将其配置为以用户shiny的身份运行,并且它顺利安装了R的新版本。

情况:

一年后,现在该该硬着头皮并更新Linux服务器上运行的R的版本了。运行yum check-upgrade R,我发现可用的版本是3.6.0。我实际上想安装3.6.3,并且不想破坏在3.5.2上运行的所有应用程序,因此我需要使用其他方法。按照https://docs.rstudio.com/resources/install-r/上的说明,我下载并安装了3.6.3 .rpm文件。默认情况下,这会将R安装在/opt/R/3.6.3/,而保持3.5.2版本不变。但是,一旦完成Create a symlink to R步骤,我的所有闪亮应用都将无法正常工作:

sudo ln -s /opt/R/3.6.3/bin/R /usr/local/bin/R  
sudo ln -s /opt/R/3.6.3/bin/Rscript /usr/local/bin/Rscript  

这不足为奇。我所有闪亮的应用程序都依赖于该新版本的R尚未安装的几个R软件包。我可以通过删除这些符号链接,直到安装完之后,快速使我的应用程序再次在旧版本(3.5.2)上运行。新版本中的必要软件包:

sudo rm /usr/local/bin/R  
sudo rm /usr/local/bin/Rscript 

我闪亮的应用程序日志文件中的错误消息(在/var/log/shiny-server/<app name>-<user>-<datetime>.log处,确认由于缺少软件包而导致应用程序无法启动。要更新共享库文件夹中的R软件包,我需要以sudo的形式运行R的新版本:sudo -i /opt/R/3.6.3/bin/R并安装必要的软件包,例如R中的install.packages(c("shiny","devtools","rmarkdown","shinydashboard","tidyverse"))

现在已经安装了R软件包,我可以重新创建符号链接:

sudo ln -s /opt/R/3.6.3/bin/R /usr/local/bin/R  
sudo ln -s /opt/R/3.6.3/bin/Rscript /usr/local/bin/Rscript  

我确认我的应用程序正在使用新版本的R。

现在我有一些问题:

问题1:

完成这些步骤后,R --version仍返回旧版本(3.5.2)。但是,第二天我重新登录时,它打开3.6.3。为什么?我是否需要运行终端命令以获取R --version立即返回新版本,还是打开新终端窗口的唯一方法?

问题2:

运行sudo R --version总是返回旧版本(3.5.2)。运行sudo which R将返回/bin/R。运行more /bin/R会显示内容为“ R可执行程序的Shell包装程序”的内容。并具有硬编码的“ / usr / lib64 / R”路径。我认为目前我不需要此包装器。建议使这些sudo命令指向新版本的方法是什么?

为了防万一,我可以在我的主目录(例如cp /bin/R ~/binR.backup)中对此文件进行备份,然后:*删除/ bin / R?*将/ bin / R替换为新版本的符号链接(例如sudo ln -s /opt/R/3.6.3/bin/R /bin/R)?*使用与安装3.6.3的方式相同的.rpm将“旧”版本重新安装到/opt/R/3.5.2/中,然后在其中安装软件包,然后删除/usr/lib64/R版本(例如sudo yum remove R)吗?

[可能是典型的]在Linux上升级R的故事...历史:在过去的某个时候,我使用yum下拉的默认版本更新了RHEL / CentOS 7服务器上R的版本...] >

r linux shiny centos7
1个回答
0
投票

问题1:

我不确定为什么,但是在PATH上使用多个R版本会导致类似这样的意外情况。 /usr/local/bin通常在PATH中位于/usr/bin之前,因此我期望找到R 3.6.3。也许与问题2有关。
© www.soinside.com 2019 - 2024. All rights reserved.