我正在使用一个只能作为 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 版本 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)可以使这一切变得更容易。