apt-get 失败:找不到方法驱动程序 /usr/lib/apt/methods/https

apt-get 失败:找不到方法驱动程序 /usr/lib/apt/methods/https

我尝试使用终端更新我的操作系统 Debian jessie,但出现错误:

“E: The method driver /usr/lib/apt/methods/https could not be found.” error?

我的来源列表:

deb http://httpredir.debian.org/debian/ jessie main
deb-src http://httpredir.debian.org/debian/ jessie main

deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main

# jessie-updates, previously known as 'volatile'
deb http://httpredir.debian.org/debian/ jessie-updates main
deb-src http://httpredir.debian.org/debian/ jessie-updates main

deb http://ftp.de.debian.org/debian jessie main 

如何修复apt-get updateaptitude update

答案1

听起来您可能添加了一些 https 源。由于您的 中没有 https 源sources.list,因此它将是/etc/apt/sources.list.d/.

您还可能正在处理始终重定向到 https 的代理。

您可以通过安装几个软件包来添加对 https apt 源的支持:

apt-get install apt-transport-https ca-certificates

如果你apt-get太崩溃而无法做到这一点,你可以直接下载包并安装它dpkg -i。该包的任何其他依赖项都可以类似地追踪和获取(dpkg如果有任何内容丢失,会让您知道)。

如果仍然不起作用,您可以尝试编辑源条目以使用 http 而不是 https,或者将其删除并按照源维护者的说明重新开始。

答案2

对我来说,发生这个问题是因为其中一个镜像总是重定向到 https。所以我的来源都不是 https,但由于重定向,apt 最终会尝试从 https 站点获取某些内容。为了解决这个问题,我必须手动下载并安装:

  • libcurl3-gnutls
  • apt-transport-https

(apt-transport-https 依赖于 libcurl3-gnutls)。

一旦安装了这些,我就能够成功安装任何其他软件包,即使镜像位于 https 上。

答案3

导致此类问题的可能事件很少。最可能的解决方案是运行:

apt-get update
apt-get install apt-transport-https

您可以找到此问题的更多详细信息和可能的原因这里

答案4

链接到https源也可以来自 /etc/apt/sources.list 文件中的 http 引用。

我的来源列表:

cat /etc/apt/sources.list
deb http://deb.debian.org/debian stretch main contrib non-free
deb http://deb.debian.org/debian stretch main contrib non-free
..
deb [arch=armhf] http://repos.rcn-ee.com/debian/ stretch main

包括对另一个来源的引用,而该来源又具有https参考。
注释掉以下内容:

deb [arch=armhf] http://repos.rcn-ee.com/debian/ stretch main

是对我有用的修复。

相关内容