按照以下 pcl 安装说明进行操作:
如何在 Ubuntu 16.04.2 [LTS] 上为 C++ 安装点云库 v1.8 (pcl-1.8.0)?
为什么之后:
sudo apt-mark hold libeigen3-dev
没有吗
sudo apt-mark unhold libeigen3-dev
答案1
从man apt-mark
防止软件包发生变更
抓住
hold is used to mark a package as held back, which will prevent the package from being automatically installed, upgraded or removed.
取消保持
unhold is used to cancel a previously set hold on a package to allow all actions again.
因此, pcl v1.8
您尝试安装的应用程序可能需要特定版本3.2.5-4
的libeigen3-dev
。这称为依赖性。但是,Ubuntu 16.04 可能使用同一文件的不同版本,可能不适用于pcl
。
告诉hold
Ubuntu 不要更新libeigen3-dev
你专门为 安装的pcl v1.8
。运行以下命令后:
sudo apt-mark hold libeigen3-dev
Ubuntu 会记住不要更新这个特定的文件。
如果您使用该选项,那么适用于的unhold
特殊版本将被不适用于的版本替换。libeigen3-dev
pcl v1.8
pcl v.1.8
请注意,正如安装指南所暗示的,该问题已在较新版本和 Ubnutu 17.10 中得到解决,因为这些版本不需要命令pcl v1.8.1
。apt-mark hold
目前 Ubuntu 16.04 版本中的 3.3.4-4 版本可能libeigen3-dev
也没有这个问题,如果是这样的话,你可以使用apt-mark unhold
让 Ubuntu 更新这个文件。
如果pcl
中断,则重复以下 4 行指令,包括apt-mark hold
:
cd ~/Downloads
wget http://launchpadlibrarian.net/209530212/libeigen3-dev_3.2.5-4_all.deb
sudo dpkg -i libeigen3-dev_3.2.5-4_all.deb
sudo apt-mark hold libeigen3-dev
这将pcl
再次下载兼容版本的libeigen3-dev并安装它。
希望这可以帮助