apt-get中无限加载包,无限Get

Infinite loading package in apt-get, infinite Get

Ubuntu 16.04.3 xenial

apt-get update 无效 - 无限获取。 Apt 不断尝试下载一个包:

...
Get:10 http://ru.archive.ubuntu.com/ubuntu xenial/universe DEP-11 64x64 Icons [7,448 kB]
Get:10 http://ru.archive.ubuntu.com/ubuntu xenial/universe DEP-11 64x64 Icons [7,448 kB]
Get:10 http://ru.archive.ubuntu.com/ubuntu xenial/universe DEP-11 64x64 Icons [7,448 kB]
...

我更改了文件 /etc/apt/sources.list 中的镜像地址,但没有帮助。

问题不是这个:https://askubuntu.com/questions/774918/apt-get-is-stuck-at-fetched-xxkb-in-xxsec

怎么回事?

Ubuntu 软件包中 PHP 的默认版本现在是 7,无需在您的安装中提及版本 php7.0

尝试清除有关 php7 的所有内容,然后在不提及版本的情况下安装 php。

使用这些命令删除所有内容(使用 sudo):

apt-get remove php7.0-*
apt-get --purge remove php7.0
apt-get --autoremove
apt-get --autoclean

确保您的 php 文件夹中没有与 php7.0 相关的内容:

ls /etc/php

然后直接安装php,不用说版本,它会安装php7的最新版本(使用sudo):

apt-get update
apt-get install php

P.S:安装扩展的版本就不用说了。像这样安装它们(使用 sudo):

apt-get install php-json

P.S:如果这不起作用,请尝试将 Ubuntu 存储库镜像更改为另一个国家的 CDN,然后重试(使用 sudo):

nano /etc/apt/sources.list 

然后将所有 ru 更改为另一个国家,例如 de

然后保存文件再试。

帮助回答了这个问题:https://askubuntu.com/a/964096/746294

If you are using any (transparent) proxy severs, it may be a misconfiguration of a proxy. Try to use HTTPS mirrors to eliminate such issues.

如何验证数据包是否被截断:

curl http://archive.ubuntu.com/ubuntu/dists/xenial/universe/binary-i386/by-hash/SHA256/504313460a80c8d83fe8a45d2958284e5255ba0776b3e729074c8f8a7368d191 > /dev/null

运行 curl 的结果,表示 没有下载包 :

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0 7335k    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (18) transfer closed with 7512036 bytes remaining to read

需要配置代理服务器。

快速解决方案:将 /etc/apt/sources.list HTTP 镜像替换为 HTTPS 镜像。例如,http://ru.archive.ubuntu.com 替换为 https://mirror.yandex.ru