Инструменты пользователя

Инструменты сайта


linux:libs:dnf

Это старая версия документа!


dnf вместо yum в CentOS 7

Начиная с Fedora 22, в качестве менеджера пакетов, вместо yum, начал использоваться dnf. И ясно, что совсем скоро мы увидим его в CentOS и в RedHat. Менеджер давно работает стабильно, и нет ни каких причин, к тому, что бы не заменить на него устаревший yum.

Давайте поглядим, в чем преимущества над yum:

  1. Более качественно разрешает зависимости;
  2. Работает быстрее и кушает меньше памяти;
  3. Может работать, как с Python 2 так и с Python 3. Следовательно можно отказаться от 2 версии и использовать Python 3 по умолчанию;
  4. Синтаксис совместим с yum, переучиваться не придётся.

По сути достаточно уже первых двух пунктов. Давайте устанавливать.

Установка dnf

Сначала нам понадобиться репозиторий EPEL:

# yum -y install epel-release

1 # yum -y install epel-release

Затем собственно ставим сам менеджер пакетов:

# yum install -y dnf

1 # yum install -y dnf

На это по вроде как бы все, можно было бы начать пользоваться, но неожиданно полезли ошибки. Так что переходим ко второй части :).

Решаем проблемы

Собственно, если сразу после установки запустить менеджер, получим ошибку – что то типа:

# dnf repolist Failed to open: /var/cache/dnf/x86_64/7/x86_64/7/epel/repodata/dc79e1e8ec5d81d08795bbbe9ecec4750dfba572879cf4b9a6e87a2ee61952b6-updateinfo.xml.bz2.

1 2 # 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

1 # dnf -y remove epel-release

Чистим кеш:

# dnf clean all

1 # dnf clean all

Проверяем:

# dnf repolist Using metadata from Fri Jul 29 13:58:24 2016 repo id repo name status base CentOS-7 - Base 9,007 extras CentOS-7 - Extras 356 updates CentOS-7 - Updates 2,070

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. Ставим:

# 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 # 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's RPM repository for Enterprise Linux 7 - 3.0 MB/s | 2.1 MB 00:00 CentOS-7 - Extras 779 kB/s | 468 kB 00:00 Using metadata from Tue Aug 2 11:47:13 2016 repo id repo name status base CentOS-7 - Base 9,007 epel Extra Packages for Enterprise Linux 7 - 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's RPM repository for Enterprise Linux 7 - x86_64 1,040 updates CentOS-7 - Updates

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

Теперь все работает.

linux/libs/dnf.1699942082.txt.gz · Последние изменения: 2023/11/14 09:08 — werwolf