2015-06-14 22 views
18

Im cố gắng để cài đặt một đường ray nguồn 3.2.21 ứng dụng mở có sử dụng các mysql2 đá quý, nhưng khi tôi cố gắng và chạy bundle commant tôi nhận được lỗi sau:báo lỗi khi cố gắng cài đặt ứng dụng với mysql2 đá quý

Fetching: mysql2-0.3.18.gem (100%) 
Building native extensions. This could take a while... 
p 
ERROR: Error installing mysql2: 
    ERROR: Failed to build gem native extension. 

    /Users/my_username/.rvm/rubies/ruby-2.1.2/bin/ruby -r ./siteconf20150614-72129-orqsb7.rb extconf.rb 
checking for ruby/thread.h... yes 
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes 
checking for rb_thread_blocking_region()... yes 
checking for rb_wait_for_single_fd()... yes 
checking for rb_hash_dup()... yes 
checking for rb_intern3()... yes 
----- 
Using mysql_config at /usr/local/bin/mysql_config 
----- 
checking for mysql.h... yes 
checking for errmsg.h... yes 
checking for mysqld_error.h... yes 
----- 
Don't know how to set rpath on your system, if MySQL libraries are not in path mysql2 may not load 
----- 
----- 
Setting libpath to /usr/local/Cellar/mysql/5.6.25/lib 
----- 
creating Makefile 

make "DESTDIR=" clean 

make "DESTDIR=" 
compiling client.c 
compiling infile.c 
compiling mysql2_ext.c 
compiling result.c 
linking shared-object mysql2/mysql2.bundle 
ld: warning: directory not found for option '-L/Users/travis/.sm/pkg/active/lib' 
ld: library not found for -lssl 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make: *** [mysql2.bundle] Error 1 

make failed, exit code 2 

Gem files will remain installed in /Users/my_username/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/mysql2-0.3.18 for inspection. 
Results logged to /Users/my_username/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/extensions/x86 

tôi đã cố gắng gỡ bỏ cài đặt mọi phiên bản của mysql tôi đã cài đặt qua homebrew và cài đặt lại chúng, như vậy:

brew uninstall --force mysql && brew install mysql 

Sau đó chạy:

sudo gem install mysql2 

Được đề xuất bởi một số câu hỏi tương tự được hỏi tại đây, nhưng vẫn dẫn đến lỗi tương tự như trên.

Xin vui lòng ai đó có thể cung cấp hướng dẫn về cách thiết lập và hoạt động này?

+0

cố gắng để chạy "brew bác sĩ" và kiểm tra nếu có bất kỳ sai sót. Nếu có, hãy làm theo hướng dẫn và thử lại. – michniewicz

+0

Bạn đã cài đặt phụ thuộc của đá quý chưa? https://github.com/brianmario/mysql2#general-instructions – lcguida

+0

@ValAsensio, tôi chân thành không đồng ý với bạn ở đó, tôi nghĩ bạn nên luôn luôn cố gắng sử dụng db sản xuất của bạn trong phát triển, nếu có thể. Tôi không bao giờ sử dụng sqlite trong phát triển, cũng không phải bất cứ ai tôi làm việc với. – niels

Trả lời

3

Nhật ký lỗi nói:

ld: library not found for -lssl 

Vì vậy, bạn cần phải cài đặt libssl:

brew install openssl 

Hy vọng nó giúp.

+0

Cảm ơn đã chỉ cho tôi đúng hướng. Khó chịu Im nhận được một lỗi mới: 'Lỗi: Không có công thức có sẵn cho libssl'. – zenvelope

+0

Ồ, xin lỗi vì đã nhập sai tên của nó. – mudasobwa

3

Cảm ơn @mudasobwa đã chỉ cho tôi đúng hướng. Hóa ra lỗi là do tệp openssl bị hủy liên kết, do đó chạy:

brew reinstall openssl && brew link openssl --force 

Giải quyết vấn đề. Tôi tìm thấy giải pháp ở đây: OpenSSL, RVM, Brew, conflicting error

44

Đối với bất cứ ai vẫn gặp vấn đề:

Khi bạn cài đặt openssl qua brew, bạn sẽ nhận được thông báo sau:

Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries

Generally there are no consequences of this for you. If you build your own software and it requires this formula, you'll need to add to your build variables:

LDFLAGS: -L/usr/local/opt/openssl/lib
CPPFLAGS: -I/usr/local/opt/openssl/include
PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig

Bạn có thể thiết lập các xây dựng cờ (cho ứng dụng cục bộ) bằng cách chạy như sau:

bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include" 

Điều này làm việc cho tôi.

Xem bundler's documentation để biết thêm thông tin.

+17

Nếu bạn chỉ muốn sử dụng 'gem install', các công trình sau đây: ' gem install mysql2 -v '0.3.21' - --with-ldflags = -L/usr/local/opt/openssl/lib - with-cppflags = -I/usr/local/opt/openssl/include' – niels

+0

^^^ @niels nên là câu trả lời ... Alessandro's không hoạt động trên Sierra ("Cảnh báo: Từ chối liên kết: mở ssl ... "-> một cái gì đó để làm với hệ thống deprecations của openssl) – the12

+0

@ the12 niels của giải pháp là cho' 'gem install'', của tôi là cho' 'bundle install''. Bạn gặp sự cố nào chính xác, bạn có thể đăng lỗi không? Giải pháp tôi đăng vẫn hoạt động cho tôi. –

26

Giải pháp cho tôi là cài đặt Công cụ Dòng lệnh Xcode.

Gần đây tôi đã cập nhật Xcode thông qua Mac App Store và mỗi lần tôi làm điều đó, tôi thấy rằng tôi phải cài đặt lại Công cụ dòng lệnh một lần nữa.

xcode-select --install 
+0

Điều này đã giúp tôi. – racl101

+0

cảm ơn bạn !!!!!!! – susemi99

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