我可以安装为较新版本的 R 开发的 R 二进制包吗

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

我正在使用一个只能作为 32 位应用程序使用的程序 (AquaChem) 作为数据库管理工具。

该程序的特点之一是内置R控制台;但是,由于该程序只是 32 位,因此需要较旧的 32 位版本的 R (4.1.3) 才能运行。

当我尝试安装软件包时,我反复遇到错误,如下所示(请注意,这是 1 个示例,但许多不同的软件包都会出现同样的问题):

  There are binary versions available but the source versions are later:
        binary source needs_compilation
scales   1.2.1  1.3.0              TRUE
ggplot2  3.4.2  3.5.1             FALSE

  Binaries will be installed
trying URL 'https://mirror.csclub.uwaterloo.ca/CRAN/bin/windows/contrib/4.1/scales_1.2.1.zip'
Content type 'application/zip' length 617139 bytes (602 KB)
downloaded 602 KB

package ‘scales’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
        C:\Users\XXXXX\AppData\Local\Temp\RtmpMZHYBK\downloaded_packages
installing the source package ‘ggplot2’

trying URL 'https://mirror.csclub.uwaterloo.ca/CRAN/src/contrib/ggplot2_3.5.1.tar.gz'
Content type 'text/plain' length 3604371 bytes (3.4 MB)
downloaded 3.4 MB

* installing *source* package 'ggplot2' ...
** package 'ggplot2' successfully unpacked and MD5 sums checked
** using staged installation
** R
** data
*** moving datasets to lazyload DB
** inst
** byte-compile and prepare package for lazy loading

**THIS IS THE MOST RELEVANT LINE**
Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) : 
  namespace 'scales' 1.2.1 is being loaded, but >= 1.3.0 is required


Calls: <Anonymous> ... withCallingHandlers -> loadNamespace -> namespaceImport -> loadNamespace
Execution halted
ERROR: lazy loading failed for package 'ggplot2'
* removing 'C:/Users/XXXXX/Documents/R/win-library/4.1/ggplot2'

The downloaded source packages are in
        ‘C:\Users\XXXXX\AppData\Local\Temp\RtmpMZHYBK\downloaded_packages’
Warning message:
In install.packages("ggplot2") :
  installation of package ‘ggplot2’ had non-zero exit status

我尝试使用以下方法删除有问题的软件包:

remove.packages('package')

然后使用以下命令重新安装:

install.packages('package')

还有

update.packages()

都没有成功。

根据我读到的有关此类错误(即加载过时的包二进制文件)的内容,最可靠的修复方法是简单地更新我正在使用的 R 版本,但这不是一个对我来说是一个选项,因为 R 4.1.3 是最后一个 32 位版本。

我查看了指定镜像站点的存储库,可以看到被调用的版本是源 URL 上以二进制形式提供的最新版本。

我的问题是:我可以以某种方式重定向默认存储库路径,以便它在 R 4.3 的贡献二进制文件文件夹中查找(https://mirror.csclub.uwaterloo.ca/CRAN/bin/windows/contrib/4.3/ ),或者这是否会由于我的 R 安装和我正在安装的软件包之间的版本差异而导致问题? 或者,您可以建议我的问题有不同的解决方案吗?

请注意,我是 R 的初学者,因此,如果我忽略了一些关键内容或做出了错误的假设,请告诉我。

r namespaces repository version
1个回答
1
投票

一般来说,为 R 版本 x.y.z 构建的二进制文件只能在 x 和 y 匹配的其他版本中工作。如果 z 高于您当前的版本,您会收到警告,但它们通常会起作用。

源包可以在多个版本中工作,但它们有时声明它们需要特定版本的 R 或其他包的特定版本。看起来好像

ggplot2
版本 3.5.1(您尝试安装的版本)已声明需要
scales
版本 1.3.0,但您只有
scales
1.2.1。您可以尝试安装旧版本的
ggplot2
;我认为 3.4.4 是接受该版本
scales
的最新版本。但您可能会遇到其他限制...

所以最好的建议是坚持使用当前版本的 R。这样生活就会变得最轻松。也许可以说服 Aquachem 的开发人员更新他们的应用程序?如果没有,并且您确实需要使用旧版本的 R,那么您将不得不经历很多痛苦才能安装并运行它,然后您就不应该尝试再次更新它。如果您有预算的话,有一些非免费工具(例如 Posit Package Manager)可以使这一切变得更容易。

© www.soinside.com 2019 - 2024. All rights reserved.