介绍
长话短说,在几个项目中我使用了一些立体摄像头。不幸的是,制造商提供了软件包(rpm 和德布)对于格式不完全正确的用户空间驱动程序(缺少依赖项、其他控制信息等)更糟糕的是,它应该在特定的 Linux 发行版本(Ubuntu 12.04/Ubuntu 14.04)上运行,但它捆绑了过时的库即:
libturbojpeg.so
libusb-1.0.so.0.1.0
另一件事是,原始驱动程序安装在/opt/manufacturer/proprietary_driver/{bin, lib, etc}
.
因此,为了我的项目的合理分发、构建和运行,我决定重新打包这个官方制造商的混乱。直率的解决方案就是让所有库保持原样,填充所需的控制信息并添加一些内容,/etc/ld.so.conf.d/proprietary_driver.so.conf
如下所示:
/opt/制造商/proprietary_driver/lib
问题
一切似乎都很顺利,但每次这样做apt-get upgrade
我都会得到这个:
/sbin/ldconfig.real: /opt/manufacturer/proprietary_driver/lib/libusb-1.0.so.0 不是符号链接
另外,读书的时候Debian 维护者指南我意识到把东西放进去/opt
根本不合规。更不用说LD_LIBRARY_PATH
仅某些特定驱动程序所需的库的污染。
这么说来,我肯定做错了什么。
问题
是否有其他推荐的或/和更好的方法来处理包含旧版本的各种系统库的专有二进制 Debian 软件包?如果建议的解决方案可用于将有问题的软件包至少上游到 Debian 和 Ubuntu,我会非常高兴。