проблема з встановленням RODBC в Ubuntu


29

У мене проблема з деякими відсутніми заголовками при спробі встановити RODBC в R на моєму Linux. Хтось може мені допомогти у цьому питанні?

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

Doo apt - get install unixODBC * github.com/zozlak/RODBCext/issues/2
prashanth

Трохи більше нову нитку тут .
hhh

Відповіді:


29

Як зазначив Дірк у коментарях, якщо ви вже встановили r-cran-rodbc, не потрібно запускати install.packages () зсередини Р. "пакунок (RODBC)" повинен завантажувати пакет.

Загалом, коли ви бачите помилки щодо заголовків, це тому, що необхідна бібліотека розробок не встановлена. Рішення полягає в пошуку в Інтернеті, використовуючи імена файлів, які відсутні у заголовку ( наприклад, Google для "sqlext.h ubuntu"), щоб визначити необхідний пакет. У цьому випадку вам потрібен libiodbc2-dev. Так:

sudo apt-get install libiodbc2-dev

Тоді встановлення в межах R повинно працювати.


8
FWIW r-cran-binary фактично побудований проти іншої бібліотеки ODBC в Debian / Ubuntu: unixodbc-dev.
Дірк Еддельбюттель

Чи потрібно щось робити з драйвером ODBC?

8
Дякую за роз’яснення Дірк; тому "sudo apt-get install unixodbc-dev" є альтернативою.

Я дотримувався sudo apt-get install unixodbc-dev, і тепер RODBC встановлений і ідеально завантажується в R, але коли я намагаюся підключитися до MySQL, він повідомляє Попереджувальні повідомлення: 1: In odbcDriverConnect ("Driver = {MySQL ODBC 5.1 Driver}; Server = 10.134.5.62; База даних = copy_number; User = root; Пароль = xxxx; Варіант = 3; "): [RODBC] ПОМИЛКА: стан IM002, код 0, повідомлення [unixODBC] [Менеджер драйверів] Ім'я джерела даних не знайдено, і ні драйвер по замовчуванням вказано 2: У odbcDriverConnect ( "Driver = {MySQL ODBC 5.1 Driver}; Server = 10.134.5.62; Database = copy_number; User = корінь; Password = хххх; Option = 3;"): ODBC з'єднання не вдалося

5
Це окреме питання. Але не питайте цього: тепер саме час піти і прочитати деяку документацію, навчальні посібники та списки розсилки. Потім поверніться з конкретним запитом, якщо ви все ще застрягли.

11

Вам справді потрібно будувати з джерела? Чому ви не використовуєте двійковий пакет?

Тож, можливо, спробуйте це замість цього:

  sudo apt-get install r-cran-rodbc

або використовувати будь-який фронтальний інтерфейс GUI до системи управління пакетами.


1
... або дотримуйтесь цих інструкцій взагалі ...

Пакет r-cran-rodbc фактично знаходиться на репортах Ubuntu, а не на CRAN. Але це README - це все-таки золото.
Дірк Еддельбюттель

Я вже робив це, і він сказав .... Читання списків пакетів ... Готово дерево залежності залежності Читання інформації про стан ... Виконано r-cran-rodbc - це вже найновіша версія. 0 оновлених, 0 нещодавно встановлених, 0 для видалення та 22 не оновлених. Але, якщо я спробую встановити пакет в R, він говорить ту саму помилку

Так воно встановлено. То чому ви хочете встановити другу копію поза системою управління пакунками?
Дірк Еддельбюттель

Пам'ятайте, це все ще говорить .. перевірка зручності використання sql.h ... ніяка перевірка присутності sql.h ... ніяка перевірка на sql.h ... не перевірка зручності sqlext.h ... немає перевірки присутності sqlext.h ... немає перевірки на sqlext.h ... немає конфігурації: помилка: "ODBC заголовки sql.h та sqlext.h не знайдено" ПОМИЛКА: конфігурація не вдалася до пакету "RODBC '* видалення" / home / administrator / R / x86_64-pc- linux-gnu-library / 2.12 / RODBC 'Попередження у install.packages: установка пакету' RODBC 'мала ненульовий статус виходу ...

11

Після спроби встановити пакунки з усіх рішень на цьому веб-сайті та інших, я досяг успіху в створенні RODBCпакета, використовуючи:

sudo apt-get install unixodbc unixodbc-dev

Я також встановив:

  • libiodbc2-dev
  • libmyodbc
  • odbc-postgresql

Це те, що ви хочете, якщо ви намагаєтесь встановити gem ruby-odbc, але отримуєте помилки на debian / ubuntu.
IAmNaN

3

FWIW, у мене була така ж проблема ("ODBC заголовки sql.h і sqlext.h не знайдено") на OS X, і виправили її, встановивши unixodbc ( brew install unixodbc)


2
Здається, це ніяк не стосується початкового питання. Пояснення, як видалення чогось із HomeBrew в системі OS / X навряд чи допоможе людині, яка бореться з Ubuntu, не думаєте? Будь ласка, знайдіть хвилину, щоб розглянути, як ви могли б покращити свою відповідь та вирішити проблему, описану в питанні.
Самі Лайн

os x ? як установка на osx вирішує проблему ubuntu
BlueBerry - Vignesh4303

unixodbc існує також для Ubuntu.
harrymc

Я спробував це тільки зараз, але R сказав, що unixodbc не доступний для R версії 3.3.1, яка працює на сервері. Схоже, потребує оновлення;)
Олег Мельников

1

RODBC залежить від R (> = 3.0.0 (див., Наприклад, https://cran.r-project.org/web/packages/RODBC/RODBC.pdf )

Ваша локальна бібліотека пакунків ...

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

... говорить про те, що у вас може бути встановлена ​​старіша версія R (2.12). Якщо це так, спробуйте перейти на останню версію R.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.