gpt4 book ai didi

mysql - 试图使RmySQL工作,但不了解bash的导出或文件系统约定

转载 作者:行者123 更新时间:2023-11-30 23:00:13 26 4
gpt4 key购买 nike

我试图在我的mac(小牛)上安装RMySQL,当我尝试从源代码构建它时,它出错了,并说:


  配置错误:找不到MySQL安装包括
  和/或库目录。手动指定
  MySQL库和头文件并重新运行R CMD INSTALL。
  
  说明:
  
  
  定义并导出2个外壳变量PKG_CPPFLAGS和PKG_LIBS,以包括头文件(* .h)和
  库,例如(使用Bourne shell语法):
  
  出口PKG_CPPFLAGS =“-I”
    export PKG_LIBS =“-L -lmysqlclient”
     重新运行R INSTALL命令:
  
  R CMD安装RMySQL_.tar.gz
  


我尝试通过输入以下内容来遵循说明:


  导出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在Mavericks的R 3.1.0上运行?不必担心导出变量等问题,这里有一个简单的干净解决方案,可以避免麻烦。

上面提供的RMySQL install link Pascal确实是您的解决方案。您可能只是在语法上绊脚石,或是从终端上正常工作。

即使您是“菜鸟”,您也应该能够使用它。我将尝试在此处提供“虚拟指南”,因为我敢打赌,即使尝试阅读RMySQL安装自述文件,也有许多其他人也有此问题。

我敢肯定地说,问题是您没有正确指定要编译的库和头文件的位置。当您尝试编译时,请仔细阅读错误...错误可能会告诉您文件/标题丢失,或某些.so文件(共享对象)丢失。

一种简单的方法可以从R 3.1.0的源码(特立独行的)上编译RMySQL,如下所示(这不需要您设置任何环境变量,无需编辑Renviron文件等):


MySQL本身可以工作吗?即您可以打开/运行它吗?如果没有,请先解决。
找到您的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”。看一看; “ include”将包含头文件(在简单的C ++程序中,包含在#include等文件中)。 “ 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 [库名]扩展名(库对象名称中的-l是-lib的缩写)。

c)请注意,在目录/usr/local/mysql-5.6.17-osx10.7-x86_64/lib/中,我看不到名为“ lmysqlclient”甚至“ libmysqlclient”的文件,但我确实看到了名为(其中包括“ libmysqlclient.a”和“ libmysqlclient.18.dylib”。因此,如果您在lib文件夹中看不到名为“ libmysqlclient”的文件,则不必担心您的MySQL安装不正确。

关于mysql - 试图使RmySQL工作,但不了解bash的导出或文件系统约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24421278/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com