如何修复"E: 无法找到方法驱动程序 /usr/lib/apt/methods/http"错误?

我尝试从终端更新我的软件包,这是我得到的结果:
$ sudo apt-get update
E: The method driver /usr/lib/apt/methods/http could not be found.
E: The method driver /usr/lib/apt/methods/http could not be found.
E: The method driver /usr/lib/apt/methods/http could not be found.
E: The method driver /usr/lib/apt/methods/http could not be found.
E: The method driver /usr/lib/apt/methods/http could not be found.

这是什么意思?我正在使用美国的镜像服务器,尝试使用镜像的主服务器,但结果始终相同。这是因为没有更新吗?

你能展示一下你的 /etc/apt/sources.list 文件吗? - César
1看看这个答案(https://unix.stackexchange.com/questions/338915/how-to-fix-apt-get-install-f-apt-transport-https-error-404-not-found),对我在Debian Stretch上解决了问题。 - reim
9个回答

SirCharlo在这个问题的副本中说:
sudo apt-get install apt-transport-https

我试过了,对我有效。

1这在Debian Squeeze中对我起作用。 - Matt Alexander
1这怎么可能?他无法连接到互联网。 - Avinash Raj
1很遗憾,如果你的apt缓存太过陈旧,这个方法就行不通了。现在我陷入了一个“水桶里的洞”的问题 :( - Owen
@Owen 为什么不直接禁用 https 仓库,直到你能够更新缓存呢? - Bratchley
1@Owen 这将允许其他人为任何未签名的软件包提供替代品或木马包装。 - mikemaccana

在我的情况下,在 .list 文件中查找所有的源代码,例如:
/etc/apt/sources.list 
/etc/apt/sources.list.d/nginx.list 
/etc/apt/sources.list.d/passenger.list

一些列表中的源强制使用https://,即使您将其更改为http://,也会重定向到https://。
解决方案如下:
1. 首先备份并删除https源。 2. 然后运行apt-get update。 3. 运行sudo apt-get install apt-transport-https。 4. 恢复https源。

所以你的意思是说应该在不安全的连接下进行更新? - David 天宇 Wong
这是我在Kali Linux上找到的唯一有效解决方案。 - shenk

在全新的OrangePi映像上遇到了同样的问题。将https替换为http没有起到帮助作用。最后,我创建了一个名为https的符号链接指向http,并成功执行了apt-get update。首先要安装的是apt-transport-https,然后重新运行更新。


1OrangePI看起来实际上仍然存在这个问题,你能详细解释一下在这种情况下你所指的“symlink”是什么意思吗? - dlewin
4@dlewin cd /usr/lib/apt/methods 然后 ln -s http https 就可以解决问题了。 - Alex

我的问题是Opera浏览器在/etc/apt/sources.list.d/opera-stable.list中写的不正确。
https//:

但是正确的是:
https://

所以我这样修复了这条线路:
deb https://deb.opera.com/opera-stable/ stable non-free #Opera Browser (final releases)

一切问题都解决了!

我的错误读取方法驱动程序/usr/lib/apt/methods/htttp,在这里阅读并尝试了所有的建议后,我几乎要放弃了,直到我注意到http多了一个额外的t
我去做了这个:
sudo -H gedit /etc/apt/source.list

Ctrl + F 查找所有的 htttp 实例。

移除了多余的 t

保存(两次以确保它已成功保存)

问题解决了。

看来我需要真正读一下错误信息,因为我之前只是匆匆浏览过它们。吸取了教训,不会再发生这种事情了。


我知道这是一个很旧的帖子,但在我的情况下,sources.list文件中的地址缺少了"http."(例如,http://kali.orghttp://http.kali.org)。当我比较我的环境中的两个虚拟机时,我发现了这一点。不确定错误来自何处,但替换掉那个部分解决了问题。

我以前遇到过这个问题,在我的情况下,问题出在/etc/apt/sources.list文件中。请确保没有引号''或"":
deb "http://archive.canonical.com/ubuntu/ maverick partner (Source Code)"

删除引号并将这些行改为:
deb http://archive.canonical.com/ubuntu/ maverick partner (Source Code)

此外,正如@arhimed建议的那样,请确保协议的格式正确: http://

一切都很顺利,还有其他的想法吗? - Abe

在/etc/apt/sources.list中查找https链接 检查相同链接的http链接是否有效。如果有效,则将http替换为https并享受。 否则,按照Damiön la Bagh上面的答案安装sudo apt-get install apt-transport-https。

我的评论与原帖的问题没有直接关系,但由于在谷歌搜索时这个页面是第一个结果,而我最初尝试解决的错误是“E: The method driver /usr/lib/apt/methods/https could not be found.”,所以我添加了一些帮助我解决问题的信息。
我碰巧在一个以太网网络上,其中包含一个类似“防火墙”的设备,它会将未知计算机的网络流量重定向到一个需要你“同意”网络服务条款的网页,然后才能继续使用。这个页面恰好是通过HTTPS提供的。因此,每次apt-get尝试连接时,都会进入一个HTTPS网站。这也是为什么尝试安装apt-transport-https对我来说不起作用的原因。

那被称为captive portal - muru