首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RMySQL安装:$operator对原子向量无效

RMySQL安装:$operator对原子向量无效
EN

Stack Overflow用户
提问于 2012-07-19 13:35:29
回答 1查看 414关注 0票数 0

考虑下面的场景。在R2.14.0中添加包'RMySQL‘

代码语言:javascript
复制
> install.packages('RMySQL',type='source')


* installing *source* package 'RMySQL' ...
** package 'RMySQL' successfully unpacked and MD5 sums checked
**checking for $MYSQL_HOME... C:/wampp/mysql/**

gcc  -I"G:/PROGRA~1/R/R-214~1.0/include" -I"C:/wampp/mysql/"/include    -I"d:/RCompile/CRANpkg/extralibs/local/include"     -O3 -Wall  -std=gnu99 -mtune=core2 -c RS-DBI.c -o RS-DBI.o
gcc  -I"G:/PROGRA~1/R/R-214~1.0/include" -I"C:/wampp/mysql/"/include    -I"d:/RCompile/CRANpkg/extralibs/local/include"     -O3 -Wall  -std=gnu99 -mtune=core2 -c RS-MySQL.c -o RS-MySQL.o
gcc -shared -s -static-libgcc -o RMySQL.dll tmp.def RS-DBI.o RS-MySQL.o -Ld:/RCompile/CRANpkg/extralibs/local/lib C:/wampp/mysql//lib/opt/libmysql.lib -LG:/PROGRA~1/R/R-214~1.0/bin/i386 -lR
installing to G:/Program Files/R/R-2.14.0/library/RMySQL/libs/i386
** R
** inst
** preparing package for lazy loading
Creating a generic function for 'format' from package 'base' in package 'RMySQL'
Creating a generic function for 'print' from package 'base' in package 'RMySQL'
** help
*** installing help indices
** building package indices ...
** testing if installed package can be loaded
Error : .onLoad failed in loadNamespace() for 'RMySQL', details:
  call: i$Location
  error: $ operator is invalid for atomic vectors
Error: loading failed
Execution halted
ERROR: loading failed
* removing 'G:/Program Files/R/R-2.14.0/library/RMySQL'

对失败的安装有什么想法或解释吗?平台详情:

  1. Win XP
  2. R2.14.0
  3. RMySQL_0.9-3.tar.gz
  4. 来自最新xampp安装的MySQL和mysql_home目录下各自目录中的lib和头文件。
EN

回答 1

Stack Overflow用户

发布于 2013-10-22 20:17:06

最新版本的MySQL注册中心的性质与包中的代码不匹配。

在tar.gz文件中,有一个R文件“\RMySQL0.9-3.tar\RMySQL\R\zzz.R”,其中包含以下代码:

代码语言:javascript
复制
# check registry
if (!dir.exists(mysql)) {
    reg <- utils::readRegistry("SOFTWARE\\MySQL AB", hive="HLM", maxdepth=2)
    for (i in reg){
    mysql <- i$Location
    if (dir.exists(mysql)) {
        if (verbose) cat(mysql, "found in registry\n")
        break
    }
    }
}

过去,"reg“的每个元素都是一个列表,但是第一个元素现在是一个向量。这意味着"mysql <- i$Location“语句将失败,从而创建您观察到的错误消息。

通过更改行,我修改了语句以跳过注册表的第一个元素。

代码语言:javascript
复制
for (i in reg){

代码语言:javascript
复制
for (i in reg[-1]){

并通过在本地修改的tarball上运行install.packages来安装。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11562073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档