problema con la instalación de RODBC en Ubuntu

29

Tengo un problema con algunos encabezados que faltan cuando intento instalar RODBC en R en mi Linux. ¿Alguien puede ayudarme con este problema?

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

fuente
Haga suo apt-get install unixODBC * github.com/zozlak/RODBCext/issues/2
prashanth
Hilo un poco más nuevo aquí .
hhh

Respuestas:

29

Como Dirk dijo en los comentarios, si ya ha instalado r-cran-rodbc, no es necesario ejecutar install.packages () desde R. "biblioteca (RODBC)" debería cargar el paquete.

En términos más generales, cuando ve errores con respecto a los encabezados, es porque una biblioteca de desarrollo requerida no está instalada. La solución es buscar en la web utilizando los nombres de los archivos de encabezado que faltan ( por ejemplo, Google para "sqlext.h ubuntu"), para identificar el paquete requerido. En este caso, necesita libiodbc2-dev. Asi que:

sudo apt-get install libiodbc2-dev

Entonces la instalación dentro de R debería funcionar.

neilfws
fuente
8
FWIW el r-cran-binary está realmente construido contra la otra biblioteca ODBC en Debian / Ubuntu: unixodbc-dev.
Dirk Eddelbuettel
¿Tengo que hacer algo con el controlador ODBC?
8
Gracias por la aclaración Dirk; entonces "sudo apt-get install unixodbc-dev" es una alternativa.
Seguí sudo apt-get install unixodbc-dev y ahora RODBC está instalado y se carga perfectamente en R, pero cuando intento conectarme a MySQL dice Mensajes de advertencia: 1: En odbcDriverConnect ("Driver = {MySQL ODBC 5.1 Driver}; Server = 10.134.5.62; Base de datos = número de copia; Usuario = root; Contraseña = xxxx; Opción = 3; "): [RODBC] ERROR: estado IM002, código 0, mensaje [unixODBC] [Driver Manager] Nombre de fuente de datos no encontrado, y no controlador predeterminado especificado 2: En odbcDriverConnect ("Driver = {MySQL ODBC 5.1 Driver}; Server = 10.134.5.62; Database = copy_number; User = root; Password = xxxx; Option = 3;"): Error en la conexión ODBC
55
Esa es una pregunta separada. Pero no lo pregunte: ahora es el momento de irse y leer algunos documentos, tutoriales y listas de correo. Luego regrese con una consulta específica si todavía está atascado.
11

¿Realmente necesitas construir desde la fuente? ¿Por qué no usas el paquete binario?

Entonces tal vez intente esto en su lugar:

  sudo apt-get install r-cran-rodbc

o use cualquiera de las interfaces GUI para el sistema de administración de paquetes.

Dirk Eddelbuettel
fuente
1
... o siga estas instrucciones en general ...
El paquete r-cran-rodbc está realmente en los repositorios de Ubuntu, y no en los CRAN. Pero ese README sigue siendo oro.
Dirk Eddelbuettel
Ya hice esto y decía ... Leer listas de paquetes ... Hecho Crear árbol de dependencia Leer información de estado ... Hecho r-cran-rodbc ya es la versión más nueva. 0 actualizado, 0 recién instalado, 0 para eliminar y 22 no actualizado. PERO si trato de instalar el paquete en R dice el mismo error
Entonces está instalado. Entonces, ¿por qué desea instalar una segunda copia fuera del sistema de administración de paquetes?
Dirk Eddelbuettel
Recuerde que todavía dice ... verificar la usabilidad de sql.h ... no verificar la presencia de sql.h ... no verificar la sql.h ... no verificar la usabilidad de sqlext.h ... no verificar la presencia de sqlext.h ... sin comprobación de sqlext.h ... sin configuración: error: "no se encontraron los encabezados ODBC sql.h y sqlext.h" ERROR: error de configuración para el paquete 'RODBC' * eliminación '/ home / administrador / R / x86_64-pc- linux-gnu-library / 2.12 / RODBC 'Advertencia en install.packages: la instalación del paquete' RODBC 'tenía un estado de salida distinto de cero ...
11

Después de intentar instalar paquetes de todas las soluciones en este sitio y en otros, tuve éxito en la creación del RODBCpaquete usando:

sudo apt-get install unixodbc unixodbc-dev

También instalé:

  • libiodbc2-dev
  • libmyodbc
  • odbc-postgresql
Megatron
fuente
Este es el que desea si está intentando instalar la gema ruby-odbc pero está recibiendo errores en debian / ubuntu.
IAmNaN
3

FWIW, tuve el mismo problema ("No se encontraron los encabezados ODBC sql.h y sqlext.h") en OS X, y lo solucioné instalando unixodbc ( brew install unixodbc)

Fabuloso
fuente
2
Esto no parece ser relevante para la pregunta original de ninguna manera. Explicar cómo desinstalar algo con HomeBrew en un sistema OS / X apenas ayuda a la persona que lucha con Ubuntu, ¿no le parece? Tómese un minuto para considerar cómo podría mejorar su respuesta y abordar el problema descrito en la pregunta.
Sami Laine
os x ? cómo la instalación en osx resuelve el problema de ubuntu
BlueBerry - Vignesh4303
unixodbc también existe para Ubuntu.
harrymc
Lo intenté hace un momento, pero R dijo que unixodbc no está disponible para R versión 3.3.1, que es lo que se está ejecutando en el servidor. Parece que necesita una actualización;)
Oleg Melnikov
1

RODBC depende de R (> = 3.0.0 (ver por ejemplo https://cran.r-project.org/web/packages/RODBC/RODBC.pdf )

Su biblioteca de paquetes local ...

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

... sugiere que puede tener instalada una versión anterior de R (2.12). Si este es el caso, intente actualizar a una versión reciente de R.

Erik Jan de Vries
fuente