我对这个命令有一个问题:
这是错误的删节文本版本:
E: Failed to fetch http://XXXXXXXXXX:80/videoplayer/libpython2.7-dev_2.7.11-4_amd64.deb? ... Writing more data than expected (1391305>1387096)
E: Failed to fetch http://XXXXXXXXXX:80/videoplayer/john_1.8.0.6-jumbo-1-0kali9_amd64.deb? ... Writing more data than expected (68306>63312)
E: Failed to fetch http://XXXXXXXXXX:80/videoplayer/python-sip_4.17+dfsg-2_amd63.deb? ... Hash Sum mismatch
E: Failed to fetch http://XXXXXXXXXX:80/videoplayer/libtexlua52_2015.20160222.37495-1_amd64.deb? ... Writing more data than expected (76707>70474)
E: Unable to fetch some archives, maybe run apt-get update or try with ---fix-missing?
我需要解决这个问题吗?这是我输入时出现的问题:apt-get dist upgrade
。
我想安装完整升级来安装 Nvidia 驱动程序(红线是我的 IP 地址)。
答案1
我将尝试给出一个答案,尽管没有足够的数据来实际这样做。当您可以轻松地将真实文本从终端复制并粘贴到此处时,请勿对失败进行屏幕截图。 (在终端中突出显示所需的文本块,文本现在位于复制缓存中,要粘贴它,请单击鼠标滚轮,不确定笔记本电脑上的等效项)。所有命令均以 root 用户身份运行。
- 运行命令:apt-get 更新
检查是否有错误。如果更新有效,则执行以下操作:
apt-get dist-upgrade
请注意,对于调试来说,进行完整的 dist 升级确实很痛苦,因此您真正想要做的就是将范围缩小到仅损坏的包。就我个人而言,我不会尝试在 apt 包池损坏且处于损坏状态的情况下运行 dist-upgrade,我会删除损坏的包、哈希不匹配等,因为它们总是会破坏升级,并且您可以'直到他们消失为止。
因此,请检查哪些包损坏了。获取这些并使用以下命令:
apt-get --simulate remove --purge [你损坏的软件包]
- 模拟对于查看删除这些内容后会删除哪些内容很有用。
如果删除的不是很重要,那么只需再次运行该命令,而不进行模拟
apt-get remove --purge [你的损坏的软件包]
看看是否允许。
然后运行:
apt-get安装-f
走着瞧吧。
如果一切看起来都很好,并且 apt 没有抱怨,那么运行:
apt-get dist-upgrade
或者,不要使用派生发行版,也不要运行来自包装不良的第三方来源的内容。
通常,一旦你从 apt 系统中取出垃圾损坏的软件包,升级就会正常工作,除非你正在运行像 Mint 这样的东西,在这种情况下,所有的赌注都会被取消,因为它们会破坏 ubuntu 和 debian apt 软件包池。
但也要注意,在支持方面,Debian 不支持派生发行版是有原因的,特别是因为他们无法控制这些发行版所做或使用的包装,这意味着他们无法修复它为您或为您调试。
另请注意,无需进行 dist 升级即可获取新的打包 nvidia 驱动程序,零,无。您所需要做的就是安装该软件包:
apt-get update && apt-get install [nvidia driver package name]
如果您不知道包名称,只需执行以下操作:
dpkg -l | grep -i nvidia
您将看到它列在您已安装的 nvidia 软件包中。
答案2
“哈希不匹配”和“写入的数据超出预期”是您在使用代理时可能会看到的消息。
代理可以是透明的,也可以由您在系统上手动和有意识地配置。
我今天遇到了同样的错误,并且相信代理缓存是导致错误的原因。到目前为止,我还没有找到解决该问题的方法,尝试将代理添加到我的 /.bashrc 并创建一个包含以下内容的 apt.conf 文件:
Acquire::http::No-Cache=True;
Acquire::https::No-Cache=True;
Acquire::http::proxy "http://10.254.132.254:80";
Acquire::https::proxy "https://10.254.132.254:80";
Acquire::ftp::proxy "ftp://10.254.132.254:80";
我知道如果没有解决方案,这篇文章没有多大帮助,但也许您可以检查一下这是否是代理问题,然后从那里开始?
首先检查您的 /.bashrc 文件,看看是否为您的 shell 配置了代理:
cat ~/.bashrc
相关条目类似于以下内容:
http_proxy=http://<proxy_server>:<proxy_port>
export http_proxy
其他需要检查的地方包括
1. /etc/apt/apt.conf.d/ 或 /etc/apt/ 中的 apt.conf 文件 - 如果找到,则查找引用代理服务器的行,它们非常清晰,就像 bash 示例中一样。如果未找到,请不要担心,默认情况下不会创建该文件。
2.系统的网络设置:我使用Kali屏幕右上角的工具进行访问;单击右上角的下拉菜单,然后单击网络适配器旁边的下拉菜单,然后选择“网络设置”。如果在系统范围内配置了代理,它将在此处列出。
答案3
sudo apt-get --fix-missing dist-upgrade