据我所知,.deb软件包通常包含一个控制文件,以libfreetype6_2.3.9-5ubuntu0.4_i386.deb为例,其控制文件包含以下内容:
软件包:libfreetype6
来源:freetype
版本:2.3.9-5ubuntu0.4
架构:i386
维护者:Ubuntu 核心开发人员
安装大小:704
依赖:libc6 (>= 2.4)、zlib1g (>= 1:1.1.4)
冲突:freetype、xpdf-reader(<< 1.00-4)
部分:libs
...
问题 1:
我想知道如何找到类似“依赖:libc6 (>= 2.4)、zlib1g (>= 1:1.1.4)“我自己。从配置文件、Makefile、README 还是其他什么东西?
问题2:
有没有自动生成控制文件的工具?
非常感谢您的回答。
答案1
假设其书写正确,这些信息将由 进行检查configure
,但要获得可靠的列表通常需要转到该项目的主页、README 等,并阅读那里的文档。即使是文档记录最差的项目也往往会在某处列出这些信息。如果找不到它,您可以尝试编译它并出现错误,然后追踪失败的原因(即缺少标题、库等)。
如果您尝试构建自己的 .deb 包,并希望找到类似 RPM 之类的自动依赖解析功能,那么您就没那么幸运了。也许有第三方解决方案,但我不会依赖它们。
虽然您最初的问题有点晦涩难懂,但您的评论听起来像是您自己尝试编译(并运行)应用程序。如果是这种情况,您可以使用以下命令下载与二进制包相关的所有构建源,这样您就可以轻而易举地从源代码编译程序。
apt-get build-dep <package_name>
现在,编译你的包就像运行configure
和一样简单make
。
安德鲁
答案2
Dpkg 是一个简单的软件包安装,它不解决依赖关系。您是否尝试通过 apt-get -f install package_name 安装软件包?
正是由于依赖关系,apt dselect 和 aptitude ware 才发展起来的。
呼呼!