sự cố với cài đặt RODBC trong Ubuntu


29

Tôi gặp vấn đề với một số tiêu đề bị thiếu khi cố gắng cài đặt RODBC trong R trên linux của tôi. Bất cứ ai có thể giúp tôi với vấn đề này?

> 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 

Làm suo apt-get cài đặt unixODBC * github.com/zozlak/RODBCext/issues/2
prashanth

Chủ đề mới hơn một chút ở đây .
hhh

Câu trả lời:


29

Như Dirk đã nói trong các bình luận, nếu bạn đã cài đặt r-cran-Rodbc, không cần phải chạy install.packages () từ bên trong R. "library (RODBC)" nên tải gói.

Tổng quát hơn, khi bạn thấy các lỗi liên quan đến tiêu đề, đó là do thư viện phát triển bắt buộc chưa được cài đặt. Giải pháp là tìm kiếm trên web bằng tên của các tệp tiêu đề bị thiếu ( ví dụ: Google cho "sqlext.h ub Ubuntu"), để xác định gói yêu cầu. Trong trường hợp này, bạn cần libiodbc2-dev. Vì thế:

sudo apt-get install libiodbc2-dev

Sau đó, cài đặt trong R sẽ hoạt động.


8
FWIW r-cran-binary thực sự được xây dựng dựa trên thư viện ODBC khác trong Debian / Ubuntu: unixodbc-dev.
Dirk Eddelbuettel

Tôi có phải làm gì với trình điều khiển ODBC không?

8
Cảm ơn đã làm rõ Dirk; vì vậy "sudo apt-get install unixodbc-dev" là một cách thay thế.

Tôi đã theo sudo apt-get install unixodbc-dev và bây giờ RODBC đã được cài đặt và tải hoàn hảo trong R nhưng khi tôi cố gắng kết nối với MySQL thì nó báo thông báo Cảnh báo: 1: Trong odbcDriverConnect ("Driver = {MySQL ODBC 5.1 Driver}; Server = 10.134.5.62; Cơ sở dữ liệu = copy_number; Người dùng = root; Mật khẩu = xxxx; Tùy chọn = 3; "): [RODBC] ERROR: trạng thái IM002, mã 0, tin nhắn [unixODBC] [Trình quản lý trình điều khiển] Không tìm thấy tên nguồn dữ liệu tài xế mặc định 2: Trong odbcDriverConnect ( "driver = {MySQL ODBC 5.1 driver}; server = 10.134.5.62; Database = copy_number; User = gốc; Password = xxxx; Tùy chọn = 3;"): kết nối ODBC thất bại

5
Đó là một câu hỏi riêng biệt. Nhưng đừng hỏi nó: bây giờ là lúc để đi và đọc một số tài liệu, hướng dẫn và danh sách gửi thư. Sau đó quay lại với một truy vấn cụ thể nếu bạn vẫn bị mắc kẹt.

11

Bạn có thực sự cần phải xây dựng từ nguồn? Tại sao bạn không sử dụng gói nhị phân?

Vì vậy, có thể thử điều này thay thế:

  sudo apt-get install r-cran-rodbc

hoặc sử dụng bất kỳ giao diện GUI nào cho hệ thống quản lý gói.


1
... hoặc làm theo các hướng dẫn này nói chung ...

Gói r-cran-Rodbc thực sự có trên repos Ubuntu chứ không phải trên CRAN. Nhưng README vẫn là vàng.
Dirk Eddelbuettel

Tôi đã làm điều này và nó nói .... Đọc danh sách gói ... Xong Xây dựng cây phụ thuộc Đọc thông tin trạng thái ... Xong r-cran-Rodbc đã là phiên bản mới nhất. 0 nâng cấp, 0 mới cài đặt, 0 để gỡ bỏ và 22 không được nâng cấp. NHƯNG nếu tôi thử cài đặt gói trong R thì nó cũng báo lỗi tương tự

Vì vậy, nó được cài đặt. Vậy tại sao bạn muốn cài đặt một bản sao thứ hai bên ngoài hệ thống quản lý gói?
Dirk Eddelbuettel

Hãy nhớ rằng nó vẫn nói .. kiểm tra khả năng sử dụng sql.h ... không kiểm tra sự hiện diện của sql.h ... không kiểm tra sql.h ... không kiểm tra khả năng sử dụng sqlext.h ... không kiểm tra sự hiện diện của sqlext.h ... không kiểm tra sqlext.h ... không có cấu hình: lỗi: "Không tìm thấy tiêu đề ODBC sql.h và sqlext.h" ERROR: cấu hình không thành công cho gói 'RODBC' * loại bỏ '/ home / quản trị viên / R / x86_64-pc- linux-gnu-library / 2.12 / RODBC 'Cảnh báo trong install.packages: cài đặt gói' RODBC 'có trạng thái thoát không bằng 0 ...

11

Sau khi thử cài đặt các gói từ tất cả các giải pháp trên trang này và các giải pháp khác, tôi đã thành công trong việc xây dựng RODBCgói bằng cách sử dụng:

sudo apt-get install unixodbc unixodbc-dev

Tôi cũng đã cài đặt:

  • libiodbc2-dev
  • libmyodbc
  • odbc-postgresql

Đây là thứ bạn muốn nếu bạn đang cố gắng cài đặt đá quý ruby-odbc nhưng đang gặp lỗi trên debian / ubfox.
IAmNaN

3

FWIW, tôi đã gặp vấn đề tương tự ("không tìm thấy tiêu đề ODBC sql.h và sqlext.h" trên OS X và đã khắc phục bằng cách cài đặt unixodbc ( brew install unixodbc)


2
Điều này dường như không liên quan đến câu hỏi ban đầu theo bất kỳ cách nào. Giải thích cách gỡ cài đặt một cái gì đó với HomeBrew trên hệ thống OS / X hầu như không giúp người đấu tranh với Ubuntu, bạn nghĩ sao? Vui lòng dành một phút để xem xét cách bạn có thể cải thiện câu trả lời của mình và giải quyết vấn đề được mô tả trong câu hỏi.
Sami Laine

os x ? làm thế nào để cài đặt trên OSX giải quyết vấn đề của ubuntu
Blueberry - Vignesh4303

unixodbc cũng tồn tại cho Ubuntu.
harrymc

Tôi đã thử nó ngay bây giờ, nhưng R nói rằng unixodbc không có sẵn cho phiên bản R 3.3.1, đó là những gì đang chạy trên máy chủ. Nó dường như đang cần nâng cấp;)
Oleg Melnikov

1

RODBC phụ thuộc vào R (> = 3.0.0 (xem ví dụ https://cran.r-project.org/web/packages/RODBC/RODBC.pdf )

Thư viện gói địa phương của bạn ...

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

... gợi ý rằng bạn có thể cài đặt phiên bản R cũ hơn (2.12). Nếu đây là trường hợp, hãy thử nâng cấp lên phiên bản gần đây của R.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.