如何防止自制程序升级PCL的VTK依赖?

时间:2013-10-29 16:55:12

标签: macos homebrew vtk point-cloud-library

我想通过自制软件安装pcl公式,此处记录在案: http://www.pointclouds.org/documentation/tutorials/installing_homebrew.php

不幸的是,自制软件决定它需要将我的VTK安装升级到最新版本(6.0),即使我已经安装了完美的工作版本(5.10.1)。我想编译并链接这个现有版本。 (VTK的最小pcl版本列为5.6.1,因此一切都应该正常工作。我实际上是手动构建pcl并尝试将其与VTK 6.0相关联甚至工作,但是。)

因此,我的问题是,为什么自制软件尝试升级VTK(转换为不兼容的版本),如何阻止它这样做?

我所说的只是:brew install pcl,它触发了这个:

==> Installing pcl dependency: vtk
==> Downloading http://www.vtk.org/files/release/6.0/vtk-6.0.0.tar.gz
Already downloaded: /Library/Caches/Homebrew/vtk-6.0.0.tar.gz

这最终会导致错误,因为vtk 6.0无法在Mac OS X 10.9下通过自制程序(https://github.com/Homebrew/homebrew-science/issues/401)进行编译。

要明确的是,即使VTK 6.0编译正常,我也不想升级,所以有谁知道如何防止自制软件升级依赖公式?

3 个答案:

答案 0 :(得分:2)

你可以欺骗Homebrew认为它安装了Vtk 6.0。为此,您必须在终端

中运行此命令

ln -s /usr/local/Cellar/vtk/5.10.1 /usr/local/Cellar/vtk/6.0.0

到了真正想要更新vtk的时候,只需用

删除该符号链接即可

rm /usr/local/Cellar/vtk/6.0.0

让Homebrew完成它的工作。

答案 1 :(得分:1)

只是降级到以前的版本。

1) cd /usr/local/Library/Taps/homebrew-science/
2) brew versions vtk
3) git checkout 27a4327 vtk.rb
4) brew uninstall vtk && brew install vtk

答案 2 :(得分:1)

Homebrew现在实际上分别有一个vtk5的公式,所以这应该是正确的安装方式(目前它是5.10.1)。

brew install vtk5 --with-qt

您还需要eigen, flann, qhullboost。也很有用,但如果您需要文档,可选择通过sphinx获取pip install sphinx。如果你想构建模拟(见下面的选项),那么你也需要获得glew(虽然它找不到标题)。

我可以验证这是否适用于10.8并且今晚将检查10.9。我在存档中安装1.7.1时遇到了问题,但克隆github存储库对我有用。

$ git clone https://github.com/PointCloudLibrary/pcl pcl-trunk

$ cd pcl_trunk

$ mkdir build; cd build

$ cmake .. -DBUILD_global_tests=ON -DBUILD_examples=ON -DBUILD_simulations=ON

$ ./configure; make; make install

如果没有VTK,您可以在PCL安装失败之前达到几个百分点。使用X11安装VTK似乎是一个灾难的处方,我不得不手动安装libX11,libXt和其他人,因为VTK试图包含不正确的标头。 OpenGL的问题仍在继续,我无法编译超过42%。我重新安装了没有--with-x11的vtk5,并且完全编译了。

Homebrew有一个PCL公式,但它很少更新,我没有太多运气编辑它(不熟悉Brew的语法)。我尝试更新它并提交拉取请求,但是当测试实际的“稳定”构建时,此时失败,所以没有意义。

编辑:要明确的是,由于Eigen的一些问题(在编译pcl_search时大约12%),安装1.7.1 tarball失败了。

建议的拉取请求,此刻只是HEAD修复。 https://github.com/ros/homebrew-hydro/pull/7