如何欺骗apt依赖?

可能重复:
如何创建自动安装其他包的元包?

我想使用Frescobaldi(Lilypond的编辑),但在官方回购中,lilypond(2.12.3; lilypond就像TeX for scoreheets)的打包版本有点陈旧,因为我想使用一些全新的function。 所以我只是克隆了他们的git repo并从那里安装了它。

现在我的问题是,我怎么能告诉我,我手动满足了对lilypond的依赖,所以它不会尝试安装另一个副本?

对于实际提供依赖关系的位置,我将使用checkinstall进行安装。 checkinstall基本上替换make install并生成一个正确的.deb包,然后安装它。 这不仅允许您以更好的方式删除或升级包(当时机成熟时),它还可以满足其他应用程序的依赖性。

另一种方法是编写一个小的虚拟包,它不提供任何文件,但声称提供你想要的任何东西。 我能看到的最简单方法是使用名为equivs的应用程序:

 sudo apt-get install equivs equivs-control lilypond # edit your fake package so it has the right versions, names, description, etc nano lilypond equivs-build lilypond sudo dpkg -i lilypond-dummy*.deb 

第三条路线很容易但有潜在危害:只需从标准回购中安装它,然后用你生成的文件替换它的文件。 锁定包的版本,以便它不会升级。 这有可能出错的范围,所以只有在你不能先检查安装或以其他方式伪造软件包时才这样做。

您应该使用dhmakesudo check install而不是sudo make install 。 这样你就可以创建一个deb(check install也会安装deb)后来的lilypond版本^^。

如果您仍然拥有源代码(以及编译后的目标文件/ make文件等),您仍然可以执行此操作而无需再次下载。