创建包时出现“io:postinst-must-call-ldconfig”

创建包时出现“io:postinst-must-call-ldconfig”

我正在尝试为(非常棒)创建一个 ubuntu .deb 包Io 语言。我不是该语言的开发者,所以我不熟悉它的源代码还没有。这是我第一次尝试创建 .deb 文件。

为了创建 .deb,我遵循以下说明:

http://www.webupd8.org/2010/01/how-to-create-deb-package-ubuntu-debian.html

到目前为止,我已经能够创建一个 .deb 文件 (io_2010.06.01-1_amd64.deb) 和一个变更文件 (io_201.06.01-1_amd64.changes)。我正在使用 lintian 检查变更文件,它报告了一个我不知道如何解决的问题:

$ lintian -Ivi io_2010.06.01-1_amd64.changes

... (lots of messages)

I: io: no-symbols-control-file usr/lib/libiovmall.so
I: io: no-symbols-control-file usr/lib/libgarbagecollector.so
I: io: no-symbols-control-file usr/lib/libbasekit.so
E: io: postinst-must-call-ldconfig usr/lib/libiovmall.so
N: 
N:    The package installs shared libraries in a directory controlled by the
N:    dynamic library loader. Therefore, the package must call "ldconfig" in
N:    its postinst script.
N:    
N:    Refer to Debian Policy Manual section 8.1.1 (ldconfig) for details.
N:    
N:    Severity: serious, Certainty: certain
N: 
N: Removing /tmp/OYuNShEHYz ...

我读过debian 手册 8.8 部分。我想我明白问题是什么(我需要确保 ldconfig 在“某处”被调用,可能是在名为“posinst”的地方),但我不知道如何解决它(即这个“posinsts”文件在哪里以及我应该如何更改它)。

目前在 Ubuntu 中安装 Io 的方式基本上是运行sudo make install然后sudo ldconfig。也许应该修改 makefile 以便从中调用 ldconfig?我不知道。

多谢。

答案1

postinst是一个维护者脚本,你可以将其添加到debian。大多数直接软件包不需要维护者创建此文件。Debhelper 会在二进制软件包中自动为您创建它。请参阅新维护者指南Debian 政策手册关于维护者脚本的部分。

相关内容