problème avec l'installation de RODBC dans Ubuntu

29

J'ai un problème avec certains en-têtes manquants lorsque j'essaie d'installer RODBC dans R sur mon linux. Quelqu'un peut-il m'aider avec ce problème?

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

la source
Do suo apt-get install unixODBC * github.com/zozlak/RODBCext/issues/2
prashanth
Petit fil plus récent ici .
hhh

Réponses:

29

Comme Dirk l'a dit dans les commentaires, si vous avez déjà installé r-cran-rodbc, il n'est pas nécessaire d'exécuter install.packages () à partir de R. "library (RODBC)" devrait charger le paquet.

Plus généralement, lorsque vous voyez des erreurs concernant les en-têtes, c'est parce qu'une bibliothèque de développement requise n'est pas installée. La solution consiste à rechercher sur le Web en utilisant les noms des fichiers d'en-tête manquants ( par exemple Google pour "sqlext.h ubuntu"), pour identifier le package requis. Dans ce cas, vous avez besoin de libiodbc2-dev. Alors:

sudo apt-get install libiodbc2-dev

Ensuite, l'installation dans R devrait fonctionner.

neilfws
la source
8
FWIW le r-cran-binary est en fait construit contre l' autre bibliothèque ODBC dans Debian / Ubuntu: unixodbc-dev.
Dirk Eddelbuettel
Dois-je faire quoi que ce soit avec le pilote ODBC?
8
Merci pour la clarification Dirk; donc "sudo apt-get install unixodbc-dev" est une alternative.
J'ai suivi sudo apt-get install unixodbc-dev et maintenant RODBC est installé et se charge parfaitement dans R mais quand j'essaie de me connecter à MySQL, il indique des messages d'avertissement: 1: Dans odbcDriverConnect ("Driver = {MySQL ODBC 5.1 Driver}; Server = 10.134.5.62; Database = copy_number; User = root; Password = xxxx; Option = 3; "): [RODBC] ERREUR: état IM002, code 0, message [unixODBC] [Driver Manager] Nom de la source de données introuvable et non pilote par défaut spécifié 2: dans odbcDriverConnect ("Driver = {MySQL ODBC 5.1 Driver}; Server = 10.134.5.62; Database = copy_number; User = root; Password = xxxx; Option = 3;"): Échec de la connexion ODBC
5
C'est une question distincte. Mais ne le demandez pas: c'est le moment de partir et de lire la documentation, les tutoriels et les listes de diffusion. Revenez ensuite avec une requête spécifique si vous êtes toujours bloqué.
11

Avez-vous vraiment besoin de construire à partir des sources? Pourquoi n'utilisez-vous pas le paquet binaire?

Alors essayez peut-être ceci à la place:

  sudo apt-get install r-cran-rodbc

ou utilisez l'une des interfaces graphiques du système de gestion des packages.

Dirk Eddelbuettel
la source
1
... ou suivez ces instructions en général ...
Le paquet r-cran-rodbc est en fait sur les dépôts Ubuntu, et non sur ceux CRAN. Mais ce README est toujours en or.
Dirk Eddelbuettel
J'ai déjà fait cela et il a dit .... Lecture des listes de paquets ... Terminé Construction de l'arbre de dépendance Lecture des informations d'état ... Terminé r-cran-rodbc est déjà la dernière version. 0 mis à niveau, 0 nouvellement installé, 0 à supprimer et 22 non mis à niveau. MAIS si j'essaie d'installer le package dans R, il indique la même erreur
Il est donc installé. Alors, pourquoi voulez-vous installer une deuxième copie en dehors du système de gestion des packages?
Dirk Eddelbuettel
Rappelez-vous qu'il est toujours dit .. vérification de l'utilisabilité de sql.h ... pas de vérification de la présence de sql.h ... pas de vérification de sql.h ... pas de vérification de l'utilisabilité de sqlext.h ... pas de vérification de la présence de sqlext.h ... pas de vérification de sqlext.h ... pas de configuration: erreur: "En-têtes ODBC sql.h et sqlext.h non trouvés" ERREUR: la configuration a échoué pour le package 'RODBC' * suppression '/ home / administrateur / R / x86_64-pc- linux-gnu-library / 2.12 / RODBC 'Avertissement dans install.packages: l'installation du paquet' RODBC 'avait un état de sortie non nul ...
11

Après avoir tenté d'installer des packages à partir de toutes les solutions de ce site et d'autres, j'ai réussi à créer le RODBCpackage en utilisant:

sudo apt-get install unixodbc unixodbc-dev

J'ai également installé:

  • libiodbc2-dev
  • libmyodbc
  • odbc-postgresql
Megatron
la source
C'est celui que vous voulez si vous essayez d'installer la gemme ruby-odbc mais que vous obtenez des erreurs sur debian / ubuntu.
IAmNaN le
3

FWIW, j'ai eu le même problème ("En-têtes ODBC sql.h et sqlext.h non trouvés") sur OS X, et l'ai résolu en installant unixodbc ( brew install unixodbc)

Fab
la source
2
Cela ne semble d'aucune façon être pertinent pour la question initiale. Expliquer comment désinstaller quelque chose avec HomeBrew sur un système OS / X n'aide guère la personne aux prises avec Ubuntu, vous ne pensez pas? Veuillez prendre une minute pour voir comment vous pourriez améliorer votre réponse et résoudre le problème décrit dans la question.
Sami Laine
os x ? comment l'installation sur osx résout le problème d'ubuntu
BlueBerry - Vignesh4303
unixodbc existe également pour Ubuntu.
harrymc
Je l'ai essayé tout à l'heure, mais R a dit que unixodbc n'est pas disponible pour R version 3.3.1, qui est en cours d'exécution sur le serveur. Il semble avoir besoin d'une mise à niveau;)
Oleg Melnikov
1

RODBC dépend de R (> = 3.0.0 (voir par exemple https://cran.r-project.org/web/packages/RODBC/RODBC.pdf )

Votre bibliothèque de packages locale ...

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

... suggère que vous pourriez avoir une ancienne version de R installée (2.12). Si tel est le cas, essayez de passer à une version récente de R.

Erik Jan de Vries
la source
0

J'ai aussi eu ce problème. Pour moi, la solution était qu'il me manquait certaines dépendances Ubuntu telles que

Il est à noter que install.packages("RODBC", dependencies=TRUE)ne pas ramasser ces paquets. Ils se trouvent en dehors de Rlui-même.

isomorphismes
la source