Ubuntu中安装RODBC的问题


29

尝试在Linux上的R中安装RODBC时,出现一些标题丢失的问题。谁能帮我解决这个问题?

> install.packages("RODBC")

Installing package(s) into ‘/home/administrator/R/x86_64-pc-linux-gnu-library/2.12’
(as ‘lib’ is unspecified)

trying URL 'http://cran.cnr.Berkeley.edu/src/contrib/RODBC_1.3-2.tar.gz'
Content type 'application/x-gzip' length 1108358 bytes (1.1 Mb)

opened URL
==================================================
downloaded 1.1 Mb

* installing *source* package ‘RODBC’ ...
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking how to run the C preprocessor... gcc -E
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking sql.h usability... no
checking sql.h presence... no
checking for sql.h... no
checking sqlext.h usability... no
checking sqlext.h presence... no
checking for sqlext.h... no
configure: error: "ODBC headers sql.h and sqlext.h not found"
ERROR: configuration failed for package ‘RODBC’
* removing ‘/home/administrator/R/x86_64-pc-linux-gnu-library/2.12/RODBC’
Warning in install.packages :
  installation of package 'RODBC' had non-zero exit status

The downloaded packages are in
    ‘/tmp/RtmpqfNYpD/downloaded_packages’
r  ubuntu 

做锁的apt-get安装了unixODBC * github.com/zozlak/RODBCext/issues/2
普拉香特

这里有点新的线程。
hhh

Answers:


29

正如Dirk在评论中所说,如果您已经安装了r-cran-rodbc,则无需从R内部运行install.packages()。“ library(RODBC)”应加载该软件包。

通常,当您看到有关标题的错误时,这是​​因为未安装必需的开发库。解决方案是使用缺少的头文件(例如 Google的“ sqlext.h ubuntu”)的名称搜索网络,以标识所需的程序包。在这种情况下,您需要libiodbc2-dev。所以:

sudo apt-get install libiodbc2-dev

然后,在R中进行安装即可。


8
FWIW r-cran-binary实际上是针对Debian / Ubuntu 中的另一个 ODBC库:unixodbc-dev构建的。
Dirk Eddelbuettel

我必须使用ODBC驱动程序做任何事情吗?

8
感谢您的澄清,德克;因此,“ sudo apt-get install unixodbc-dev”是一个替代方案。

我按照sudo apt-get install unixodbc-dev进行安装,现在RODBC已安装并完美地在R中加载,但是当我尝试连接到MySQL时,它显示警告消息:1:在odbcDriverConnect(“ Driver = {MySQL ODBC 5.1 Driver}; Server = 10.134.5.62;数据库=副本编号;用户=根目录;密码= xxxx;选项= 3;“):[RODBC]错误:状态IM002,代码0,消息[unixODBC] [驱动程序管理器]未找到数据源名称,否指定的默认驱动程序2:在odbcDriverConnect(“ Driver = {MySQL ODBC 5.1 Driver}; Server = 10.134.5.62; Database = copy_number; User = root; Password = xxxx; Option = 3;”)中:ODBC连接失败

5
那是一个单独的问题。但是不要问:现在该走了,阅读一些文档,教程和邮件列表。如果仍然遇到问题,请返回一个特定的查询。

11

您真的需要从源代码构建吗?为什么不使用二进制包?

因此,也许尝试以下方法:

  sudo apt-get install r-cran-rodbc

或使用软件包管理系统的任何GUI前端。


1
...或大致上遵循这些说明 ...

r-cran-rodbc软件包实际上在Ubuntu仓库上,而不在CRAN上。但是自述文件仍然是黄金。
Dirk Eddelbuettel,2011年

我已经做到了,它说...。阅读软件包列表。完成构建依赖关系树。阅读状态信息。完成r-cran-rodbc已经是最新版本。0已升级,0新安装,0已删除和22未升级。但是,如果我尝试在R中安装软件包,它会说同样的错误

这样就安装好了。那么,为什么要在软件包管理系统之外安装第二个副本?
Dirk Eddelbuettel

记住它仍然说..检查sql.h可用性...不检查sql.h存在...不检查sql.h ...不检查sqlext.h可用性...不检查sqlext.h存在...没有检查sqlext.h ...没有配置:错误:“找不到ODBC标头sql.h和sqlext.h”错误:包'RODBC'的配置失败*删除'/ home / administrator / R / x86_64-pc- linux-gnu-library / 2.12 / RODBC'install.packages中的警告:安装软件包'RODBC'的退出状态为非零...

11

尝试从该站点上的所有解决方案以及其他解决方案安装软件包后,我成功RODBC使用以下方法构建了软件包:

sudo apt-get install unixodbc unixodbc-dev

我还安装了:

  • libiodbc2-dev
  • libmyodbc
  • odbc-postgresql

如果您尝试安装ruby-odbc gem,但在debian / ubuntu上出现错误,则这是您想要的。
IAmNaN

3

FWIW,我在OS X上遇到了相同的问题(“找不到ODBC标头sql.h和sqlext.h”),并通过安装unixodbc(brew install unixodbc)进行了修复


2
这似乎与原始问题没有任何关系。解释一下在OS / X系统上使用HomeBrew卸载某些东西几乎不会对挣扎于Ubuntu的人有什么帮助,您不觉得吗?请花一点时间考虑如何改善答案并解决问题中描述的问题。
萨米·莱恩

os x?在osx上安装如何解决ubuntu的问题
BlueBerry-Vignesh4303 2014年

unixodbc也适用于Ubuntu。
哈里克(Harrymc)2014年

我刚刚尝试过,但是R表示unixodbc不适用于R版本3.3.1,该版本正在服务器上运行。它似乎需要升级;)
Oleg Melnikov


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.