我尝试使用终端更新我的操作系统 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 update
和aptitude 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
是对我有用的修复。