我有一个二进制应用程序,我想从中创建一个Debian包(.deb)。在DEBIAN/control文件中,我需要添加依赖项。
为了找到依赖项,我执行以下命令:

  > objdump -p greenCity | grep NEEDED
  NEEDED               libsfml-graphics.so.2.3
  NEEDED               libsfml-system.so.2.3
  NEEDED               libsfml-window.so.2.3
  NEEDED               libgcc_s.so.1
  NEEDED               libc.so.6

控制文件内容如下:
Package: greencity
Version: 1.0
Architecture: amd64
Depends: libsfml-graphics, libsfml-system, libsfml-window
Maintainer: x x <[email protected]>
Section: base
Priority: optional
Homepage:
Description: xxx

最后,我创建包并安装它。在安装过程中,出现以下错误:
绿城依赖libsfml图形;然而:Package
未安装libsfml图形。绿城依赖
libsfml system;但是:未安装程序包libsfml system。
绿城依赖于libsfml窗口;但是:Package libsfml窗口
未安装。
信息:libsfml graphics/system/window2.3包在我的Linux上安装得很好。
那么,确定依赖项名称的规则是什么?我尝试了很多可能性,但都没有成功:(
提前谢谢你。

最佳答案

此库的Debian包的名称附加了库的主要版本号;例如libsfml-graphics2libsfml-system2等。
虽然这是Debian包命名的常见模式,但通常会有例外。在编写控制文件时,应始终查找包的确切名称(在系统的包列表中,或在https://packages.debian.org/上);不要假定包名称始终与文件名匹配。

07-26 06:57