我有一个本地编译的 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
安装您的软件包并将其标记为保留。