重新打包专有 deb 包的推荐方法,其中包括旧的系统库

重新打包专有 deb 包的推荐方法,其中包括旧的系统库

介绍

长话短说,在几个项目中我使用了一些立体摄像头。不幸的是,制造商提供了软件包(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,我会非常高兴。

相关内容