¿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...
- Descargue e instale un nuevo Qt desde aquí .
- Edite
~/Qt5.5.1/5.5/clang_64/mkspecs/features/mac/default_pre.prf
.- Alrededor de la línea 15, busque y reemplace -
-find xcrun 2
con - encuentre-find xcodebuild 2
.- 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
.
De acuerdo con https://github.com/thoughtbot/capybara-webkit/issues/885 , QT dejó de trabajar con webkit en la versión 5.6. Sin embargo, hay una preparación qt55
disponible, así que usa qt55
(en lugar de qt5
) en las respuestas anteriores.
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.