пятница, 22 июля 2016 г.

Ошибка "E: The method driver /usr/lib/apt/methods/https could not be found" при выполнении apt-get update

При выполнении apt-get update на некоторых серверах стало выдавать ошибку:

$ sudo apt-get update
E: The method driver /usr/lib/apt/methods/https could not be found.
N: Is the package apt-transport-https installed?
.
Для решения проблемы достаточно установить требуемый пакет и обновить списки, но мне стало интересно почему это началось. Ведь все источники в sources.list у меня указаны через http://. На всякий случай проверил это:

$ grep -r https /etc/apt/sources.list*

Ничего не выдало, значит какой-то из репозиториев начал перенаправлять запросы с http:// на https://. Смотрю что у меня есть на одном из проблемных серверов:

$ grep -r http:// /etc/apt/sources.list*
/etc/apt/sources.list:deb http://ftp.us.debian.org/debian jessie main contrib non-free
/etc/apt/sources.list:deb http://security.debian.org/ jessie/updates main contrib non-free
/etc/apt/sources.list.d/zabbix.list:deb http://repo.zabbix.com/zabbix/2.2/debian wheezy main
/etc/apt/sources.list.d/zabbix.list:deb-src http://repo.zabbix.com/zabbix/2.2/debian wheezy main
/etc/apt/sources.list.d/percona.list:deb http://repo.percona.com/apt jessie main

Открыл каждый URL в браузере (добавляя /pool/ в конце) и получил перенаправление на репозитарии percona. Теперь понятно почему проблема есть только на части серверов. Чтобы ее избежать в дальнейшем нужно установить пакеты apt-transport-https и ca-certificates.

$ sudo apt-get install apt-transport-https ca-certificates
$ sudo apt-get update

Также стоит заменить http:// на https:// в репозитарии percona, чтобы избежать ошибки вроде этой:

W: Failed to fetch http://repo.percona.com/apt/dists/wheezy/main/binary-amd64/Packages  301  Moved Permanently

E: Some index files failed to download. They have been ignored, or old ones used instead.

Теперь все работает как полагается.

6 комментариев: