通过“apt-get remove”删除软件包时,为什么必须(有时)在此过程中升级其他软件包?

通过“apt-get remove”删除软件包时,为什么必须(有时)在此过程中升级其他软件包?

我可以举一个具体的例子,但我确实认为这是一个常见的过程,并且根本不明白为什么要这样做。请评论我是否应该在发生这种情况时给出一个具体的例子。

编辑:

对于具体示例:我尝试删除apache2并尝试升级php5-cgi,问题是history.log没有/var/log/apt/保存此无效尝试。它无法工作,因为apt-get无法升级,因为没有互联网连接。

记录的要删除的工作尝试的第一部分apache2如下:

Log started: 2015-01-24  12:32:00
Selecting previously unselected package php5-cgi.^M
(Reading database ... ^M(Reading database ... 5%^M(Reading database ... 10%^M(Reading database ... 15%^M(Reading database ... 20%^M(Reading database ... 25%^M(Reading database ... 30%^M(Reading database ... 35%^M(Reading database ... 40%^M(Reading database ... 45%^M(Reading database ... 50%^M(Reading database ... 55%^M(Reading database ... 60%^M(Reading database ... 65%^M(Reading database ... 70%^M(Reading database ... 75%^M(Reading database ... 80%^M(Reading database ... 85%^M(Reading database ... 90%^M(Reading database ... 95%^M(Reading database ... 100%^M(Reading database ... 251982 files and directories currently installed.)^M
Preparing to unpack .../php5-cgi_5.5.9+dfsg-1ubuntu4.5_amd64.deb ...^M
Unpacking php5-cgi (5.5.9+dfsg-1ubuntu4.5) ...^M
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...^M
dpkg: libapache2-mod-php5: dependency problems, but removing anyway as you requested:^M
 php5 depends on libapache2-mod-php5 (>= 5.5.9+dfsg-1ubuntu4.5) | libapache2-mod-php5filter (>= 5.5.9+dfsg-1ubuntu4.5) | php5-cgi (>= 5.5.9+dfsg-1ubuntu4.5) | php5-fpm (>= 5.5.9+dfsg-1ubuntu4.5); however:^M
  Package libapache2-mod-php5 is to be removed.^M
  Package libapache2-mod-php5filter is not installed.^M
  Package php5-cgi is not configured yet.^M
  Package php5-fpm is not installed.

因此,重申一下问题:

通过删除软件包时apt-get remove,为什么必须(有时)在此过程中升级其他软件包?

答案1

AFAIK,这可能会解决依赖关系,例如,如果已安装的软件包依赖于A | B,您尝试删除B,但A尚未安装或安装的版本太低(在版本依赖关系的情况下)。我已经见过类似的事情了。

笔记。在特定情况下,如果您想知道为什么在要删除软件包时apt-get要升级某些软件包,您可以尝试以下选项:packageUpackageR--no-upgrade

apt-get remove --no-upgrade packageR

并查看您收到的错误消息类型(通常是未满足的依赖关系)。或者,您可以执行以下操作:

apt-get install packageR- packageU=current_version

查看错误信息(后面的连字符packageR表示要求删除该包,与当前版本等号packageU表示不想升级packageU),即依赖关系不满足。如果您没有收到错误消息并且packageR可以在不升级的情况下删除packageU,这可能意味着依赖项解析中存在错误(它是已知在某些情况下存在错误)。

相关内容