problema com a instalação do RODBC no Ubuntu

29

Estou com um problema com alguns cabeçalhos ausentes ao tentar instalar o RODBC no R no meu linux. Alguém pode me ajudar com essa questão?

> 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’

fonte
Para instalar suo apt-get install unixODBC *, github.com/zozlak/RODBCext/issues/2
prashanth
Um pouco mais novo aqui .
hhh 7/01

Respostas:

29

Como Dirk disse nos comentários, se você já instalou o r-cran-rodbc, não há necessidade de executar o install.packages () a partir do R. "library (RODBC)" deve carregar o pacote.

De maneira mais geral, quando você vê erros em relação aos cabeçalhos, é porque uma biblioteca de desenvolvimento necessária não está instalada. A solução é pesquisar na web usando os nomes dos arquivos de cabeçalho ausentes ( por exemplo, Google "sqlext.h ubuntu"), para identificar o pacote necessário. Nesse caso, você precisa do libiodbc2-dev. Tão:

sudo apt-get install libiodbc2-dev

Em seguida, a instalação no R deve funcionar.

neilfws
fonte
8
FWIW, o r-cran-binary é realmente construído contra a outra biblioteca ODBC no Debian / Ubuntu: unixodbc-dev.
Dirk Eddelbuettel
Preciso fazer alguma coisa com o driver ODBC?
8
Obrigado pelo esclarecimento Dirk; então "sudo apt-get install unixodbc-dev" é uma alternativa.
Eu segui o sudo apt-get install unixodbc-dev e agora o RODBC está instalado e carrega perfeitamente no R, mas quando tento me conectar ao MySQL, ele diz Mensagens de aviso: 1: No odbcDriverConnect ("Driver = {Driver do MySQL ODBC 5.1}; Servidor = 10.134.5.62; Banco de dados = copy_number; Usuário = root; Senha = xxxx; Opção = 3; "): [RODBC] ERRO: estado IM002, código 0, mensagem [unixODBC] [Driver Manager] Nome da fonte de dados não encontrado e não driver padrão especificado 2: No odbcDriverConnect ("Driver = {Driver ODBC do MySQL 5.1}; Servidor = 10.134.5.62; Banco de dados = copy_number; Usuário = root; Senha = xxxx; Opção = 3;"): Conexão ODBC falhou
5
Essa é uma pergunta separada. Mas não pergunte: agora é a hora de ir embora e ler algumas documentações, tutoriais e listas de discussão. Em seguida, volte com uma consulta específica se você ainda estiver preso.
11

Você realmente precisa construir a partir da fonte? Por que você não usa o pacote binário?

Então, talvez tente isso:

  sudo apt-get install r-cran-rodbc

ou use qualquer um dos front-ends da GUI para o sistema de gerenciamento de pacotes.

Dirk Eddelbuettel
fonte
1
... ou seguir estas instruções em geral ...
O pacote r-cran-rodbc está realmente nos repositórios Ubuntu, e não nos repositórios CRAN. Mas esse README ainda é ouro.
Dirk Eddelbuettel 11/11
Eu já fiz isso e ele disse ... Lendo listas de pacotes ... Concluído Criando árvore de dependências Lendo informações de estado ... Concluído r-cran-rodbc já é a versão mais recente. 0 atualizado, 0 recém-instalado, 0 para remover e 22 não atualizado. Mas se eu tentar instalar o pacote em R ele diz que o mesmo erro
Então está instalado. Então, por que você deseja instalar uma segunda cópia fora do sistema de gerenciamento de pacotes?
Dirk Eddelbuettel
Lembre-se de que ainda diz .. verificando a usabilidade do sql.h ... sem verificar a presença do sql.h ... sem verificar o sql.h ... sem verificar a usabilidade do sqlext.h ... sem verificar a presença do sqlext.h ... nenhuma verificação de sqlext.h ... não configure: erro: "ODBC headers sql.he sqlext.h não encontrado" ERRO: falha na configuração do pacote 'RODBC' * removendo '/ home / administrator / R / x86_64-pc- / 2,12 / 'Aviso em install.packages: instalação de pacote 'linux-gnu-biblioteca RODBC RODBC' tinha status de saída diferente de zero ...
11

Depois de tentar instalar pacotes de todas as soluções deste site e de outros, consegui criar o RODBCpacote usando:

sudo apt-get install unixodbc unixodbc-dev

Eu também instalei:

  • libiodbc2-dev
  • libmyodbc
  • odbc-postgresql
Megatron
fonte
Este é o que você deseja se estiver tentando instalar a gem ruby-odbc, mas estiver recebendo erros no debian / ubuntu.
IAmNaN
3

FWIW, tive o mesmo problema ("ODBC headers sql.he sqlext.h não encontrado") no OS X, e o corrigi instalando o unixodbc ( brew install unixodbc)

Fab
fonte
2
Isso não parece ser relevante para a pergunta original de forma alguma. Explicar como a desinstalação de algo com o HomeBrew em um sistema OS / X dificilmente ajuda a pessoa que luta com o Ubuntu, não acha? Reserve alguns minutos para pensar em como você poderia melhorar sua resposta e solucionar o problema descrito na pergunta.
Sami Laine
os x ? como a instalação no osx resolve o problema do ubuntu
BlueBerry - Vignesh4303
O unixodbc existe também para o Ubuntu.
harrymc
Eu tentei agora, mas R disse que o unixodbc não está disponível para a versão 3.3.1, que é o que está sendo executado no servidor. Parece estar precisando de uma atualização;)
Oleg Melnikov
1

O RODBC depende de R (> = 3.0.0 (veja, por exemplo, https://cran.r-project.org/web/packages/RODBC/RODBC.pdf )

Sua biblioteca de pacotes local ...

Installing package(s) into '/home/administrator/R/x86_64-pc-linux-gnu-library/2.12'

... sugere que você pode ter uma versão mais antiga do R instalada (2.12). Se for esse o caso, tente atualizar para uma versão recente do R.

Erik Jan de Vries
fonte