dnf вместо yum в CentOS 7
Начиная с Fedora 22, в качестве менеджера пакетов, вместо yum, начал использоваться dnf. И ясно, что совсем скоро мы увидим его в CentOS и в RedHat. Менеджер давно работает стабильно, и нет ни каких причин, к тому, что бы не заменить на него устаревший yum.
Давайте поглядим, в чем преимущества над yum:
- Более качественно разрешает зависимости;
- Работает быстрее и кушает меньше памяти;
- Может работать, как с Python 2 так и с Python 3. Следовательно можно отказаться от 2 версии и использовать Python 3 по умолчанию;
- Синтаксис совместим с yum, переучиваться не придётся.
По сути достаточно уже первых двух пунктов. Давайте устанавливать.
Установка dnf
Сначала нам понадобиться репозиторий EPEL:
1 | # yum -y install epel-release |
Затем собственно ставим сам менеджер пакетов:
1 | # yum install -y dnf |
На это по вроде как бы все, можно было бы начать пользоваться, но неожиданно полезли ошибки. Так что переходим ко второй части :).
Решаем проблемы
Собственно, если сразу после установки запустить менеджер, получим ошибку – что то типа:
1 2 | # dnf repolist Failed toopen:/var/cache/dnf/x86_64/7/x86_64/7/epel/repodata/dc79e1e8ec5d81d08795bbbe9ecec4750dfba572879cf4b9a6e87a2ee61952b6-updateinfo.xml.bz2. |
Очевидно репозиторий epel не пришелся ко двору.
Удаляем, проверяем:
1 | # dnf -y remove epel-release |
Чистим кеш:
1 | # dnf clean all |
Проверяем:
1 2 3 4 5 6 | # dnf repolist Using metadata from Fri Jul2913:58:242016 repo id repo name status base CentOS-7-Base 9,007 extras CentOS-7-Extras 356 updates CentOS-7-Updates 2,070 |
Отлично, все заработало! Но как жить без epel и remi?
Покопавшись на багтрекере обнаружилось, что проблема имеет место быть и находиться в стадии решения. Всему виной библиотека
libsolv
. Текущая версия в epel 0.6.11-1, для корректной работы требуется минимально 14 версия. Такая обнаружилась тут – http://koji.fedoraproject.org/koji/buildinfo?buildID=704417. Ставим:
1 2 3 4 5 6 7 | # rpm -Uhv https://kojipkgs.fedoraproject.org//packages/libsolv/0.6.14/1.el7/x86_64/libsolv-0.6.14-1.el7.x86_64.rpm Retrieving https://kojipkgs.fedoraproject.org//packages/libsolv/0.6.14/1.el7/x86_64/libsolv-0.6.14-1.el7.x86_64.rpm Preparing... ################################# [100%] Updating/installing... 1:libsolv-0.6.14-1.el7 ################################# [ 50%] Cleaning up/removing... 2:libsolv-0.6.11-1.el7 ################################# [100%] |
Проверяем:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # dnf repolist Safe Remi's RPM repository for Enterprise Linux 961 kB/s | 615 kB 00:00 CentOS-7 - Base 3.3 MB/s | 8.8 MB 00:02 CentOS-7 - Updates 3.6 MB/s | 7.6 MB 00:02 Remi'sRPM repository forEnterprise Linux7- 3.0MB/s|2.1MB 00:00 CentOS-7-Extras 779kB/s|468kB 00:00 Using metadata from Tue Aug 211:47:132016 repo id repo name status base CentOS-7-Base 9,007 epel Extra Packages forEnterprise Linux7-x86_64 10,388 extras CentOS-7-Extras 356 remi Remi's RPM repository for Enterprise Linux 7 - x86_64 3,140 remi-safe Safe Remi'sRPM repository forEnterprise Linux7-x86_64 1,040 updates CentOS-7-Updates |
Теперь все работает.
12:07
Спасибо!
Помогло быстро решить проблему.