2012-07-19 3 views
0

아래 시나리오를 고려하십시오. 실패한 설치 R2.14.0

> 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' 

어떤 아이디어 나 설명에 패키지 'RMySQL'을 추가? 플랫폼 세부 정보 :

  1. 윈 XP
  2. R2.14.0
  3. RMySQL_0.9-3.tar.gz
  4. MYSQL_HOME 디렉토리 아래에 각각의 디렉토리에 lib 디렉토리와 헤더 파일과 최신 XAMPP 설치에서
  5. MySQL을 .
+0

[documentation page] (http://biostat.mc.vanderbilt.edu/wiki/Main/RMySQL)에서 "설치를 다시 실행하여 클라이언트 헤더를 * Xampp에는이 *가 포함되지 않습니다. " 헤더 파일과 라이브러리 파일이 있는지 확인 했습니까? – nograpes

+0

감사합니다. @nograpes. 나는 실제로 c :/wampp/mysql 설치를 확인했다. 최신 Xampp 설치는 각 디렉토리에 헤더 및 라이브러리 파일을 포함합니다. – useR

답변

1

MySQL의 최신 버전 레지스트리와 패키지의 코드가 일치하지 않습니다. tar.gz 파일 내에서

는에 R 파일이 "\ RMySQL_0.9-3.tar \ RMySQL \ R \ zzz.R"다음 코드를 포함하는 :

# 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"문이 실패하여 사용자가 관찰 한 오류 메시지가 생성됩니다.

나는 로컬 수정 타르에 install.packages을 실행하여

for (i in reg[-1]){ 

설치에 선

for (i in reg){ 

을 변경하여 레지스트리의 첫 번째 요소를 건너 문을 수정했습니다.

관련 문제