2014-09-29 35 views
5

khi cố gắng cài đặt bson_ext tôi thấy lỗi ... cài đặt json đá quý hoạt động tốt mà cũng đòi hỏi việc xây dựng phần mở rộng tự nhiên - tôi đã thử tất cả mọi thứ xem các câu hỏi tương tự không có câu trả lời tốtcửa sổ: ray: lỗi khi cài đặt bson_ext

$ gem install bson_ext 
Temporarily enhancing PATH to include DevKit... 
Building native extensions. This could take a while... 
ERROR: Error installing bson_ext: 
     ERROR: Failed to build gem native extension. 

     c:/Ruby193/bin/ruby.exe extconf.rb 
checking for asprintf()... no 
checking for ruby/st.h... yes 
checking for ruby/regex.h... yes 
checking for ruby/encoding.h... yes 
creating Makefile 

make 
generating cbson-i386-mingw32.def 
compiling bson_buffer.c 
compiling cbson.c 
cbson.c:25:23: fatal error: arpa/inet.h: No such file or directory 
compilation terminated. 
make: *** [cbson.o] Error 1 


Gem files will remain installed in c:/Ruby193/lib/ruby/gems/1.9.1/gems/bson_ext- 
1.11.1 for inspection. 
Results logged to c:/Ruby193/lib/ruby/gems/1.9.1/gems/bson_ext-1.11.1/ext/cbson/ 
gem_make.out 

$ gem install json 
Temporarily enhancing PATH to include DevKit... 
Building native extensions. This could take a while... 
Successfully installed json-1.8.1 
1 gem installed 
Installing ri documentation for json-1.8.1... 
Installing RDoc documentation for json-1.8.1... 
+0

Tôi gặp sự cố tương tự. Những người khác có thể giải quyết các vấn đề tương tự với: 'gem update --system; gem install bson_ext' nhưng nó không làm việc cho tôi. –

+0

Tôi đã cố gắng cài đặt tệp gem bằng tay, tải xuống tệp từ đây: http://rubygems.org/gems/bson_ext.Tôi nhận được cùng một lỗi như trên, gợi ý hoặc A) Cả hai chúng tôi có cùng một vấn đề môi trường hoặc B) Có một vấn đề với các tập tin đá quý. –

+0

Tôi đã thử cập nhật đá quý - hệ thống không hoạt động với tôi: ( – lemon

Trả lời

9

Theo this post<arpa/inet.h> không phải là thư viện cửa sổ, do đó, winsock2.h nên được sử dụng thay thế.

Để thay đổi thông tin này, tôi đã thực hiện các ** sau:

  • Đến thư mục cài đặt của bạn (c: /Ruby193/lib/ruby/gems/1.9.1/gems/bson_ext-1.11 .1)
  • khoan xuống mức vào thư mục cbson và tìm cbson.c
  • mở cbson.c trong trình soạn thảo văn bản yêu thích của bạn và tìm thấy những dòng mà đọc #include "<arpa/inet.h>"
  • Change lót để #include winsock2.h
  • mở một nhắc lệnh, duyệt đến thư mục cài đặt và chạy gem build bson_ext.gemspec
  • Di chuyển tệp .gem mới được tạo ra ở nơi nào đó an toàn (ví dụ% userprofile% \ Desktop).
  • Chuyển đến thư mục đá quý và xóa toàn bộ thư mục bson_ext
  • Quay lại cửa sổ nhắc lệnh, thay đổi thư mục ở bất cứ nơi nào bạn đặt tệp .gem mới được tạo (cd% userprofile% \ Desktop, nếu bạn thực hiện theo các bước này chính xác)
  • Chạy gem install bson_ext-1.11.1.gem --local và đá quý sẽ được cài đặt thành công.

** Thông báo lớn: Tôi chỉ đang chạy qua mongodb cho hướng dẫn đường ray và tôi không có bất kỳ mã chức năng nào để kiểm tra điều này. Trong khi điều này loại bỏ các lỗi cài đặt, tôi không có cách nào để xác định nếu sửa chữa này là một hoàn chỉnh. Tham chiếu thư viện này là mới cho bản phát hành 1.11.1. Nếu bạn cài đặt phiên bản 1.10.2 vấn đề này sẽ không xảy ra (gem install bson_ext -v 1.10.2). Tôi sẽ để nó cho bạn để quyết định giải pháp nào có ý nghĩa hơn đối với bạn.

Edit: Dựa trên a change to the bson-ruby project trên github, một sửa chữa tốt hơn là nên thay đổi điều đó bao gồm để đọc như thế này:

#ifdef _WIN32 
#include <winsock2.h> 
#else 
#include <arpa/inet.h> 
#endif 
+0

cảm ơn, nó đã hoạt động – Jacky

5

Các tập tin không cần thiết khi soạn thảo trên devkit.

Để ngăn chặn lỗi này, đủ để tạo tệp trống ở vị trí mong muốn. Nếu DevKit của bạn đã được cài đặt trong C: \ DevKit, tệp sẽ được mong đợi tại C: \ DevKit \ mingw \ include \ arpa \ inet.h

Điều này cũng nên khắc phục các đá quý gốc khác. Lý do là, các định nghĩa thường đến từ arpa/inet.h đã đến từ các tệp bao gồm tự động được bao gồm phần lớn thời gian.

0

Tôi vừa cập nhật gem của mình lên phiên bản cũ hơn (từ 2.4.6 đến 2.3) và đã hoạt động.

0
Use this command 
gem update --system 2.3.0 
Các vấn đề liên quan