我编写了一个软件(一个.deb
包),它附带一个动态库(foo.so
),但该动态库仅对我的软件有用。
我应该把库放在哪里以及如何加载它?
我认为那/usr/lib
不是一个好地方,因为没有其他软件会使用该库。例如,它应该驻留在/usr/lib/mypackage/foo.so
(那是我首选的位置)吗?如果是,动态链接器将如何找到该库?由于它仅适用于我的软件,因此/etc/ld.so.conf.d/
(对所有其他软件都可见)中的条目不是首选。(我使用 Lua ffi 来加载库,所以我认为我可以调整加载路径。)或者我应该使用LD_LIBRARY_PATH
?
答案1
- 如果他们只有几个库而不用担心命名冲突那么就避免创建父文件夹来对它们进行分组。
- 此外,需要将其放入多架构系统的正确文件夹中。
文件示例debian/packagename.install
:
usr/lib/lib*.so /usr/lib/${DEB_HOST_MULTIARCH}
usr/lib/lib*.so.* /usr/lib/${DEB_HOST_MULTIARCH}