安装不在存储库中的新版本的应用程序,包括所有依赖项

时间:2012-11-12 13:03:25

标签: dependencies deb

我想解决的问题是我想从源代码安装应用程序。

当我尝试安装该应用时,它说它需要valac-0.16,但当我尝试从终端安装valac时,它只安装旧版本valac-0.14。 然后我尝试下载valac-0.16的新版本并尝试安装它,但它仍然显示不满足依赖性。

如何安装不在回购中的应用程序的新版本?

1 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,您希望以某种方式Depends: valac (>= 0.16)安装一个软件包,尽管您下载并安装了valac上游源代码,但它仍拒绝安装。

如果您有一个声明无法满足的依赖关系的包,dpkg将拒绝安装它,直到dpkg知道依赖关系满足为止。有三种可能的修复方法;

  1. dpkg --force-depends-version -i packagedpkg接受valac 0.14即使package声明它需要> = 0.16。更一般地说,dpkg --force-help包含各种有关如何使dpkg以各种有趣且有时有用的方式在脚下射击的提示。如果您没有直接使用dpkg,可以通过apt-getaptitude等方式传递这些选项。

  2. 如果valac有一个debian目录,或者您知道如何从下载的0.16源创建一个软件包,那么只需构建并安装一个deb软件包。如果片段在那里,那么debuild -us -uc -rfakeroot -b应该是你所需要的(最值得注意的是,debian/rules)。或者,您可以将apt-get source valac中的包拼凑在一起,并在0.14包源树中安装0.16上游源,然后重建。

  3. 如果你有一个本地安装的软件包可以满足依赖关系,但dpkg不知道它,你可以创建一个虚拟软件包并安装它;那么dpkg将会得到满足。 equivs包允许您轻松创建这样的虚拟包。