qt homebrew qtwebkit capybara-webkit

¿Puedo usar qt5 de homebrew con capybara-webkit?



qtwebkit (4)

Quiero usar QtWebKit de qt5 con 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

Si fuerzo a brew a crear los enlaces simbólicos para qt5 puedo construir la extensión nativa para 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

.. pero webkit_server bloquea con fuerza ..

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

Ver el informe completo de osx crash .

Intenté instalar capybara-webkit con LDFLAGS y CPPFLAGS pero webkit_server todavía falla.

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


NOTA: Estoy aquí ... esta respuesta funcionó para El Cap y Yosemite, pero ya no es relevante a partir de MacOS Sierra. En su lugar, siga las instrucciones de Thoughtbot . Para resumir...

  1. Descargue e instale un nuevo Qt desde aquí .
  2. Edite ~/Qt5.5.1/5.5/clang_64/mkspecs/features/mac/default_pre.prf .
  3. Alrededor de la línea 15, busque y reemplace - -find xcrun 2 con - encuentre -find xcodebuild 2 .
  4. Guarde y ejecute PATH=~/Qt5.5.1/5.5/clang_64/bin:$PATH gem install capybara-webkit

Ahora volvamos a nuestra respuesta programada regularmente ...

Conseguí esto para trabajar en OSX Yosemite. La razón para construir contra Qt5 fue obtener algunas correcciones no en Qt4 que impidieron que capybara-webkit usara recursos de fuente y hojas de estilo en algunas circunstancias.

Comenta las gemas de capybara y capybara-webkit de tu gemfile. Entonces:

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

Desde un entorno limpio (reinicia tu terminal):

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

Descomente capybara y capybara-webkit en el archivo gem y luego:

bundle install

Nota : puede ignorar de forma segura las advertencias de "desvío de cerveza" emitidas por el brew doctor .



Dos años después, los mismos pasos de mi pregunta ahora funcionan. Gracias, quien lo arregló.

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

Después de instalar qt5, ya no veo este mensaje de mi suite de prueba:

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

Desinstalar la gema de capybara no es necesario (como sugieren otras respuestas) porque no tiene extensiones nativas, por lo tanto no hay dependencia directa en QT.


Le sugiero que brew update , brew remove qt5 y brew install qt5 , porque encuentro en mi sistema que:

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)

Entonces Qt5 hace un enlace contra QtWebKit y el enlace es válido en mi sistema en contraste con el tuyo. Por lo tanto, la sugerencia de reinstalar. Si Homebrew instala la botella precompilada y aún tiene este problema, informe sobre el rastreador de problemas de Homebrew en github. Instalé la mía desde la fuente.

Sin embargo, supongo que un problema en sentido ascendente (uno de menor importancia) es que el enlace apunta a src que probablemente debería ser lib . Pero eso es hasta Qt para arreglarlo.