从man apt-mark

从man apt-mark

按照以下 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-4libeigen3-dev。这称为依赖性。但是,Ubuntu 16.04 可能使用同一文件的不同版本,可能不适用于pcl

告诉holdUbuntu 不要更新libeigen3-dev你专门为 安装的pcl v1.8。运行以下命令后:

sudo apt-mark hold libeigen3-dev

Ubuntu 会记住不要更新这个特定的文件。

如果您使用该选项,那么适用于的unhold特殊版本将被不适用于的版本替换。libeigen3-devpcl v1.8pcl v.1.8

请注意,正如安装指南所暗示的,该问题已在较新版本和 Ubnutu 17.10 中得到解决,因为这些版本不需要命令pcl v1.8.1apt-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并安装它。

希望这可以帮助

相关内容