problem z instalacją RODBC w Ubuntu

29

Mam problem z niektórymi brakującymi nagłówkami podczas próby zainstalowania RODBC w R na moim systemie Linux. Czy ktoś może mi pomóc z tym problemem?

> 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ódło
Zrób suo apt-get install unixODBC * github.com/zozlak/RODBCext/issues/2
prashanth
Trochę nowszy wątek tutaj .
hhh

Odpowiedzi:

29

Jak powiedział Dirk w komentarzach, jeśli już zainstalowałeś r-cran-rodbc, nie ma potrzeby uruchamiania install.packages () z poziomu R. „biblioteka (RODBC)” powinna załadować pakiet.

Mówiąc bardziej ogólnie, gdy widzisz błędy dotyczące nagłówków, dzieje się tak, ponieważ wymagana biblioteka programistyczna nie jest zainstalowana. Rozwiązaniem jest przeszukiwanie Internetu za pomocą nazw brakujących plików nagłówkowych ( np. Google dla „sqlext.h ubuntu”), aby zidentyfikować wymagany pakiet. W takim przypadku potrzebujesz libiodbc2-dev. Więc:

sudo apt-get install libiodbc2-dev

Następnie instalacja w R powinna działać.

neilfws
źródło
8
FWIW r-cran-binary jest właściwie zbudowany na innej bibliotece ODBC w Debian / Ubuntu: unixodbc-dev.
Dirk Eddelbuettel
Czy muszę coś robić ze sterownikiem ODBC?
8
Dzięki za wyjaśnienia, Dirk; więc „sudo apt-get install unixodbc-dev” jest alternatywą.
Postępowałem zgodnie z sudo apt-get install unixodbc-dev, a teraz RODBC jest zainstalowany i ładuje się idealnie w R, ale kiedy próbuję połączyć się z MySQL, wyświetla komunikat ostrzegawczy: 1: W odbcDriverConnect ("Driver = {MySQL ODBC 5.1 Driver}; Server = 10.134.5.62; Baza danych = numer_kopii; Użytkownik = root; Hasło = xxxx; Opcja = 3; "): [RODBC] BŁĄD: stan IM002, kod 0, komunikat [unixODBC] [Menedżer sterowników] Nie znaleziono nazwy źródła danych i nie określono domyślny sterownik 2: W odbcDriverConnect ("Driver = {MySQL ODBC 5.1 Driver}; Serwer = 10.134.5.62; Baza danych = numer_kopii; Użytkownik = root; Hasło = xxxx; Opcja = 3;"): Połączenie ODBC nie powiodło się
5
To osobne pytanie. Ale nie pytaj: nadszedł czas, aby odejść i przeczytać dokumentację, samouczki i listy mailingowe. Następnie wróć z konkretnym zapytaniem, jeśli nadal utkniesz.
11

Czy naprawdę potrzebujesz budować ze źródła? Dlaczego nie korzystasz z pakietu binarnego?

Więc może spróbuj zamiast tego:

  sudo apt-get install r-cran-rodbc

lub użyj dowolnego interfejsu GUI do systemu zarządzania pakietami.

Dirk Eddelbuettel
źródło
1
... lub ogólnie postępuj zgodnie z instrukcjami ...
Pakiet r-cran-rodbc faktycznie znajduje się na repozytoriach Ubuntu, a nie na repozytoriach CRAN. Ale ten plik README jest wciąż złoty.
Dirk Eddelbuettel
Już to zrobiłem i powiedziałem ... Czytanie list pakietów ... Gotowe Drzewo zależności budynku Odczytywanie informacji o stanie ... Gotowe r-cran-rodbc jest już najnowszą wersją. 0 zaktualizowanych, 0 nowo zainstalowanych, 0 do usunięcia i 22 niezaktualizowanych. ALE jeśli spróbuję zainstalować pakiet w R, pojawi się ten sam błąd
Więc jest zainstalowany. Dlaczego więc chcesz zainstalować drugą kopię poza systemem zarządzania pakietami?
Dirk Eddelbuettel
Pamiętaj, że nadal mówi: sprawdzanie użyteczności sql.h ... brak sprawdzania obecności sql.h ... brak sprawdzania sql.h ... brak sprawdzania użyteczności sqlext.h ... brak sprawdzania obecności sqlext.h ... brak sprawdzania sqlext.h ... brak konfiguracji: błąd: „Nie znaleziono nagłówków ODBC sql.h i sqlext.h” BŁĄD: konfiguracja nie powiodła się dla pakietu „RODBC” * usunięcie ”/ home / administrator / R / x86_64-pc- linux-gnu-library / 2.12 / RODBC 'Ostrzeżenie w install.packages: instalacja pakietu' RODBC 'miała niezerowy status wyjścia ...
11

Po próbie zainstalowania pakietów ze wszystkich rozwiązań na tej stronie i innych udało mi się zbudować RODBCpakiet przy użyciu:

sudo apt-get install unixodbc unixodbc-dev

Zainstalowałem również:

  • libiodbc2-dev
  • libmyodbc
  • odbc-postgresql
Megatron
źródło
To jest to, czego chcesz, jeśli próbujesz zainstalować klejnot ruby-odbc, ale występują błędy na debian / ubuntu.
IAmNaN
3

FWIW, miałem ten sam problem („Nie znaleziono nagłówków ODBC sql.h i sqlext.h”) w systemie OS X i naprawiłem go, instalując unixodbc ( brew install unixodbc)

Fab
źródło
2
Wydaje się, że nie ma to żadnego związku z pierwotnym pytaniem. Wyjaśnienie, jak odinstalowanie czegoś z HomeBrew w systemie OS / X nie pomaga osobie walczącej z Ubuntu, nie sądzisz? Poświęć chwilę na zastanowienie się, w jaki sposób możesz poprawić swoją odpowiedź i rozwiązać problem opisany w pytaniu.
Sami Laine
os x ? w jaki sposób instalacja na OSX rozwiązuje problem z Ubuntu
BlueBerry - Vignesh4303
unixodbc istnieje również dla Ubuntu.
harrymc
Próbowałem właśnie teraz, ale R powiedział, że unixodbc nie jest dostępny dla wersji R 3.3.1, która działa na serwerze. Wydaje się, że wymaga aktualizacji;)
Oleg Melnikov
1

RODBC zależy od R (> = 3.0.0 (patrz na przykład https://cran.r-project.org/web/packages/RODBC/RODBC.pdf )

Twoja lokalna biblioteka pakietów ...

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

... sugeruje, że możesz mieć zainstalowaną starszą wersję R (2.12). W takim przypadku spróbuj uaktualnić do najnowszej wersji R.

Erik Jan de Vries
źródło