尽管安装了软件包但未解决的依赖关系(Debian 6 Sqeeze)

尽管安装了软件包但未解决的依赖关系(Debian 6 Sqeeze)

我正在使用 VirtualBox 4.2.14 VM 和 Debian 6 Sqeeze 作为来宾系统,并希望安装一些 PHP 模块:

root@devmv:~# apt-get install php5-fpm
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 php5-fpm : Depends: php5-common (= 5.4.17-1~dotdeb.0) but 5.4.17-1~dotdeb.1 is to be installed
E: Broken packages

我没有得到什么:php5-fpm : Depends: php5-common (=5.4.17-1~dotdeb.0) but5.4.17-1~dotdeb.1 is to be installed

因此,安装时需要一个已安装的包/包版本。问题是什么?为什么会出现依赖问题呢?

答案1

php5-common 所依赖的包的版本实际上并不相同,尽管它们的版本相似。一个是 5.4.17-1~dotdeb*.0*另一个是 5.4.17-1~dotdeb*.1*

我同意 .1 不满足 .0 依赖关系有点令人困惑。

我会先做一个

apt-get clean

然后重做

apt-get update
apt-get upgrade

答案2

首先,“~dotdeb”软件包不是官方的 Debian 软件包。除非绝对必要,否则最好避免使用第 3 方软件包。显然,在这种情况下,问题是由那些未随 Squeeze 附带的额外软件包引起的。当您需要比特定 Debian 版本提供的更新的软件时,请考虑检查官方 Debian 向后移植甚至从“测试”中提取更新的软件包。

apt-get放弃时aptitude可能会建议通过安装或升级相应的软件包来解决此类问题。

从源代码安装 PHP 是疯狂的,因为您会丢失本机发行版更新(错误修复,尤其是安全补丁),因此您必须遵循 PHP 更新、向后移植补丁,并在另一个 CVE 的修复可用后立即重建自定义安装。解决小包依赖问题要容易得多......

此外,一些其他操作系统组件可能与您的自定义 PHP 构建不兼容,因此您将面临潜在问题,而 Debian 维护人员无法帮助您解决这些问题……不仅重建 PHP 需要时间和精力,而且您还由于放弃本机软件包而失去支持......

答案3

/etc/apt/sources.list找到或中的哪一行/etc/apt/sources.list.d/并对其进行注释。然后运行apt-get update并再次尝试安装php5-fpm

相关内容