5

Vì vậy, tôi không thể cho cuộc sống của mình hoạt động bình thường. Mục tiêu cuối cùng của tôi là để có được đá quý dbd-odbc được cài đặt và làm việc, và từ nhiều thứ tôi đã đọc, tôi cần phải cài đặt ODBC binding cho ruby ​​cùng với đá quý dbd-odbc. Vâng, tôi có thể nhận được đá quý dbd-odbc được cài đặt tốt, nhưng khi nói đến cố gắng để cài đặt các ràng buộc nó xe tăng trên tôi như vậy:Tôi không thể lấy bộ công cụ phát triển ruby ​​làm việc cho Windows XP

 
Building native extensions. This could take a while... 
ERROR: Error installing ruby-odbc-0.9998.gem: 
     ERROR: Failed to build gem native extension.` 

c:/tools/ruby/ruby-1.9.1-p376/bin/ruby.exe extconf.rb 
checking for version.h... *** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of 
necessary libraries and/or headers. Check the mkmf.log file for more 
details. You may need configuration options. 

Provided configuration options: 
     --with-opt-dir 
     --without-opt-dir 
     --with-opt-include 
     --without-opt-include=${opt-dir}/include 
     --with-opt-lib 
     --without-opt-lib=${opt-dir}/lib 
     --with-make-prog 
     --srcdir=. 
     --curdir 
     --ruby=c:/tools/ruby/ruby-1.9.1-p376/bin/ruby 
     --with-odbc-dir 
     --without-odbc-dir 
     --with-odbc-include 
     --without-odbc-include=${odbc-dir}/include 
     --with-odbc-lib 
     --without-odbc-lib=${odbc-dir}/lib 
c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:364:in 'try_do': The complier failed to generate an executable file. (RuntimeError) 
You have to install development tools first. 
     from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:433:in 'try_cpp' 
     from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:811:in 'block in have_header' 
     from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:670:in 'block in checking_for' 
     from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:276:in 'block (2 levels) in postpone' 
     from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:250:in 'open' 
     from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:276:in 'block in postpone' 
     from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:250:in 'open' 
     from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:272:in 'postpone' 
     from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:669:in 'checking_for' 
     from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:810:in 'have_header' 
     from extconf.rb:22:in '' 

Vì vậy ... đọc qua nó, nó nói tôi phải cài đặt các công cụ phát triển trước. Cao quý và sang trọng. Tôi đi here và lấy bộ công cụ phát triển. Tôi đi lang thang here và đọc qua hướng dẫn về cách cài đặt. Tôi cài đặt nó.
Một lưu ý phụ - Tôi đã thử cài đặt này chỉ với một cú nhấp chuột 1.9.1 từ trang cài đặt ruby. Tôi đã thử điều này với các tập tin nhị phân mswin-32 được biên dịch sẵn, dưới 1.8.6, 1.8.7 và 1.9.1. Không ai trong số họ đã làm việc.
Tôi sẽ gắn bó với trình cài đặt một lần nhấp vì đó là tất cả các hướng dẫn tôi đã xem trên web dường như đang sử dụng. Khỏe. Nó nói để chỉnh sửa tập tin fstab của tôi. Tôi làm. Đây là thiết lập hiện tại của tôi:
Cài đặt ruby ​​của tôi đang nằm trong: C:\tools\ruby\ruby19 Bộ lọc đã được trích xuất vào thư mục này và tôi có thể kiểm tra/bin và xem gcc.bat, make.bat và sh.bat trong đó.
Tôi làm theo hướng dẫn và sửa đổi tệp devkit/msys/1.0.11/etc/fstab của tôi. Nó bây giờ trông giống như thế này:
C:/tools/ruby/ruby19/devkit/gcc/3.4.5 /mingw C:/tools/ruby/ruby19/devkit/msys/1.0.11/usr/local /usr/local

Bất kể tôi có vẻ như thế nào, tôi không thể lấy được đá quý ràng buộc odbc để biên dịch sang phần mở rộng gốc. Tôi tiếp tục nhận được cùng một lỗi hơn và hơn. Điều này đang trở nên rất bực bội - hãy giúp đỡ!

Trả lời

2

Bạn đang tự sát.

Đối với hệ điều hành Win32 DLLs 0.997 có sẵn trong i386-msvcrt-ruby-odbc.zip. Nó chứa các tệp odbc.so và odbc_utf8.so cần được sao chép vào thư mục .../ruby ​​/ 1.8/i386-msvcrt của cài đặt Ruby 1.8 dựa trên MSVC.

Thử đặt những tệp đó ở nơi được đề xuất, sau đó cài đặt phiên bản đá quý đó và xem nó như thế nào.

+1

Bạn biết đấy, tôi đã cố gắng hết lần này đến lần khác nhưng tôi đã không đọc phần chính của tuyên bố đó ... về cài đặt Ruby 1.8 dựa trên MSVC. Quay lại 1.8.7 cài đặt một cú nhấp chuột, sao chép những tập tin .so trên nơi cần thiết và nó có vẻ là làm việc. Tôi đoán nó chưa sẵn sàng cho 1.9. – bergyman

1

Ok, tôi nghĩ đây là mức tối thiểu. Tôi gỡ bỏ cài đặt tất cả mọi thứ: c: \ ruby, MinGW, MSYS, tất cả những thứ tôi không cố gắng để có được điều này để chạy.

Rồi tôi:

  1. cài đặt của Ruby One-Click: http://rubyforge.org/frs/download.php/69034/rubyinstaller-1.8.7-p249-rc2.exe
  2. "gem install activerecord-SQLServer-adapter"
  3. "gem install ray"
  4. cài đặt devkit: giải nén rubyforge.org/frs/download.php/66888/devkit -3.4.5r3-20091110.7z vào c: \ ruby ​​
  5. "đá quý cài đặt ruby-odbc", được xây dựng và cài đặt v. 0.999
  6. làm một DSN gọi dev-du lịch-dsn sử dụng "Control Panel> Administrative Tools> Data Sources (ODBC)"
  7. đặt này trong database.yml của tôi:

development: 
    adapter: sqlserver 
    mode: odbc 
    dsn: dev_travel_dsn 
    username: some_user 
    password: some_secret 
    host: some_host 

Tôi chạy "rake db: schema: dump", hoạt động tốt.

Thật kỳ quặc, nhưng ngay cả khi bạn đặt nhiều thứ giống nhau trong DSN Manager, bạn cũng phải đặt chúng trong database.yml.

Dù sao, những thứ đó dường như là yêu cầu tối thiểu để sử dụng Sql Server/Rails 2.3.5/Windows.

1

Điều này cũng phù hợp với tôi với đường ray 3. Tôi chạy vào 2 gotchas trong quá trình này. 1. Ruby 1.9.2 sẽ không cho phép tôi cài đặt ruby-odbc vì vậy tôi đã chuyển về 1.8.7. và 2. Đối với Rails 3 bạn phải bao gồm các dòng sau trong gemfile của bạn:

đá quý 'activerecord-SQLServer-adapter'

đá quý 'ruby-odbc'

Sau đó, hướng dẫn ở trên làm việc hoan hảo!

2

Tôi gặp vấn đề tương tự, cố gắng để DBI và ODBC làm việc với Ruby 1.9 trong Windows .. Ruby 1.8 hoạt động tốt, nhưng 1.9 đã trình bày rất nhiều vấn đề. Cuối cùng đã làm cho nó hoạt động.

  1. Xóa tất cả các phiên bản Ruby khác, Dev Kit, v.v. khỏi hệ thống của tôi (hoặc tắt chúng ở đâu đó). Cố gắng để có được Dev Kit để làm việc với "bẩn" hệ thống sản xuất các vấn đề vì lý do nào ... Gem xung đột?
  2. Tải trình cài đặt Ruby mới nhất từ ​​here và cài đặt nó.
  3. Tải Dev Kit từ github.com/oneclick/rubyinstaller/wiki/development-kit và làm theo hướng dẫn.
  4. Lấy đá quý Ruby ODBC mới nhất từ ​​www.ch-werner.de/rubyodbc/. Tải xuống dưới dạng đá quý Ruby và lưu vị trí.
  5. Cài đặt của Ruby ODBC đá quý bằng cách chạy lệnh này: gem install ruby-odbc-0.99994.gem --platform = ruby ​​
  6. Install DBI: gem install dBi
  7. Install DBD-ODBC đá quý: gem install DBD -odbc
  8. Chạy thử nghiệm đơn giản, bạn nên làm tốt.
1

Ron, để tất cả điều này hoạt động, bạn có nhớ tạo kết nối ODBC mới trong Nguồn dữ liệu ODBC của mình không?

Đối với Ruby 1.8, bạn không cần phải 'làm' bất cứ điều gì; việc đặt các tệp odbc đó từ i386-msvcrt-ruby-odbc.zip phải đủ (hướng dẫn được cung cấp trên ch-werner.de/rubyodbc)

Bạn đã tải xuống dbi & đá quý dbd-odbc chưa?

Các vấn đề liên quan