RODBC não reconhecendo minhas configurações odbc

Estou executando o R 2.15.2 em um servidor Red Hat Linux 6. Meu objetivo é se conectar a um banco de dados do MS SQL Server em outra máquina via RODBC. Eu fiz minha pesquisa e baixei e instalei a versão linux do driver MSBC ODBC deo site de suporte da microsoft. Eu tive que construir unixODBC versão 2.3.0 a partir da fonte, porque é exigido pelo driver do Windows e não está no repositório RHL ainda (a versão do repo é 2.2.14).

De qualquer forma, depois de um pouco de trabalho, finalmente consegui instalar o driver e configurá-lo adequadamente, e posso me conectar com sucesso ao banco de dados do SQL Serverisql comando:

$ isql -v test testuser testpass
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>

então eu sei que tenho meuodbc.ini eodbcinst.ini arquivos corretamente configurados.

No entanto, quando tento acessar a conexão ODBC de dentro de R, acontece o seguinte:

> test <- odbcDriverConnect('DSN=test;Database=RSQLTest01;Uid=testuser;Pwd=testpass')
Warning messages:
1: In odbcDriverConnect("DSN=test;Database=RSQLTest01;Uid=testuser;Pwd=testpass") :
   [RODBC] ERROR: state IM002, code 0, message [unixODBC][Driver Manager]Data 
   source name not found, and no default driver specified
2: In odbcDriverConnect("DSN=test;Database=RSQLTest01;Uid=testuser;Pwd=testpass") :
   ODBC connection failed

Aqui está o resultado doodbcDataSources comando em R:

> odbcDataSources()
named character(0)

Eu tenho feito algumas pesquisas e acho que a solução (embora eu possa estar errada) pode ter algo a ver com a configuração adequada das variáveis ​​de ambiente ODBC para que o RODBC saiba onde encontrarodbc.ini. Com base na minha pesquisa, encontrei as seguintes variáveis ​​de ambiente que podem ser relevantes:$ODBCINI, $ODBCSYSINI, $ODBC_ROOT $ODBC_INCLUDE, and $ODBC_LIBS. Eu tenho uma idéia razoável do que deve ser definido, mas não tenho certeza de como defini-las permanentemente e para que o RODBC possa reconhecer onde encontrar os arquivos apropriados.

Alguém pode lançar alguma luz sobre isso para mim? Eu não tenho certeza se entendi corretamente como as variáveis ​​de ambiente funcionam no linux, e particularmente porqueisql não tem problemas para se conectar, masRODBC não é possível encontrar o driver / fonte de dados.

NOTA: quando eu tinha a versão repo do unixODBC instalado, RODBC iria instalar muito bem usando oinstall.packages('RODBC') comando em R. No entanto, depois de instalar o unixODBC 2.3.0 da origem, a instalação do RODBC falharia devido a um problema de dependência, e eu tive que instalar o RODBC a partir da origem usando o comandoguia postado aqui. É possível que eu não tenha configurado corretamente o ODBC e é por isso que estou tendo problemas agora?

questionAnswers(4)

yourAnswerToTheQuestion