19

我想将 qt5QtWebKitcapybara-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 ,LDFLAGSCPPFLAGS仍然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'
4

4 回答 4

28

注意:这里的 IAmNaN ......这个答案适用于 El Cap 和 Yosemite,但它与 MacOS Sierra 不再相关。而是按照Thoughtbot的说明进行操作。总结...

  1. 从这里下载并安装一个新的Qt
  2. 编辑~/Qt5.5.1/5.5/clang_64/mkspecs/features/mac/default_pre.prf.
  3. 在第 15 行附近查找并替换-find xcrun 2-find xcodebuild 2.
  4. 保存并运行PATH=~/Qt5.5.1/5.5/clang_64/bin:$PATH gem install capybara-webkit

现在回到我们定期安排的答案......

我让它在 OSX Yosemite 上工作。针对 Qt5 构建的原因是为了获得一些 Qt4 中没有的修复,这些修复阻止了 capybara-webkit 在某些情况下使用字体和样式表资产。

从 gemfile 中注释掉 capybara 和 capybara-webkit gem。然后:

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

在 gemfile 中取消注释 capybara 和 capybara-webkit 然后:

bundle install

注意:您可以放心地忽略brew doctor.

于 2015-02-13T21:42:12.787 回答
7

两年后,我的问题中的相同步骤现在起作用了。谢谢,谁修过。

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不需要卸载gem(正如其他答案所暗示的那样),因为它没有本机扩展,因此不直接依赖于 QT。

于 2015-10-29T02:46:44.870 回答
4

根据https://github.com/thoughtbot/capybara-webkit/issues/885,QT 在 5.6 版停止使用 webkit。但是,有一个qt55brew 可用,所以在上面的答案中使用qt55(而不是qt5)。

于 2016-04-19T21:08:56.800 回答
0

我建议和brew update,因为我在我的系统上发现:brew remove qt5brew 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 上报告 Homebrew 的问题跟踪器。我从源代码安装了我的。

但是,我猜上游的一个问题(一个小问题)是链接指向src的应该可能是lib. 但这取决于 Qt 来解决。

于 2013-06-13T14:58:32.750 回答