apt 在安装依赖项时总是尝试删除本地创建的包

apt 在安装依赖项时总是尝试删除本地创建的包

我有一个本地编译的 apache 版本,它在控制文件中有

Replaces: apache2, apache2-mpm, httpd, httpd-cgi, apache2-mpm-prefork, apache2-utils, apache2-common, apache2.2-bin, apache2.2-common
Conflicts: apache2, apache2-mpm, httpd, httpd-cgi, apache2-mpm-prefork, apache2-utils, apache2-common, apache2.2-bin, apache2.2-common

但是如果我执行 apt-get install php5,apt 会尝试删除我的包并从 ubuntu 存储库安装 apache 包。

我已尝试交换替换、冲突和提供,但似乎无法让它保留我的本地包,该包的优先级为“可选”,与 apache2 相同。

有人知道我该如何配置我的包来替换 ubuntu 的 apache 吗?

答案1

这可能是因为php5软件包具有依赖关系(可能是间接的),而您的软件包无法满足。尝试使用aptitude而不是apt-get,也许将选项传递给它-v一次或多次,以便获得有关麻烦的依赖链的更详细报告;或者以交互方式使用 aptitude 以便能够轻松探索依赖链(请求安装php5并查看冲突解决方案)。

满足依赖关系的最简单方法是使用您自己的 Apache 版本的 Ubuntu 编译脚本,以便具有相同的软件包名称和更大的版本号,这应该可以满足所有依赖关系。

如果其他方法都失败了,您可以使用包equivs-build中的工具equivs来构建一个简单的包来满足缺失的依赖项。

答案2

安装您的软件包并将其标记为保留。

相关内容