2015-10-06 18 views
16

Khi tôi chạy: rvmsudo passenger-install-nginx-module trên máy Mac của tôi để cài đặt nginx, các bản in terminal:Nginx có thể không Tim Phát triển OpenSSL Headers

Checking for OpenSSL development headers... 
    Found: no 

Nhưng tôi chắc chắn tôi đã cài đặt openssl. which openssl trả về /usr/local/openssl/bin/openssl/usr/local/openssl/bin: là mục nhập đầu tiên trong $ PATH của tôi. Câu hỏi của tôi là:

  • Các tiêu đề phát triển OpenSSL có bao gồm cài đặt mở thông thường thông qua homebrew không?
  • Nếu không, tôi nên tải xuống từ đâu?
+0

Stack Overflow là trang web cho các câu hỏi về lập trình và phát triển. Câu hỏi này dường như không có chủ đề vì nó không phải là về lập trình hay phát triển. Xem [Tôi có thể hỏi những chủ đề gì ở đây] (http://stackoverflow.com/help/on-topic) trong Trung tâm trợ giúp. Có lẽ [Super User] (http://superuser.com/) hoặc [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/) sẽ là một nơi tốt hơn để hỏi. Đồng thời xem [Tôi đăng câu hỏi về Dev Ops ở đâu?] (Http://meta.stackexchange.com/q/134306). – jww

+0

Để trả lời các câu hỏi của bạn ... (1) Không, các gói phát triển thường không được cài đặt với các tiện ích. (2) Bản phân phối của bạn thường cung cấp cho chúng theo một gói ['libssl-dev'] (https://packages.debian.org/squeeze/libssl-dev) hoặc' libssl-devel'. Bạn có lẽ nên hỏi về quản lý gói Homebrew trên một diễn đàn khác, như [Super User] (http://superuser.com/) hoặc [Apple Stack Exchange] (http://apple.stackexchange.com/). – jww

+0

Tôi đang bỏ phiếu để đóng câu hỏi này là không có chủ đề vì câu hỏi này là dư thừa với http://superuser.com/questions/982960/nginx-cannot-find-openssl-development-headers, đã được giải quyết bởi OP – UmNyobe

Trả lời

35

Nếu brew link openssl --force mang đến cho bạn tin nhắn này:

Cảnh báo: Từ chối linksl: openssl Liên kết openssl chỉ có nghĩa là bạn có thể kết thúc liên kết với OpenSSL không an toàn, không được chấp nhận trong khi sử dụng các tiêu đề từ openssl của Homebrew. Thay vào đó, vượt qua đầy đủ bao gồm/đường dẫn thư viện để trình biên dịch của bạn ví dụ: -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib

Hãy thử điều này:

$ brew doctor (now fix anything that it tells you to fix) 
$ brew update 
$ brew upgrade 

Bây giờ hãy cài đặt nó:

$ brew install openssl 

Và bây giờ chúng tôi sẽ liên kết nó thành của chúng tôi khu vực công cộng, do đó bạn không cần phải tìm ra biến môi trường ma thuật để đặt trong khi xây dựng thư viện được yêu thích OpenSSL của bạn:

$ cd /usr/local/include 
$ ln -s ../opt/openssl/include/openssl . 

Đã xong! Thưởng thức

+2

Đây phải là câu trả lời! : D –

+2

Câu trả lời được chấp nhận đã lỗi thời. –

18

Nếu bạn đang sử dụng Mac OS X El Capitan, Apple không bao gồm openssl nữa vì vấn đề bảo mật openssl có, tôi có vấn đề tương tự khi cài đặt Hành khách. brew chỉ cài đặt openssl mà không có tiêu đề phát triển.

Nếu bạn đang sử dụng phiên bản Mac OS X cũ hơn El Capitan, bạn có thể sử dụng: xcode-select --install cài đặt tiêu đề phát triển mở rộng.

EDIT:

Đang cập nhật brew và cài đặt openssl và lực lượng liên kết openssl lên phiên bản brew giải quyết vấn đề của tôi:

$ brew update 
$ which openssl 
/usr/bin/openssl 
$ brew install openssl 
$ brew link openssl --force 
$ which openssl 
/usr/local/bin/openssl 
+1

Tôi đã thử gỡ cài đặt bằng homebrew rồi cài đặt lại để các điểm cuối vào/usr/local/bin/openssl. Nhưng tôi vẫn có các tiêu đề phát triển được đánh dấu là mất tích. Bất cứ một đề nghị nào khác? –

+1

liên kết brew openssl --force đã giải quyết được sự cố của tôi quá – Kirk

+1

Nếu liên kết brew openssl --force không hoạt động nữa, hãy thử liên kết này. https://solitum.net/openssl-os-x-el-capitan-and-brew/ Làm việc cho tôi. – Nic128

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