masalah dengan instalasi RODBC di Ubuntu

29

Saya memiliki masalah dengan beberapa header yang hilang ketika mencoba menginstal RODBC di R di linux saya. Adakah yang bisa membantu saya dengan masalah ini?

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

sumber
Lakukan suo apt-get install unixODBC * github.com/zozlak/RODBCext/issues/2
prashanth
Sedikit utas yang lebih baru di sini .
hhh

Jawaban:

29

Seperti yang dikatakan Dirk dalam komentar, jika Anda telah menginstal r-cran-rodbc, tidak perlu menjalankan install.packages () dari dalam R. "library (RODBC)" harus memuat paket.

Lebih umum, ketika Anda melihat kesalahan mengenai header, itu karena pustaka pengembangan yang diperlukan tidak diinstal. Solusinya adalah mencari di web menggunakan nama-nama file header yang hilang ( mis. Google untuk "sqlext.h ubuntu"), untuk mengidentifikasi paket yang diperlukan. Dalam hal ini, Anda perlu libiodbc2-dev. Begitu:

sudo apt-get install libiodbc2-dev

Maka instal dalam R harus bekerja.

neilfws
sumber
8
FWIW r-cran-binary sebenarnya dibangun terhadap perpustakaan ODBC lain di Debian / Ubuntu: unixodbc-dev.
Dirk Eddelbuettel
Apakah saya harus melakukan sesuatu dengan driver ODBC?
8
Terima kasih untuk klarifikasi Dirk; jadi "sudo apt-get install unixodbc-dev" adalah alternatif.
Saya mengikuti sudo apt-get install unixodbc-dev dan sekarang RODBC diinstal dan memuat dengan sempurna di R tetapi ketika saya mencoba untuk terhubung ke MySQL dikatakan pesan Peringatan: 1: Dalam odbcDriverConnect ("Driver = {MySQL ODBC 5.1 Driver}; Server = 10.134.5.62; Database = copy_number; Pengguna = root; Kata sandi = xxxx; Opsi = 3; "): [RODBC] KESALAHAN: status IM002, kode 0, pesan [unixODBC] [Driver Manager] Nama sumber data tidak ditemukan, dan tidak ada driver standar yang ditentukan 2: Dalam odbcDriverConnect ("Driver = {MySQL ODBC 5.1 Driver}; Server = 10.134.5.62; Database = copy_number; Pengguna = root; Kata sandi = xxxx; Opsi = 3;"): Koneksi ODBC gagal
5
Itu pertanyaan terpisah. Tapi jangan tanya: sekaranglah saatnya untuk pergi dan membaca beberapa dokumentasi, tutorial dan milis. Kemudian kembali dengan kueri tertentu jika Anda masih terjebak.
11

Apakah Anda benar-benar perlu membangun dari sumber? Mengapa Anda tidak menggunakan paket biner?

Jadi mungkin coba ini sebagai gantinya:

  sudo apt-get install r-cran-rodbc

atau gunakan salah satu antarmuka GUI ke sistem manajemen paket.

Dirk Eddelbuettel
sumber
1
... atau ikuti petunjuk ini secara umum ...
Paket r-cran-rodbc sebenarnya pada repo Ubuntu, dan bukan pada yang CRAN. Tapi README itu masih emas.
Dirk Eddelbuettel
Saya sudah melakukan ini dan dikatakan .... Membaca daftar paket ... Selesai membangun pohon ketergantungan Membaca informasi negara ... Selesai r-cran-rodbc sudah merupakan versi terbaru. 0 ditingkatkan, 0 baru dipasang, 0 untuk dihapus dan 22 tidak ditingkatkan. TETAPI jika saya mencoba menginstal paket dalam R ia mengatakan kesalahan yang sama
Jadi sudah terpasang. Jadi mengapa Anda ingin menginstal salinan kedua di luar sistem manajemen paket?
Dirk Eddelbuettel
Ingat masih mengatakan .. memeriksa kegunaan sql.h ... tidak memeriksa keberadaan sql.h ... tidak memeriksa sql.h ... tidak memeriksa kegunaan sqlext.h ... tidak memeriksa keberadaan sqlext.h ... tidak memeriksa untuk sqlext.h ... tidak mengkonfigurasi: error: "header ODBC sql.h dan sqlext.h tidak ditemukan" KESALAHAN: konfigurasi gagal untuk paket 'RODBC' * menghapus '/ home / administrator / R / x86_64-pc- linux-gnu-library / 2.12 / RODBC 'Peringatan di install.packages: instalasi paket' RODBC 'memiliki status keluar bukan nol ...
11

Setelah mencoba menginstal paket dari semua solusi di situs ini dan yang lain, saya berhasil membangun RODBCpaket menggunakan:

sudo apt-get install unixodbc unixodbc-dev

Saya juga menginstal:

  • libiodbc2-dev
  • libmyodbc
  • odbc-postgresql
Megatron
sumber
Ini adalah yang Anda inginkan jika Anda mencoba memasang permata ruby-odbc tetapi mendapatkan kesalahan di debian / ubuntu.
IAmNaN
3

FWIW, saya memiliki masalah yang sama ("header ODBC sql.h dan sqlext.h tidak ditemukan") pada OS X, dan memperbaikinya dengan menginstal unixodbc ( brew install unixodbc)

Hebat
sumber
2
Ini sepertinya tidak relevan dengan pertanyaan asli dengan cara apa pun. Menjelaskan bagaimana menghapus sesuatu dengan HomeBrew pada sistem OS / X tidak membantu orang yang kesulitan dengan Ubuntu, bukan begitu? Silakan luangkan waktu sebentar untuk mempertimbangkan bagaimana Anda dapat meningkatkan jawaban Anda dan mengatasi masalah yang dijelaskan dalam pertanyaan.
Sami Laine
os x ? bagaimana cara menginstal di osx memecahkan masalah ubuntu
BlueBerry - Vignesh4303
unixodbc juga ada untuk Ubuntu.
harrymc
Saya mencobanya sekarang, tetapi R mengatakan bahwa unixodbc tidak tersedia untuk R versi 3.3.1, yang sedang berjalan di server. Tampaknya perlu upgrade;)
Oleg Melnikov
1

RODBC tergantung pada R (> = 3.0.0 (lihat misalnya https://cran.r-project.org/web/packages/RODBC/RODBC.pdf )

Perpustakaan paket lokal Anda ...

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

... menyarankan Anda menginstal versi R yang lebih lama (2.12). Jika ini masalahnya, coba perbarui ke versi R. terbaru

Erik Jan de Vries
sumber
0

Saya juga punya masalah ini. Bagi saya solusinya adalah saya kehilangan beberapa dependensi Ubuntu seperti

Ini dicatat bahwa install.packages("RODBC", dependencies=TRUE)tidak tidak mengambil paket ini. Mereka berbaring di luar R.

isomorfisma
sumber