Подтвердить что ты не робот

Можно ли использовать 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'
4b9b3361

Ответ 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 для исправления.