经过相当广泛的搜索,我注意到很多人都很难找到一个回答这个问题的从头到尾的指南。 (至少one question注意到存在一个解决方案,但是提出的解决方案并没有解决这样一个事实:默认情况下,RODBC尝试针对iODBC进行编译,而iODBC并未包含在Yosemite中。)我刚刚完成了这个过程所以我想我会在这里记录它,希望它能使其他人受益。我正在连接到SQL Server数据库。
答案 0 :(得分:7)
使用Homebrew作为我的OS X软件包管理器,我可以使用以下步骤安装RODBC
(假设我已经安装了R)。
安装unixodbc
:
$ brew install unixodbc
安装freetds
(如果需要,将/usr/local/Cellar/unixodbc/2.3.2_1
替换为您的unixodbc
目录):
$ brew install --with-tdsver=8.0 --with-msdblib --with-unixodbc=/usr/local/Cellar/unixodbc/2.3.2_1 freetds
配置freetds
安装(以下是最小配置文件):
freetds.conf
# server specific section
[global]
; tds version = 8.0
; dump file = /tmp/freetds.log
; debug flags = 0xffff
; timeout = 10
; connect timeout = 10
text size = 64512
[TESTSQL]
# insert the actual host below
host = <xxx.xx.x.xx>
port = 1433
tds version = 8.0
测试freetds
配置:
$ tsql -H `<xxx.xx.x.xx>` -p 1433 -U `<username>` -P `<password>`
locale is "en_US.UTF-8" locale charset is "UTF-8" using default charset "UTF-8" 1> exit
配置unixodbc
安装(以下是最小配置文件):
$ sudo vim /usr/local/Cellar/unixodbc/2.3.2_1/etc/odbcinst.ini
odbcinst.ini
[MSSQL]
Description = Microsoft SQL Server driver
Driver = /usr/local/Cellar/freetds/0.95.18/lib/libtdsodbc.so
(和另一个最小安装文件):
$ sudo vim /usr/local/Cellar/unixodbc/2.3.2_1/etc/odbc.ini
odbc.ini
[ODBC Data Sources]
TESTSQL = Test database
[TESTSQL]
Driver = MSSQL
Servername = TESTSQL
Port = 1433
Database = TMSEPRD
TDS_Version = 8.0
使用isql
测试新配置:
$ isql TESTSQL `<username>` `<password>`
+---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> quit
创建指向主目录中文件的符号链接:
$ ln -vs /usr/local/Cellar/freetds/0.95.18/etc/freetds.conf ~/.freetds.conf
$ ln -vs /usr/local/Cellar/unixodbc/2.3.2_1/etc/odbc.ini ~/.odbc.ini
$ ln -vs /usr/local/Cellar/unixodbc/2.3.2_1/etc/odbcinst.ini ~/.odbcinst.ini
通过将以下代码行附加到文件中来查找和修改RProfile
文件(将/usr/local/include
替换为包含sql.h
和{的包含目录{1}}文件;如果目录不存在,则第二行可能是不必要的):
sqlext.h
现在将$ vim /Library/Frameworks/R.framework/Versions/3.2/Resources/library/base/R/Rprofile
Sys.setenv(ODBC_INCLUDE="/usr/local/include")
Sys.setenv(ODBC_LIBS="/usr/local/lib")
包源(您下载here)下载到“下载”文件夹。
打开一个新的R控制台会话并安装软件包(将RODBC
替换为软件包源名称):
install.packages(&#34;〜/ Downloads / RODBC_1.3-12.tar.gz&#34;,repos = NULL,type =&#34; source&#34;)
包现在应该可以使用:
RODBC_1.3-12.tar.gz
感谢Jared Folkins和Gabi Huiber寻求帮助,找出R默认为RODBC的必备文件查找的目录。