我的应用程序使用了一些共享库,我需要将它们与二进制文件一起打包,并按照 Debian 政策规则
建议将不需要用户手动调用但对于包运行必不可少的支持文件和运行时支持程序(如果它们是二进制文件)放在 的子目录中,
/usr/lib
最好放在 下/usr/lib/package-name
。
因此,我将共享库(例如)放在目录libabc.so
中/usr/lib/myapp/
。创建 Debian 包后,二进制文件无法加载,因为/usr/lib/myapp/
加载程序不会搜索该目录。他们不建议使用RPATH
在二进制中。
那么我应该在 Debian 软件包中做哪些更改?postinst
文件或其他任何东西来使其工作。
答案1
不,你的共享库应该被安装:
- 直接
/usr/lib
- 或
/usr/lib/<package-name>
使用快捷方式/usr/lib
该手册的意思是:
- 通过
supporting files
像插件和模块(二进制形式)这样的方式,您的程序会自行扫描它们。它们可以是共享库.so
或任何其他格式,甚至是自定义格式。 - 由
run-time support programs
程序使用的可执行程序,但对于用户直接运行它们没有用,因此该说明建议避免将它们安装到/usr/bin
文本格式的支持文件(至少不是生成的二进制文件)更方便安装/usr/share/<package-name>
我建议您快速浏览一下其他软件包中的示例。
tree /usr/lib/libreoffice/
tree /usr/lib/gimp/