проблема с установкой RODBC в Ubuntu

25789

У меня проблема с некоторыми отсутствующими заголовками при попытке установить 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’ 
23
Сделайте suo apt-get установите unixODBC * https://github.com/zozlak/RODBCext/issues/2 prashanth 6 лет назад 0

6 ответов на вопрос

23
neilfws

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

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

sudo apt-get install libiodbc2-dev 

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

FWIW r-cran-binary на самом деле построен против * другой * библиотеки ODBC в Debian / Ubuntu: unixodbc-dev. Dirk Eddelbuettel 13 лет назад 8
Нужно ли что-то делать с драйвером ODBC? 13 лет назад 0
Спасибо за разъяснения, Дирк; поэтому sudo apt-get install unixodbc-dev является альтернативой. 13 лет назад 7
Я следовал за sudo apt-get install unixodbc-dev, и теперь RODBC установлен и отлично загружается в R, но когда я пытаюсь подключиться к MySQL, он говорит предупреждающие сообщения: 1: В odbcDriverConnect ("Driver = ; Server = 10.134.5.62; База данных = номер_копии; Пользователь = root; Пароль = xxxx; Опция = 3; "): [RODBC] ОШИБКА: состояние IM002, код 0, сообщение [unixODBC] [Driver Manager] Имя источника данных не найдено, и нет указан драйвер по умолчанию 2: В odbcDriverConnect ("Driver = ; Сервер = 10.134.5.62; База данных = copy_number; Пользователь = root; Пароль = xxxx; Опция = 3;"): Ошибка подключения ODBC 13 лет назад 0
Как мне настроить драйвер ODBC? 13 лет назад 0
Это отдельный вопрос. Но не спрашивайте: сейчас самое время уйти и почитать некоторую документацию, учебные пособия и списки рассылки. Затем вернитесь с конкретным запросом, если вы все еще застряли. 13 лет назад 4
10
Dirk Eddelbuettel

Вам действительно нужно строить из исходного кода? Почему вы не используете бинарный пакет?

Так что, возможно, попробуйте это вместо:

 sudo apt-get install r-cran-rodbc 

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

... или следуйте [этим инструкциям] (http://cran.r-project.org/bin/linux/ubuntu/README.html) в общем ... 13 лет назад 1
Пакет r-cran-rodbc фактически находится в репозиториях Ubuntu, а не в репозиториях CRAN. Но это README все еще золото. Dirk Eddelbuettel 13 лет назад 0
Я уже сделал это и сказал .... Чтение списков пакетов ... Готово Построение дерева зависимостей Чтение информации о состоянии ... Готово r-cran-rodbc уже самая новая версия. 0 обновлено, 0 вновь установлено, 0 для удаления и 22 не обновлено. НО, если я пытаюсь установить пакет в R, он говорит ту же ошибку 13 лет назад 0
Так и установлено. Так почему вы хотите установить вторую копию вне системы управления пакетами? Dirk Eddelbuettel 13 лет назад 0
Помните, что он по-прежнему говорит ... проверка юзабилити 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 'имела ненулевой статус выхода ... 13 лет назад 0
Когда это попытаться получить к нему доступ, используя канал <- odbcDriverConnect ("Driver = ; Сервер = 10.134.5.62; База данных = copy_number; Пользователь = root; Пароль = xxxx; Option = 3;") Предупреждающие сообщения: [ RODBC] ОШИБКА: состояние IM002, код 0, сообщение [unixODBC] [Driver Manager] Имя источника данных не найдено, и драйвер по умолчанию не указан 2: В odbcDriverConnect ("Driver = ; Сервер = 10.134.5.62; Database = copy_number; User = root; Password = xxxx; Option = 3; "): сбой подключения ODBC 13 лет назад 0
Вам нужно вызвать `library (RODBC)`, прежде чем вы сможете ее использовать. 13 лет назад 0
Я сделал после этого только я пытался получить доступ к БД 13 лет назад 0
Боюсь, вы немного запутались между * установкой * RODBC (что не является проблемой, как мы теперь выяснили - у вас есть бинарный пакет, и вы можете его загрузить) и * использованием и настройкой RODBC *, который представляет собой другую игру. Ищите предыдущие вопросы здесь и в списках. Кроме того, если ваш бэкэнд действительно MySQL, вы можете использовать вместо него RMySQL, что может быть быстрее. Dirk Eddelbuettel 13 лет назад 0
Это об установке драйвера ODBC? 13 лет назад 0
8
Megatron

После попытки установить пакеты из всех решений на этом сайте и других, я успешно создал RODBCпакет, используя:

sudo apt-get install unixodbc unixodbc-dev

Я также установил:

  • libiodbc2-DEV
  • libmyodbc
  • ODBC-PostgreSQL
3
Fab

FWIW, I had the same problem ("ODBC headers sql.h and sqlext.h not found") on OS X, and fixed it by installing unixodbc (brew install unixodbc)

Похоже, это никак не связано с первоначальным вопросом. Объяснение того, как удаление чего-либо с HomeBrew в системе OS / X вряд ли поможет человеку, борющемуся с Ubuntu, не так ли? Пожалуйста, найдите минутку, чтобы подумать, как вы могли бы улучшить свой ответ и решить проблему, описанную в вопросе. Sami Laine 10 лет назад 2
** ос х **? Как установка на OSX решает проблему Ubuntu BlueBerry - Vignesh4303 10 лет назад 0
Unixodbc существует также для Ubuntu. harrymc 10 лет назад 0
Я попробовал это только сейчас, но R сказал, что unixodbc недоступен для R версии 3.3.1, которая работает на сервере. Кажется, нужно обновление;) Oleg Melnikov 7 лет назад 0
1
Erik Jan de Vries

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.

0
isomorphismes

У меня тоже была эта проблема. Для меня решением было то, что мне не хватало некоторых зависимостей Ubuntu, таких как

Стоит отметить, что install.packages("RODBC", dependencies=TRUE)это не забрать эти пакеты. Они лежат вне Rсебя.

Похожие вопросы