當n從R 3.6升級到R 4.0時,如何將R指向正確的curl版本?

當n從R 3.6升級到R 4.0時,如何將R指向正確的curl版本?

完全披露,我已經在 SO 上發布了同樣的問題,但根據建議我嘗試這個論壇!我最初在幾個月前在 RStudio 社群發布了這個問題,這有助於縮小問題範圍,但仍然沒有解決方案(https://community.rstudio.com/t/https-protocol-error-when-upgrading-from-r-3-6-to-r-4-0/88234/2)。

2018 年左右,我按照這裡的說明在 CentOS 7 伺服器上安裝了帶有 R 3.6.0 的 RStudio Server(免費版):(https://s3.amazonaws.com/rstudio-server/rstudio-server-pro-0.98.507-admin-guide.pdf

一切都很順利,沒有任何問題。最近,我需要升級R的版本,並按照此處的說明安裝了R 4.0.0:(https://docs.rstudio.com/resources/install-r/

安裝後,在命令列或 RStudio IDE 中安裝套件會引發以下錯誤:

Protocol "https" not supported or disabled in libcurl

我檢查了 libcurlVersion() 回傳:

[1] "7.47.0"
attr(,"ssl_version")
[1] "none"
attr(,"libssh_version")
[1] ""
attr(,"protocols")
[1] "dict" "file" "ftp" "gopher" "http" "imap" "pop3" "rtsp"
[9] "smtp" "telnet" "tftp"

所以我可以看到 https 沒有在協議中列出。電腦上還有另一個版本的curl(7.73.0)(位於/usr/bin/curl),其協議中確實列出了https,因此我需要將R指向此版本。我怎麼才能將R指向這個版本的curl?

答案1

這裡的主要問題是由預編譯函式庫安裝 R 引起的。為了解決這個問題,我按照說明從原始程式碼安裝 R(當然,將curl 步驟中的 URL 更改為所需的 R 版本):

https://docs.rstudio.com/resources/install-r-source/

在「建置並安裝 R」下執行編譯步驟之前,我在終端機中設定 PKG_CONFIG_PATH=/usr/local/lib (這是我的 libcurl 7.73.0 的位置),然後按照其餘的安裝說明進行操作。

最後,我編輯了 rserver.conf 檔案以指向新版本的 R,然後重新啟動 RStudio Sever,一切正常。

相關內容