Можно ли использовать homebrew qt5 с capybara-webkit?
Я хочу использовать qt5 QtWebKit
с capybara-webkit
.
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
Если я заставляю brew создавать символические ссылки для qt5, я могу построить собственное расширение для 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
.. но webkit_server
сильно сработает..
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
См. полный отчет о сбоях osx.
Я попытался установить capybara-webkit с LDFLAGS
и CPPFLAGS
, но webkit_server
все еще сильно сработает.
env LDFLAGS=-L/usr/local/opt/qt5/lib \
CPPFLAGS=-I/usr/local/opt/qt5/include \
gem install capybara-webkit -v '1.0.0'
Ответы
Ответ 1
Два года спустя те же шаги, что и мой вопрос, теперь работают. Спасибо, кто бы ни исправил это.
gem uninstall --all capybara-webkit
brew remove qt
brew install qt5
brew linkapps qt5 # optional?
brew link --force qt5
gem install capybara-webkit
После установки qt5 я больше не вижу это сообщение из своего тестового набора:
WARNING: The next major version of capybara-webkit will require at least version 5.0 of Qt.
Удаление драгоценного камня capybara
не обязательно (как указывают другие ответы), поскольку у него нет собственных расширений, поэтому нет прямой зависимости от QT.
Ответ 2
ПРИМЕЧАНИЕ: IAmNaN здесь... этот ответ сработал для El Cap и Yosemite, но он больше не имеет отношения к MacOS Sierra. Вместо этого следуйте инструкциям Thoughtbot. Подводя итог...
- Загрузите и установите новый Qt отсюда.
- Изменить
~/Qt5.5.1/5.5/clang_64/mkspecs/features/mac/default_pre.prf
. - Вокруг строки 15 найдите и замените
-find xcrun 2
на -find xcodebuild 2
. - Сохраните и запустите
PATH=~/Qt5.5.1/5.5/clang_64/bin:$PATH gem install capybara-webkit
Теперь вернемся к нашему регулярному расписанию....
Я получил это, чтобы работать на OSX Yosemite. Причина для создания против Qt5 заключалась в том, чтобы получить некоторые исправления не в Qt4, которые в некоторых случаях не позволяли capybara-webkit использовать атрибуты font и stylesheet.
Прокомментируйте камни capybara и capybara-webkit из вашего gemfile. Тогда:
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
Из чистой среды (перезапустите терминал):
brew tap homebrew/versions
brew install qt55
brew linkapps qt55
brew link --force qt55
Раскомментируйте capybara и capybara-webkit в gemfile, а затем:
bundle install
Примечание. Вы можете спокойно игнорировать предупреждения brew unlink ", выпущенные brew doctor
.
Ответ 3
Согласно https://github.com/thoughtbot/capybara-webkit/issues/885, QT перестала работать с webkit в версии 5.6. Тем не менее, существует qt55
brew, поэтому используйте qt55
(вместо qt5
) в приведенных выше ответах.
Ответ 4
Я предлагаю brew update
, brew remove qt5
и brew install qt5
, потому что я нахожу в своей системе, что:
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)
Итак, Qt5 ссылается на QtWebKit, и ссылка действительна в моей системе, в отличие от вашей.
Поэтому предложение переустановить. Если homebrew устанавливает заранее приготовленную бутылку и все еще имеет эту проблему, сообщите об этом на сайте github. Я установил шахту из источника.
Однако, по-моему, проблема с восходящим потоком (младшая) заключается в том, что ссылка указывает на src
, которая должна, вероятно, lib
. Но это зависит от Qt для исправления.