- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在我的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/
我用 IntelliJ IDEA 2021.1 CE 在 流行!_OS 20.04 与 bash 5.0.17 . 问题造句:我将IntelliJ终端设置为/bin/bash通过 IntelliJ 设
给定如下命令: bash --shortcuts 我想显示一个快捷方式列表,就像在这个页面上一样: http://www.skorks.com/2009/09/bash-shortcuts-for-m
我有一个脚本可以操作数据、创建参数并将它们发送到第二个脚本。其中一个参数包含一个空格。 脚本1.sh: args=() args+=("A") args+=("1 2") args+=("B") .
我的脚本的“只运行一次”版本的一个非常简单的示例: ./myscript.sh var1 "var2 with spaces" var3 #!/bin/bash echo $1 #output: va
我想了解数字( double )在 bash 中是如何表示的,以及当我在 bash 中以十六进制格式打印数字时会发生什么。 根据 IEEE 754 标准,double 应由 64 位表示:52 位(1
我试图在 bash -c "..." 命令中获取 bash 脚本,但它不起作用。 如果我在 bash -c "..." 之外运行命令,它会起作用。 我需要使用 bash -c "..." 因为我想确保
如何检测我的 bash shell 中是否加载了 bash 补全包?从 bash-completion 的 2.1 版(包含在 Debian 8 中)开始,除了 BASH_COMPLETION_COM
我的 bash_profile 中有一个投影函数。现在我试图从 bash 脚本中调用这个函数,但是我得到了一个未找到的错误。如何使投影函数对 bash 脚本可见? 最佳答案 必须导出函数 export
我正在编写一个 bash 脚本,它接受许多命令行参数(可能包括空格)并通过登录 shell 将它们全部传递给程序 (/bin/some_program)。从 bash 脚本调用的登录 shell 将取
当我创建一个新的 bash 进程时,提示符默认为一个非常简单的提示符。我知道我可以编辑 .bashrc 等来更改它,但是有没有办法使用 bash 命令传递提示? 谢谢! 最佳答案 提示由 PS1、PS
好的,我希望这个问题有一定道理,但是 bash shell 和 bash 终端之间有什么区别?例子。当我第一次打开终端时,会提示我当前的目录和用户名。在终端窗口标题中显示 -bash- ,当我键入 e
我是 SBCL 的新手,我正在尝试从 bash 终端运行存储在文本文件中的 Lisp 脚本。 这是我在文件开头写的内容 http://www.sbcl.org/manual/#Running-from
我知道我们可以在 bash 中使用将十六进制转换为十进制 #!/bin/bash echo "Type a hex number" read hexNum echo $(( 16#$hexNum ))
我正在尝试在 bash 脚本中自动完成文件夹名称。如果我输入完整的文件夹名称,一切正常,但我不知道如何自动完成名称。有什么想法吗? repo() { cd ~/Desktop/_REPOS/$1 }
我想检查远程网站上的一些文件。 这里是bash命令生成计算文件md5的命令 [root]# head -n 3 zrcpathAll | awk '{print $3}' | xargs -I {}
是否有任何内置函数可以使用 bash shell 脚本从给定日期获取下周日(下周一、下周二等)?例如,2014 年 9 月 1 日之后的第一个星期日是什么时候?我预计 2014 年 9 月 7 日。
我一直在尝试根据表格重命名一些特定文件,但没有成功。它要么重命名所有文件,要么给出错误。 该目录包含数百个以长条形码命名的文件,我只想重命名包含模式 _1_ 的文件。 例子 barcode_1_bar
bash 中有没有办法用变量的内容替换文本文件中的占位符? 例如,我想发送一封电子邮件通知,如下所示: Dear Foo, Alert: blah blah blah blah blah blah
我有一个 bash 脚本,它在某些字符串上附加了一个重音字符,导致它失败,我找不到这些字符在哪里或如何进入那里。 这是一些示例输出: mv: cannot move â/tmp/myapp.zipâ
这个问题在这里已经有了答案: How do I place stdout on edit line? (1 个回答) Can a bash script prepopulate the prompt
我是一名优秀的程序员,十分优秀!