![通知 apt 我已经从源代码构建了现有软件包的较新版本](https://linux22.com/image/1065792/%E9%80%9A%E7%9F%A5%20apt%20%E6%88%91%E5%B7%B2%E7%BB%8F%E4%BB%8E%E6%BA%90%E4%BB%A3%E7%A0%81%E6%9E%84%E5%BB%BA%E4%BA%86%E7%8E%B0%E6%9C%89%E8%BD%AF%E4%BB%B6%E5%8C%85%E7%9A%84%E8%BE%83%E6%96%B0%E7%89%88%E6%9C%AC.png)
我已经从源代码正确安装了 PointCloud 库的更新版本 (libpcl1.9.1),但在使用此库构建其他内容时,我无法在 CMakeLists 中正确找出链接。我需要版本 >=1.8,但 Ubuntu 16.04只有 1.7.2。
我想从 apt 中卸载默认版本 (libpcl1.7),以便只使用更新版本 (libpcl1.9),这样就不会出现链接 .so 库的问题。这无法完成,因为这会sudo apt-get remove libpcl1.7
导致删除我需要的其他软件包,而这些软件包当然依赖于Alibpcl 版本但不一定这我正在卸载的版本(我现在也安装了 1.9)。
因此,我想以某种方式让 apt 知道我有一个替代方案,类似于 update-alternatives 对可执行文件所做的操作,但针对的是库。我不能使用这程序,因为问题涉及其他已安装的 apt 包->多个符号链接需要同时更改以保持一致性。
我发现的唯一另一件事是向后移植,这似乎是一个漫长的过程,我想知道是否没有其他(更简单的)替代方案。
我并不反对保留旧版本,我只是需要一种方法让系统知道它们是替代品。