我在使用 RHEL9 VM 中的 Rscript 访问 NEXUS 3.52.0-01 上的本地托管 R 代理存储库时遇到问题。
我可以通过curl访问包列表。
$ curl https://<NEXUS_HOST>/repository/r-proxy/src/contrib/PACKAGES | head -n 20
Package: A3
Version: 1.0.0
Depends: R (>= 2.15.0), xtable, pbapply
Suggests: randomForest, e1071
NeedsCompilation: no
License: GPL (>= 2)
Package: AalenJohansen
Version: 1.0
Suggests: knitr, rmarkdown
NeedsCompilation: no
License: GPL (>= 2)
Package: AATtools
Version: 0.0.3
Depends: R (>= 3.6.0)
Imports: magrittr, dplyr, doParallel, foreach
NeedsCompilation: no
License: GPL-3
如果我尝试使用 Rscript 和 install.packages 下载列出的软件包之一,我会收到以下错误消息。
$ /usr/bin/Rscript --slave --no-save --no-restore-history -e 'install.packages("A3", lib="<PATH_TO_USER_LIB>", repos="https://<NEXUS_HOST>/repository/r-proxy")'
Warning: unable to access index for repository https://<NEXUS_HOST>/repository/r-proxy/src/contrib:
cannot open URL 'https://<NEXUS_HOST>/repository/r-proxy/src/contrib/PACKAGES'
Warning message:
package ‘A3’ is not available for this version of R
A version of this package for your version of R might be available elsewhere,
see the ideas at
https://cran.r-project.org/doc/manuals/r-patched/R-admin.html#Installing-packages
我可以想象我需要告诉 Rscript 正在使用正确的证书。但我不知道如何告诉 Rscript 使用特定的证书。 另一方面,我认为 RScript 使用与curl 相同的系统信任存储。这再次表明不存在证书问题。
首先,您应该按照此处所述提高 Nexus 的日志记录级别来验证 Rscript 请求do
是否到达您的 Nexus如果您的 Nexus 在反向代理后面运行,请检查用于处理 Rscript 请求的代理规则。反向代理可能包含处理 Maven 请求的规则(*.jar、*.sha1、*.zip 等)。 R 工件采用 *.tgz 格式。可能缺少适当的规则。