【问题标题】:How does debian package fix versioning of dependencies?debian 软件包如何修复依赖项的版本控制?
【发布时间】:2011-12-29 18:43:56
【问题描述】:

我浏览了一些关于创建 debian 软件包的教程。这一切似乎有些简单。所需要做的就是创建一个列出依赖项的控制文件,然后在要打包的目录上运行“dpkg”。

目前尚不清楚打包机制如何修复依赖关系。例如,假设我的可执行文件依赖于 libxxx.so.23(如运行 ldd 所示)。当软件包安装在客户端机器上时,它会自动下载“xxx”包,并可能导致在客户端机器上创建 libxxx.so.1。打包机制如何修复可执行文件指向 libxxx.so.1 而不是 libxxx.so.23?

提前感谢您的帮助。

【问题讨论】:

  • 我们不会通过在要打包的目录上运行dpkg 来构建包。我们在解压后的源码包中运行debuild(实际上是dpkg-buildpackage,但debuild is nicer)。

标签: ubuntu debian


【解决方案1】:

它没有。 libxxx.so.23 在包 libxxx23 中,而不是通用的 libxxx-dev,dh_shlibdeps 引入了对 libxxx23 的依赖。未版本化的软件包(xxx 或 libxxx)非常少见,可能是一个错误。

【讨论】:

  • 感谢您的帮助。我仍然很困惑。查看 VLC 媒体播放器的控制文件,我看到依赖部分没有提及特定版本,而是类似 libstdc++6 (>= 4.2.1)。这是如何运作的?此外,我们知道 VLC 需要 ffmpeg (libavcodec)。但是,它甚至不在依赖列表中。我错过了什么?
猜你喜欢
  • 2012-01-18
  • 1970-01-01
  • 2021-02-09
  • 1970-01-01
  • 1970-01-01
  • 2011-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多