В RHEL, CentOS, Fedora и других rpm — дистрибутивах, где используется консольный пакетный менеджер yum иногда возникает ошибка. При обновлении системы или установке, удалении пакетов, или простого просмотра списка репозиториев получаем следующее:
yum repolist
1 2 3 4 5 6 7 8 9 10 11 12 |
Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: mirror.corbina.net * elrepo: ftp.colocall.net * extras: mirror.corbina.net * remi: rpms.remirepo.net * remi-safe: rpms.remirepo.net * rpmforge: mirror.bacloud.com * rpmfusion-free-updates: mirror.yandex.ru * rpmfusion-nonfree-updates: mirror.yandex.ru * updates: mirror.corbina.net Error: xz compression not available |
Забив эту ошибку в поиск в Интернете, мы получим кучу ссылок с описанием причины в неверной установке EPEL репозитория. Под неверной понимается установка неправильной версии, например epel-release-7-9.noarch установлен на CentOS 6. Да, каждый может ошибиться. Предлагается удалить этот пакет (epel-release-7-9.noarch) и установить EPEL соответствующей версии. Но помните, что yum сломан и ничего не удаляет и не устанавливает. Конечно можно напрямую удалить rpm пакет:
rpm -qa epel*
1 |
epel-release-7-9.noarch |
rpm -ev epel-release-7-9.noarch
1 2 |
Preparing packages... epel-release-7-9.noarch |
Но что делать, если ошибка не пропала? Или у Вас нет EPEL репозитория, как в листинге выше. Я предлагаю метод нахождения неправильного репозитория путем простого перебора. Смотрим наши .repo файлы:
ls -al /etc/yum.repos.d/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
drwxr-xr-x. 2 root root 4096 Feb 17 2016 . drwxr-xr-x. 138 root root 12288 Mar 22 03:36 .. -rw-r--r--. 1 root root 1926 Dec 1 2013 CentOS-Base.repo -rw-r--r--. 1 root root 638 Dec 1 2013 CentOS-Debuginfo.repo -rw-r--r--. 1 root root 630 Dec 1 2013 CentOS-Media.repo -rw-r--r--. 1 root root 4528 Dec 1 2013 CentOS-Vault.repo -rw-r--r--. 1 root root 1190 Jan 8 2013 elrepo.repo -rw-r--r-- 1 root root 2382 Oct 16 2015 remi.repo -rw-r--r-- 1 root root 449 Jul 24 2015 remi-safe.repo -rw-r--r--. 1 root root 1128 Mar 20 2013 rpmforge.repo -rw-r--r--. 1 root root 1002 May 14 2011 rpmfusion-free-updates.repo -rw-r--r--. 1 root root 1062 Jun 19 2012 rpmfusion-free-updates-testing.repo -rw-r--r--. 1 root root 1047 May 14 2011 rpmfusion-nonfree-updates.repo -rw-r--r--. 1 root root 1107 Jun 19 2012 rpmfusion-nonfree-updates-testing.repo |
Все они имеют примерно одинаковую структуру:
cat /etc/yum.repos.d/remi.repo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[remi] name=Remi's RPM repository for Enterprise Linux 6 - $basearch #baseurl=http://rpms.remirepo.net/enterprise/6/remi/$basearch/ mirrorlist=http://rpms.remirepo.net/enterprise/6/remi/mirror enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi [remi-php55] name=Remi's PHP 5.5 RPM repository for Enterprise Linux 6 - $basearch #baseurl=http://rpms.remirepo.net/enterprise/6/php55/$basearch/ mirrorlist=http://rpms.remirepo.net/enterprise/6/php55/mirror # WARNING: If you enable this repository, you must also enable "remi" enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi |
Важная строка тут enabled=1. Это переменная включения репозитория. И соответсвено enabled=0 — его выключения. Так вот Вам нужно в любимом редакторе изменить 1 на 0 у всех репозиториев, а дальше по одному их включать. При этом не забывая проверять командой просмотра списка репозиториев yum repolist, выскакивает ли пресловутая ошибка Error: xz compression not available. Рано или поздно Вы доберетесь до битого репозитория, ничего не удаляя.