- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 dpkg-buildpackage 创建我的 Qt 应用程序的 .deb 包。我编译了第三方 (snmp) 以在我的应用程序中使用。它运行成功。但是在生成 .deb 应用程序时出现错误:
dpkg-shlibdeps: 错误: 没有找到/usr/local/lib/libnetsnmp.so.30 的依赖信息
我一直在这个链接中寻找解决方案:
dpkg-shlibdeps: error: no dependency information found for
其他页面也有,但是没找到解决办法。
我尝试编辑/etc/ld.so.conf 以添加 libnetsnmp.so.30 路径,但没有成功。
我刚刚在运行命令时意识到:
ldconfig -p | grep libnetsnmp.so.30
我在 ldconfig 中有两个 libnetsnmp.so.30 库,而且它们彼此不同。
libnetsnmp.so.30 (libc6,x86-64) => /usr/local/lib/libnetsnmp.so.30
libnetsnmp.so.30 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libnetsnmp.so.30
我也试过只提供其中一个。但它没有用。
有没有办法生成带或不带这个库的 .deb 包?
观察:我不打算将 /usr/bin/dpkg-shlibdeps 编辑为 $ignore_missing_info = 1 作为解决方法。
谢谢
最佳答案
dpkg-shlibdeps
是一个旨在通过动态链接找出新包所依赖的所有包的工具。它通过检查所有新二进制文件以查看它们链接到哪些库以及使用了这些库中的哪些符号来实现此目的,然后检查 dpkg 数据库以查看哪些包拥有这些库并找到提供所需的最低包版本必要的符号。
在您的情况下,它会看到您的应用程序链接到那个 libnetsnmp.so.30
,因此它会检查哪个包拥有该库。糟糕,没有包裹。这就是错误的来源——也许您已经知道所有这些,但我想我会把它包含在上下文中。
现在,正确的解决方案取决于您希望如何处理自定义编译的 snmp 库。基本上选择是 (a) 将您的自定义 libnetsnmp 与您的包一起运送,(b) 单独打包您的自定义 libnetsnmp,或 (c) 根本不使用自定义 libnetsnmp;使用操作系统提供的任何 libsnmp*
包。
(a):要将 libnetsnmp 与您的包一起发送,您需要小心确保它不提供与标准 libsnmp 包相同的 SONAME
,因此它们不会干扰彼此。最简单的方法可能就是静态链接它(链接到 .a
或 .o
文件而不是 .so
动态库)。如果您的软件包适用于 Debian 或 Ubuntu 本身,这可能会让人不悦,但如果您证明选择 (b) 和 (c) 对您不可行,那可能没问题。
(b):正确打包库是一个相当深入的话题; StackOverflow 的答案太多了。但是文档在那里。根据您的 libnetsnmp 从上游版本更改了多少,您可能想要更改库的名称(和 SONAME
)以避免任何混淆。如果您的 libnetsnmp 只是 Debian sid 或 Ubuntu 中较新的 libsnmp 软件包的反向移植,那么正确的做法可能是在您的 PPA 中发送“官方”libsnmp30
deb 的拷贝或安排 libsnmp30
将在 -backports 存储库中发布。然后你只需要在 libsnmp-dev (>= whatever)
上添加一个 Build-Depends:
到你的包,并根据它构建(而不是手动安装.so 文件在 /usr/local
).
(c):如果您实际上不需要对 snmp 进行自定义编译,并且您的操作系统/发行版中可用的版本足够好,那么只需 Build-Depends:
就可以了, 并删除/usr/local
中手动安装的.so文件。
关于c++ - dpkg-shlibdeps : error: no dependecy information found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27233995/
Win32 的 Delphi XE5 编译器具有新的调试信息设置:有限调试信息。 有限调试信息和调试信息有什么区别? 最佳答案 某些编译器提供调试标志的变体,可提供不同级别的调试信息和优化。根据编译和
我有一个 highcharts 散点图,我想添加一些自定义功能。对于每次单击 highcharts 中的项目(单击过滤器、数据点和关闭按钮),我想将有关单击的项目的信息发送到我在下面包含的函数“s”。
我们在 Java 应用程序中更新了安全证书,突然我们开始收到下面提到的异常: java.lang.SecurityException: class "org.hibernate.cfg.Configu
我正在使用 HttpURLConnection 实例来连接到 URL。 然后我调用 getResponseCode 方法以确定连接状态。 我正在使用此方法轮询连接,直到返回的响应代码不是 1xx: H
我很难调试 ASP.NET MVC 代码。我最终按照本 website 中的描述进行操作.调试符号已加载并适用于所有 dll,但 System.Web.MVC。当我双击 stacktrace 窗口中的
好吧,我在很多应用程序上都发现了这个文本,那就是当我安装一些应用程序时需要android.permission.READ_LOGS 权限,它们显示一些文本,例如“读取敏感日志数据的权限...”我不明白
我有一个在浏览器中运行并从 Javascript 调用的小程序。有 2 个类:PortalLauncher 和 ParamSplitter,它们位于默认包中。 Javascript 调用 Portal
我在 eclipse 中使用 OSGi 项目运行 JUnit 测试,我遇到了这个异常: java.lang.SecurityException: class "org.eclipse.core.run
我正在开发一个给 PDF 加水印的小工具,它适用于某些 PDF,但对某些其他 PDF 会崩溃。 我正在使用 iText 库和 bouncycaSTLe(依赖项) pom.xml:
很抱歉,我不知道这是否是属于mathoverflow的数学问题,还是属于这里的计算机科学问题。 就是说,我相信我理解基本的difference between data, information, a
在什么情况下“反文档频率”在信息检索中不起作用? 最佳答案 如果您不希望在系统中权衡稀有术语而不是频繁出现的术语,则可能不希望使用IDF。此外,计算idf是一项昂贵的操作。从以下事实可以明显看出这一点
我正在尝试计算 Average Precision (和 Mean Average Precision )在 Oxford Building image dataset 上. 下面是他们提供的用于计算
信息隐藏如何帮助解耦构成系统的模块? 最佳答案 封装(信息隐藏)允许您只向外界公开绝对最小值。这意味着您可以在不影响客户的情况下将未公开的位更改为您心中的内容。 一个例子。假设您已经实现了一个将字符串
想象一下,在接下来的 10 年里,你拥有世界上所有的 super 计算机。你的任务是尽可能无损地压缩 10 部完整的电影。另一个标准是普通计算机应该能够即时解压缩,并且不需要花费太多的 HD 来安装解
我生活在一个每年更改两次时间的国家。即:一年中有一段时期与 UTC 的偏移量为 -3 小时(-180 分钟),其他时期的偏移量为 -4 小时(-240 分钟) 从图形上看: |-----
在哪里可以找到有关 DrRacket 中 #:when 构造的文档? 这是完整的示例: (define (problem_9 sum) (for*/first ([c (in-range 3 (-
有人知道在网站上查找最相关的联系信息的脚本/食谱/库吗? 一些可能的情况: 在个人网页上查找联系电话号码 在博客上查找所有者电子邮件地址 查找联系页面的网址 最佳答案 查看WSO2's Mashup
你们如何管理信息溢出?你们都用什么工具?有用的工具之一是 RSS 提要阅读器。是否有任何机构使用任何其他工具或任何其他方式来有效管理信息? 最佳答案 做一个信息势利小人。 如果该博客没有绝对震撼您的世
我最近根据 Artima Inside the JVM 2-nd Ed 阅读了有关 JVM 规范的内容。其中一章提到了 Java 运行时中的类型存储,内容如下: An instance of clas
我已阅读 Permuterm indexes stanford 网站上的页面,但是我仍然无法弄清楚我们如何从以下地址到达:*X*至 X* . 那么$在哪里? ? 我可以得到这些: For X, loo
我是一名优秀的程序员,十分优秀!