[R] RMySQL install
Michaell Taylor
Michaell.Taylor at boxwoodmeans.com
Tue Jan 31 15:36:16 CET 2006
Received some excellent responses to my query. The problem was with the
mysql-devel libraries.
I upgraded/installed the mysql client/server/devel libraries to 4.1.16 and
issued the "well known" fixes of :
export PKG_LIBS='-L/usr/lib64/mysql -lmysqlclient'
export PKG_CPPFLAGS=-I/usr/include/mysql
R CMD INSTALL RMySQL_0.5-7.tar.gz
and everything clicked on.
Thanks for the help.
Michaell
On Monday 30 January 2006 03:32 pm, Michaell Taylor wrote:
> I am having trouble installing RMySQL on a clean install of Fedora Core 4
> 64 bit on a dual dual core machine (that is, two dual core processors).
> Seems like the LD_LIBRARY_PATH is incorrect, but I don't seem to have it
> quite right yet.
>
> There are a few mentions of this problem in google, but thus far none of
> the "fixes" and fixed my problem. I've tried defining the LD_LIBRARY_PATH
> environment variable, and setting the PKG_CPPFLAGS, and PKG_LIBS
> environment variables as well. No luck so far.
>
> (initially would not compile, but specification of the PKG_CPPFLAGS, and
> PKG_LIBS got the compile to complete without errors). I still cannot load
>
> the library. My error message is:
> > library(RMySQL)
>
> Loading required package: DBI
> Error in dyn.load(x, as.logical(local), as.logical(now)) :
> unable to load shared library
> '/usr/lib64/R/library/RMySQL/libs/RMySQL.so':
> /usr/lib64/R/library/RMySQL/libs/RMySQL.so: undefined symbol:
> mysql_field_count
> Error in library(RMySQL) : .First.lib failed for 'RMySQL'
>
>
> Trying to install the newest RMySQL on the newest R.
>
> > version
>
> _
> platform x86_64-redhat-linux-gnu
> arch x86_64
> os linux-gnu
> system x86_64, linux-gnu
> status
> major 2
> minor 2.1
> year 2005
> month 12
> day 20
> svn rev 36812
> language R
>
> *********************
> I find libmysqlclient.so in the following location(s).
>
> [root at BX mtaylor]# locate libmysqlclient.so
> /usr/lib/mysql/libmysqlclient.so.14.0.0
> /usr/lib/mysql/libmysqlclient.so.14
> /usr/lib64/mysql/libmysqlclient.so.10.0.0
> /usr/lib64/mysql/libmysqlclient.so.10
> /usr/lib64/mysql/libmysqlclient.so.14.0.0
> /usr/lib64/mysql/libmysqlclient.so.14
> /usr/lib64/mysql/libmysqlclient.so
> /usr/lib64/mysql3/mysql/libmysqlclient.so.10.0.0
> /usr/lib64/mysql3/mysql/libmysqlclient.so.10
> /usr/lib64/mysql3/mysql/libmysqlclient.so
>
> **********************
>
> I set the LD_LIBRARY_PATH according to these results, then double checked
> that it was set. (I also set it to /usr/lib64/mysql3/mysql as another
> iteration)
>
> [root at BX mtaylor]# printenv LD_LIBRARY_PATH
> /usr/lib64/mysql3/
>
> Just to be sure...
>
> [root at BX mtaylor]# printenv PKG_CPPFLAGS
> -I/usr/include/mysql
>
> [root at BX mtaylor]# printenv PKG_LIBS
> -L/usr/lib64/mysql
>
> (also tried PKG_LIBS=-L/usr/lib64/mysql3/mysql and
> PKG_LIBS=-L/usr/lib/mysql)
>
> I recompiled the package each time with R CMD INSTALL RMySQL_0.5-7.tar.gz,
> but I always get the same error message.
>
> ******************
> appears to install ....
>
> [root at BX mtaylor]# R CMD INSTALL RMySQL_0.5-7.tar.gz
> * Installing *source* package 'RMySQL' ...
> creating cache ./config.cache
> checking how to run the C preprocessor... cc -E
> checking for compress in -lz... yes
> checking for getopt_long in -lc... yes
> checking for mysql_init in -lmysqlclient... no
> checking for mysql.h... no
> updating cache ./config.cache
> creating ./config.status
> creating src/Makevars
> ** libs
> gcc -I/usr/lib64/R/include -I/usr/include/mysql -I/usr/local/include
> -fPIC -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -m64 -mtune=nocona
> -c RS-DBI.c -o RS-DBI.o
> gcc -I/usr/lib64/R/include -I/usr/include/mysql -I/usr/local/include
> -fPIC -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -m64 -mtune=nocona
> -c RS-MySQL.c -o RS-MySQL.o
> gcc -shared -L/usr/local/lib64 -o RMySQL.so RS-DBI.o RS-MySQL.o
> -L/usr/lib/mysql -lz -L/usr/lib64/R/lib -lR
> ** R
> ** inst
> ** save image
> .
> snip
> .
> ** building package indices ...
> * DONE (RMySQL)
>
>
> [root at BX mtaylor]# /sbin/ldconfig -v | grep mysql
> /usr/lib/mysql:
> libmysqlclient.so.14 -> libmysqlclient.so.14.0.0
> libmysqlclient_r.so.14 -> libmysqlclient_r.so.14.0.0
> /usr/lib64/mysql:
> libmysqlclient_r.so.10 -> libmysqlclient_r.so.10.0.0
> libmysqlclient.so.14 -> libmysqlclient.so.14.0.0
> libmysqlclient_r.so.14 -> libmysqlclient_r.so.14.0.0
> libmysqlclient.so.10 -> libmysqlclient.so.10.0.0
>
> just to make sure the headers are actually in the specified location...
>
> [root at BX mtaylor]# ls /usr/include/mysql
> chardefs.h m_ctype.h my_dir.h my_no_pthread.h mysql_embed.h
> my_xml.h rlshell.h sslopt-longopts.h
> errmsg.h m_string.h my_getopt.h my_pthread.h mysql.h
> raid.h rltypedefs.h sslopt-vars.h
> history.h my_alloc.h my_global.h my_semaphore.h mysql_time.h
> readline.h sql_common.h tilde.h
> keycache.h my_config.h my_list.h mysql_com.h mysql_version.h
> rlmbutil.h sql_state.h typelib.h
> keymaps.h my_dbug.h my_net.h mysqld_error.h my_sys.h
> rlprivate.h sslopt-case.h xmalloc.h
>
>
> There is a dial in here somewhere that I think I am turning the wrong
> direction - just can't see it. Any experience with this one?
--
=======================================
Michaell Taylor, PhD.
Principal
Boxwood Means, Inc.
203.653.4100
More information about the R-help
mailing list