- mysql/
- 试图让RmySQL工作,但不理解bash';s导出或文件系统约定
试图让RmySQL工作,但不理解bash';s导出或文件系统约定
试图让RmySQL工作,但不理解bash';s导出或文件系统约定,mysql,r,bash,Mysql,R,Bash,我试图在我的mac(mavericks)上安装RMySQL,当我试图从源代码构建它时,它出错了,说:
配置错误:找不到MySQL安装包
和/或库目录。手动指定文件的位置
MySQL库和头文件,并重新运行R CMD安装
说明:
定义并导出两个shell变量PKG_CPPFLAGS和PKG_LIBS,以包括头文件(*.h)和
例如,库(使用Bourne shell语法):
export PKG_CPPFLAGS=“-I”
export PKG_LIBS=“-L-lmysqlclient”
重新运行R
我试图在我的mac(mavericks)上安装RMySQL,当我试图从源代码构建它时,它出错了,说:
配置错误:找不到MySQL安装包
和/或库目录。手动指定文件的位置
MySQL库和头文件,并重新运行R CMD安装
说明:
定义并导出两个shell变量PKG_CPPFLAGS和PKG_LIBS,以包括头文件(*.h)和
例如,库(使用Bourne shell语法):
export PKG_CPPFLAGS=“-I”
export PKG_LIBS=“-L-lmysqlclient”
重新运行R INSTALL命令:
R CMD安装RMySQL_ql.tar.gz
我试图按照说明输入:
export PKG_CPPFLAGS=“-I/usr/local/mysql/include”导出
PKG_LIBS=“-L/usr/local/mysql/lib-lmysqlclient”
但是当我重新运行RMySQL时,它仍然不起作用。此外,如果我打字
$PKG_LIBS
要查看该变量包含的内容,我需要
-bash:-L/usr/local/mysql/lib:没有这样的文件或目录'
我知道/usr/local/mysql/lib存在,它确实包含一个mysql头。我是不是误解了说明
我是在经过大量努力寻找解决方案和/或解决办法后才提出这个问题的。有时候当一个傻瓜很糟糕 我假设您正在尝试让RmySQL在小牛的r3.1.0上运行?不必担心导出变量等,这里为您提供了一个简单、干净的解决方案,可以避免令人头痛的问题
上面提供的Pascal实际上就是您的解决方案。您可能只是在语法上遇到了障碍,或者从终端开始工作
即使你是个“noob”,你也应该能够让它工作。我将尝试在这里提供一个“虚拟指南”,因为我敢打赌,即使在尝试阅读RMySQL安装自述之后,也有许多其他人也有这个问题
我可以非常自信地打赌,问题在于您没有正确指定要编译的库和头文件夹的位置。在尝试编译时,请仔细阅读错误。。。这些错误可能会告诉您某个文件/头丢失,或者某个.so文件(共享对象)丢失
在R3.1.0上从源代码处编译RMySQL的一种简单方法是,mavericks如下所示(这不需要您设置任何环境变量,也不需要编辑Renviron文件,等等):
MySQL本身工作吗?i、 e.你能打开/运行它吗?没有问题吗?如果没有,请先解决这个问题
找到mysql安装的准确位置。对我来说,在Mavericks上,我看到mysql安装在/usr/local/mysql-5.6.17-osx10.7-x86_64(您的版本号可能不同)。还有另一个文件夹/usr/local/mysql,它是/usr/local/mysql-5.6.17-osx10.7-x86_64的别名(/usr/local/mysql查找您正在使用的mysql的当前版本,如果存在多个mysql文件夹,我想)。在这个目录中,我看到了两个子目录(在许多子目录中),分别称为“include”和“lib”。看一看,;“包含”将包含头文件(包括在C++中包括,在简单的C++程序中)。“lib”文件夹包含mysql库的编译源代码
编译和安装RMySQL的一种简单方法是这样的,它并不完全遵循安装指南中建议的方法。请注意,这与安装指南中的操作相同,只是简单了一点,因为它是终端的一个命令行,一旦您知道mysql安装文件夹在哪里。转到终端,准确地键入以下内容,每个区块之间留有一个空格(您的mysql文件夹名称根据版本号进行了适当调整):
PKG_CPPFLAGS=“-I/usr/local/mysql/include/”PKG_LIBS=“-L/usr/local/mysql/lib/-lmysqlclient”R CMD安装RMySQL_0.9-3.tar.gz
或者(同样的事情,只是更多的打字)
PKG_CPPFLAGS=“-I/usr/local/mysql-5.6.17-osx10.7-x86_64/include/”PKG_LIBS=“-L/usr/local/mysql-5.6.17-osx10.7-x86_64/lib/-lmysqlclient”R CMD安装RMySQL_0.9-3.tar.gz
傻瓜注意:确保在运行此命令时,您是从包含RMySQL_0.9-3.tar.gz文件(或包含RMySQL源代码的文件夹名称)目录中的终端执行此命令的
并且RMySQL编译
不要害怕尝试编译源代码——这不仅仅适用于“编译语言程序员”或“计算机科学毕业生”。大多数情况下,编译失败只是因为文件“丢失”(源代码没有损坏)——用户没有正确指定头和库(共享对象)的位置。现在把你的大男孩/女孩内裤拉起来,就这么做吧。。。。这很容易
对于在R中编译包的源代码一无所知的人,请注意:
a) 请特别注意上面的间距,否则可能无法使用。在=和变量/文件名之间不要有任何空格(例如,不要尝试在上面的PKG_CPPFLAGS=“-I/usr/local/mysql/include/”中使用空格,因为它不起作用)
b) 编译时,您希望指定头文件和库文件的位置,-I/…”和“-L/…”就是这样做的。-I目录指定头文件的位置,-L目录指定库文件的位置。库文件还需要-l[name of library]扩展名(在库对象名称中,-l是-lib的缩写)
c) 请注意,在/usr/local/mysql-5.6.17-osx10.7-x86_64/lib/目录中,我没有看到名为“lmysqlclient”甚至“libmysqlclient”的文件,但我确实看到了名为“libmysqlclient.a”和“libmysqlclient.18.dylib”的文件。所以,如果您没有看到一个名为“li”的文件,就不要担心MySQL安装不正确