====== dnf вместо yum в CentOS 7 ======
Начиная с Fedora 22, в качестве менеджера пакетов, вместо yum, начал использоваться dnf. И ясно, что совсем скоро мы увидим его в CentOS и в RedHat. Менеджер давно работает стабильно, и нет ни каких причин, к тому, что бы не заменить на него устаревший yum.
Давайте поглядим, в чем преимущества над yum:
- Более качественно разрешает зависимости;
- Работает быстрее и кушает меньше памяти;
- Может работать, как с Python 2 так и с Python 3. Следовательно можно отказаться от 2 версии и использовать Python 3 по умолчанию;
- Синтаксис совместим с yum, переучиваться не придётся.
По сути достаточно уже первых двух пунктов. Давайте устанавливать.
===== Установка dnf =====
Сначала нам понадобиться репозиторий EPEL:
# yum -y install epel-release
Затем собственно ставим сам менеджер пакетов:
# yum install -y dnf
На это по вроде как бы все, можно было бы начать пользоваться, но неожиданно полезли ошибки. Так что переходим ко второй части :).
===== Решаем проблемы =====
Собственно, если сразу после установки запустить менеджер, получим ошибку – что то типа:
# dnf repolist
Failed toopen:/var/cache/dnf/x86_64/7/x86_64/7/epel/repodata/dc79e1e8ec5d81d08795bbbe9ecec4750dfba572879cf4b9a6e87a2ee61952b6-updateinfo.xml.bz2.
Очевидно репозиторий epel не пришелся ко двору.\\ Удаляем, проверяем:
# dnf -y remove epel-release
Чистим кеш:
# dnf clean all
Проверяем:
# 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. Ставим:
# 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%]
Проверяем:
# 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
Теперь все работает.