我从 12.04 升级到 12.10,当我通过 nginx 访问 phppgadmin 时,开始出现网关错误。经过一番查找,我意识到所需的程序 php5-fpm 没有运行,而且所需的可执行文件 /usr/sbin/php5-fpm 似乎消失了。
当我尝试重新安装它时,它给出:
Package php5-fpm is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'php5-fpm' has no installation candidate
唯一未注释的行sources.list
是:
deb http://extras.ubuntu.com/ubuntu quantal main #Third party developers repository
deb http://archive.ubuntu.com/ubuntu quantal main
aptitude search php5-fpm
给出了这个:
c php5-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary)
然而,我注意到,有几行内容被发出了,也许没有到终端的换行符,我无法将其重定向到我可以阅读它们的地方。
问题是:如果 aptitude 能够通过aptitude search
什么找到这个包,那么这个包是否不适合安装在这个系统上?如何找到包的正确来源?
答案1
我能够解决这个问题,但我不知道具体怎么做。我不太了解 apt 系统。
显然,响应开头的“c”aptitude search
表示包已被删除,但留下了一些配置信息。我猜 Saurav 的命令应该已经纠正了这个问题,但我不确定为什么他们没有这样做。
我添加了几个条目,sources.list
但我在 packages.ubuntu.com/php5-fpm 上找到了这个:
deb http://security.ubuntu.com/ubuntu quantal-security main universe
(可能是两个,但请注意 Thomas W 的宇宙也在其中,而其余的 php 包则取自主包)
然后,我在交互式 aptitude 中更新了软件包列表(我现在才发现 - 我无法访问 synaptics)。在 aptitude 中,php5-fpm 最初出现在“未安装的软件包 \ php \ main”中,更新后消失,并出现在“... \ php \ universe”下,此时安装成功重新安装了所有 php 软件包。
我的系统中卡住的版本(其版本与 php5 不同)与存储库中可用的版本(至少也缺少 universe)之间肯定存在一些不兼容性。我在 aptitude 中执行的某些操作(我假设是更新,但我没有记录我所做的一切)一定删除了旧信息。我认为如果我在添加正确的源后遵循 Saurev 的建议,它就会起作用。感谢 Thomas 和 Saurev 提出的建议。