2013-06-12 17 views
17

Tôi muốn sử dụng qt5's QtWebKit với capybara-webkit.Tôi có thể sử dụng qt5 của homebrew với capybara-webkit không?

brew uninstall qt 
Uninstalling /usr/local/Cellar/qt/4.8.4... 
brew install qt5 
This formula is keg-only: so it was not symlinked into /usr/local. 
    /usr/local/Cellar/qt5/5.0.2: 3103 files, 140M, built in 60.9 minutes 

Nếu tôi buộc brew để tạo ra các liên kết tượng trưng cho qt5 tôi có thể xây dựng phần mở rộng tự nhiên cho capybara-webkit ..

brew link --force qt5 
Linking /usr/local/Cellar/qt5/5.0.2... 122 symlinks created 
gem install capybara-webkit -v '1.0.0' 
Successfully installed capybara-webkit-1.0.0 

.. nhưng webkit_server treo cứng ..

bundle exec rake test:integration 
Errno::EADDRNOTAVAIL: Can't assign requested address - connect(2) 
dyld: Library not loaded: /private/tmp/qt5-KytU/qt-everywhere-opensource-src-5.0.2/qtwebkit/lib/QtWebKit.framework/Versions/5/QtWebKit 
    Referenced from: /usr/local/opt/qt5/lib/QtWebKitWidgets.framework/Versions/5/QtWebKitWidgets 
    Reason: image not found 

Xem full osx crash report.

Tôi đã thử cài đặt capybara-webkit với LDFLAGSCPPFLAGS nhưng webkit_server vẫn treo cứng.

env LDFLAGS=-L/usr/local/opt/qt5/lib \ 
    CPPFLAGS=-I/usr/local/opt/qt5/include \ 
    gem install capybara-webkit -v '1.0.0' 
+0

Cuối cùng bạn đã giải quyết được vấn đề này chưa? – dgilperez

+0

Không, tôi đã từ bỏ và tiếp tục sử dụng qt4. Tôi không thực sự cần bất kỳ tính năng nào của qt5. –

Trả lời

7

Hai năm sau, các bước tương tự từ câu hỏi của tôi hiện hoạt động. Cảm ơn, bất cứ ai cố định nó.

gem uninstall --all capybara-webkit 
brew remove qt 
brew install qt5 
brew linkapps qt5 # optional? 
brew link --force qt5 
gem install capybara-webkit 

Sau khi cài đặt qt5, tôi không còn thấy thông báo này từ bộ kiểm tra của tôi:

WARNING: The next major version of capybara-webkit will require at least version 5.0 of Qt. 

Gỡ cài đặt capybara đá quý là không cần thiết (như câu trả lời khác đề nghị) vì nó không có phần mở rộng tự nhiên, do đó không phụ thuộc trực tiếp vào QT.

+0

Tôi có thể xác nhận 'brew linkapps qt5' là không cần thiết – Sid

0

Tôi đề nghị để brew update, brew remove qt5brew install qt5, bởi vì tôi tìm thấy trên hệ thống của tôi, rằng:

xcrun otool -L /usr/local/Cellar/qt5/5.0.2/lib/QtWebKitWidgets.framework/Versions/5/QtWebKitWidgets 
[snip] 
/usr/local/Cellar/qt5/5.0.2/src/qtwebkit/lib/QtWebKit.framework/Versions/5/QtWebKit (compatibility version 5.0.0, current version 5.0.2) 

Vì vậy Qt5 không liên kết chống lại QtWebKit và liên kết có giá trị trên hệ thống của tôi trái ngược với bạn . Do đó đề xuất cần cài đặt lại. Nếu homebrew cài đặt các chai dựng sẵn và vẫn có vấn đề này, xin vui lòng báo cáo về theo dõi vấn đề Homebrew trên github. Tôi đã cài đặt của tôi từ nguồn.

