试图让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安装不正确