【问题标题】:r package installation error "unknown type name ‘R_CallMethodDef’"r包安装错误“未知类型名称'R_CallMethodDef'”
【发布时间】:2019-01-31 08:50:34
【问题描述】:

我正在尝试使用install.packages() 安装 r 包“sparsesvd”,但在编译过程中出错。非常感谢任何帮助!

“未知类型名称‘R_CallMethodDef’”

我也试过conda install -c r r-sparsesvd;但出现错误。

解决环境:失败

PackagesNotFoundError:以下包不可用 当前频道:

  • r-sparsesvd

当前频道:

我试过了

conda skeleton cran --recursive r-sparsesvd conda build r-sparsesvd

虽然第一步成功,但构建失败。

执行停止 r-sparsesvd-0.1_4-r341h96ca727_0.tar.bz2 测试失败

这里是会话信息。由于项目原因,我必须使用R3.3

R 版本 3.3.2 (2016-10-31) 平台:x86_64-pc-linux-gnu (64-bit) 运行于:CentOS Linux 7 (Core)

语言环境:[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=en_US.UTF-8 LC_NAME=C [9] LC_ADDRESS=C
LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

附加的基础包:[1] stats graphics grDevices utils
数据集方法库

通过命名空间加载(未附加):[1] tools_3.3.2

【问题讨论】:

  • 感谢您的评论!但是存档的那个和install.packages()自动选择的有什么不同呢?
  • 还有一个post与错误unknown type name ‘R_CallMethodDef相关,但是作者没有详细说明如何解决这个问题。有人可以帮忙吗?

标签: r installation package


【解决方案1】:

这(再次)不是 R、CRAN 或其软件包的问题……但显然是 Conda 的问题。在我的系统上,这个 small 包完全没有问题,依赖很少:

R> install.packages("sparsesvd")
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
trying URL 'https://cloud.r-project.org/src/contrib/sparsesvd_0.1-4.tar.gz'
Content type 'application/x-gzip' length 29729 bytes (29 KB)
==================================================
downloaded 29 KB

* installing *source* package ‘sparsesvd’ ...
** package ‘sparsesvd’ successfully unpacked and MD5 sums checked
** libs
gcc -I"/usr/share/R/include" -DNDEBUG      -fpic  -g -O3 -Wall -pipe   -std=gnu99 -march=native -c las2.c -o las2.o
gcc -I"/usr/share/R/include" -DNDEBUG      -fpic  -g -O3 -Wall -pipe   -std=gnu99 -march=native -c main.c -o main.o
gcc -I"/usr/share/R/include" -DNDEBUG      -fpic  -g -O3 -Wall -pipe   -std=gnu99 -march=native -c svdlib.c -o svdlib.o
gcc -I"/usr/share/R/include" -DNDEBUG      -fpic  -g -O3 -Wall -pipe   -std=gnu99 -march=native -c svdutil.c -o svdutil.o
svdutil.c: In function ‘svd_readBinFloat’:
svdutil.c:265:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     y = *((float *) &x);
     ^
svdutil.c: In function ‘svd_writeBinFloat’:
svdutil.c:290:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
   int y = htonl(*((int *) &r));
   ^~~
gcc -Wl,-S -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o sparsesvd.so las2.o main.o svdlib.o svdutil.o -L/usr/lib/R/lib -lR
installing to /usr/local/lib/R/site-library/sparsesvd/libs
** R
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (sparsesvd)

The downloaded source packages are in
    ‘/tmp/RtmpI3TPWj/downloaded_packages’
R> 

【讨论】:

  • 谢谢!关于如何在我的机器上解决这个问题有什么建议吗?
  • 对不起,没有。您可以尝试通过更简单的包、更简单的编译来缩小范围……而且,正如我所提到的,尽量不要使用 Conda。
  • 感谢您的回复!该错误 unknown type name ‘R_CallMethodDef 来自 install.packages,而不是 conda
  • 当然可以。因为它会编译然后链接,因此会出现链接错误,因为您似乎混合了不兼容的系统。
猜你喜欢
  • 1970-01-01
  • 2012-02-20
  • 2016-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-29
相关资源
最近更新 更多