проблема с установкой 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’

источник
Do Его APT-получить установку UnixODBC * github.com/zozlak/RODBCext/issues/2
Prashanth
Немного новее нить здесь .
HHH

Ответы:

29

Как сказал Дирк в комментариях, если вы уже установили r-cran-rodbc, нет необходимости запускать install.packages () изнутри R. "библиотека (RODBC)" должна загрузить пакет.

В целом, когда вы видите ошибки, связанные с заголовками, это происходит потому, что не установлена ​​необходимая библиотека разработки. Решение состоит в том, чтобы искать в Интернете, используя имена отсутствующих заголовочных файлов ( например, Google для «sqlext.h ubuntu»), чтобы определить требуемый пакет. В этом случае вам нужен libiodbc2-dev. Так:

sudo apt-get install libiodbc2-dev

Тогда установка внутри R должна работать.

neilfws
источник
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: В odbcDriverConnect ("Driver = {MySQL ODBC 5.1 Driver}; Server = 10.134.5.62; База данных = номер_копии; Пользователь = root; Пароль = xxxx; Опция = 3; "): [RODBC] ОШИБКА: состояние IM002, код 0, сообщение [unixODBC] [Driver Manager] Имя источника данных не найдено, и нет указан драйвер по умолчанию 2: В odbcDriverConnect («Driver = {MySQL ODBC 5.1 Driver}; Сервер = 10.134.5.62; База данных = copy_number; Пользователь = root; Пароль = xxxx; Опция = 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
Мегатрон
источник
Это то, что вам нужно, если вы пытаетесь установить гем ruby-odbc, но получаете ошибки в Debian / Ubuntu.
ИАМНАН
3

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

потрясающий
источник
2
Похоже, это никак не относится к исходному вопросу. Объяснение того, как удаление чего-либо с HomeBrew в системе OS / X вряд ли поможет человеку, борющемуся с Ubuntu, не так ли? Пожалуйста, найдите минутку, чтобы подумать, как вы можете улучшить свой ответ и решить проблему, описанную в вопросе.
Сами Лэйн
ос х ? как установка на 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.

Эрик Ян де Врис
источник