Tuy nhiên, tôi đoán một vấn đề ngược dòng (một vấn đề nhỏ) là liên kết trỏ vào src nên có lẽ là lib. Nhưng đó là lên đến Qt để sửa chữa.

+1

Cảm ơn, tôi sẽ thử cài đặt lại và xem liệu đầu ra 'otool' có thay đổi không. Tôi chưa có thời gian. qt mất 10 năm để biên dịch .. –

+0

@JaredBeck - đọc sách này vào năm 2015 và điều đó vẫn đúng. Ngoài ra bình luận của bạn làm tôi cười. – flanger001

+0

@ flanger001 yeah nó chỉ được hai năm, vẫn còn tám năm biên dịch để đi;) –

27

NOTE: IAmNaN here... this answer worked find for El Cap and Yosemite but it is no longer relevant as of MacOS Sierra. Instead follow the instructions from Thoughtbot . To summarize...

  1. Download and install a new Qt from here .
  2. Edit ~/Qt5.5.1/5.5/clang_64/mkspecs/features/mac/default_pre.prf .
  3. Around line 15 find and replace -find xcrun 2 with -find xcodebuild 2 .
  4. Save and run PATH=~/Qt5.5.1/5.5/clang_64/bin:$PATH gem install capybara-webkit

Now back to our regularly scheduled answer....

Tôi đã làm việc này trên OSX Yosemite. Lý do xây dựng dựa trên Qt5 là để có được một số bản sửa lỗi không phải trong Qt4 đã ngăn chặn capybara-webkit sử dụng phông chữ và tài sản định kiểu trong một số trường hợp.

Nhận xét các đá quý capybara và capybara-webkit từ gemfile của bạn. Sau đó:

bundle 
gem uninstall capybara-webkit 
gem uninstall capybara # if it complains about dependencies 'gem uninstall' them first 
brew remove qt 
brew remove qt5 # if you've been playing around 

Từ một môi trường sạch (khởi động lại thiết bị đầu cuối của bạn):

brew tap homebrew/versions 
brew install qt55 
brew linkapps qt55 
brew link --force qt55 

Capybara Bỏ ghi chú và Capybara-webkit trong gemfile và sau đó:

bundle install 

Note: Bạn có thể bỏ qua cảnh báo "hủy liên kết bia" một cách an toàn do brew doctor phát hành.

+1

Trên 'brew link - force qt5' Tôi đã nhận" Lỗi: Không thể symlink lib/cmake/Qt5 /usr/local/lib/cmake không thể ghi được. " Vì vậy, tôi "sudo chown [người dùng của tôi]/usr/local/lib/cmake" –– 'brew link --force qt5' đã hoạt động, nhóm đã hoạt động và tôi đặt lại quyền sở hữu trên thư mục đó –

+4

Xin lưu ý rằng (như đã nêu trong quan chức hướng dẫn cài đặt capybara-webkit tại đây: https://github.com/thought/mapybara-webkit/wiki/Installing-Qt-and-compiling-capybara-webkit) ** qt5 sẽ không bao gồm QtWebKit bắt đầu từ phiên bản 5.6 ** và do đó ** qt 5.5 là phiên bản cuối cùng được hỗ trợ ** bởi đá quý. Điều này có nghĩa là bạn nên thay thế 'qt5' bằng' qt55' cho mỗi lệnh cài đặt/liên kết ở trên. – Dschee

+0

Tôi đã cập nhật câu trả lời. Cảm ơn bạn đã giúp duy trì câu trả lời này sau ba năm @Dschee. – IAmNaN

4

Theo https://github.com/thoughtbot/capybara-webkit/issues/885, QT đã ngừng hoạt động với webkit tại phiên bản 5.6. Tuy nhiên, có một loại bia có sẵn qt55, vì vậy hãy sử dụng qt55 (thay vì qt5) trong các câu trả lời ở trên.

+0

Không áp dụng cho câu hỏi của tôi từ năm 2013, nhưng vẫn hữu ích. Tôi không biết về gói 'qt55', cảm ơn! –

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