Использование DNF

Материал из Mageia Russian Community Wiki
Перейти к: навигация, поиск

Введение

Теперь, когда «Функция: Добавить DNF в качестве альтернативного менеджера репозитория» (Wiki Mageia на англ.) почти готова, можно приступить к её использованию. Но сначала прочтите ниже предупреждения по поводу бага в «Графическом интерфейсе» и о «механизмах сирот».
В конце этой статьи есть ссылки на руководства.

Установка и настройка

  • Установить dnf
# urpmi dnf
  • Если требуются репозитории Nonfree или Tainted, их можно активировать командой dnf config-manager , как показано ниже для 64-битной системы (замените x86_64 на i586 для 32-битной системы):
# dnf config-manager --set-enabled mageia-x86_64-nonfree updates-x86_64-nonfree
# dnf config-manager --set-enabled mageia-x86_64-tainted updates-x86_64-tainted

  • 32-битные репозитории по умолчанию отключены в версии x86_64, если они вам нужны:
# dnf config-manager --set-enabled mageia-i586 updates-i586

Повторите аналогично (см. предыдущий пример), если нужны 32-nonfree и 32-tainted.

Для Cauldron (версия разработки) замените «mageia» на «cauldron», а «updates», «backports» и т. д. на «caulron-updates», «cauldron-backports» и т. д. соответственно в приведённых выше командах.


  • Если вы предпочитаете другое зеркало, то можете отредактировать файлы конфигурации репозитория в /etc/yum.repos.d/...


Раскомментируйте строку «baseurl=» и замените URL-адрес, чтобы он указывал на предпочитаемое вами зеркало. Это автоматически переопределит свойства «metalink=» и «mirrorlist=», чтобы использовать указанное зеркало. При желании вы можете закомментировать строки "metalink=" и "mirrorlist=", но это отключит механизм обработки отказа, когда "основное" зеркало недоступно.


Некоторые команды для начала работы

от root:

dnf install <имя_пакета>         установить пакет
dnf reinstall <имя_пакета>       переустановить пакет
dnf downgrade <имя_пакета> <версия>     понизить текущую версию пакета до предыдущей (по возможности). 
                                        Если указана версия пакета, выполняется понижение до целевой версии.
dnf remove <имя_пакета>              удалить пакет
dnf makecache                        обновить метаданные (то, что доступно в репозиториях)
dnf check-update --refresh              обновить метаданные и проверить наличие новых обновлений
                 --refresh              установить метаданные как истёкшие перед запуском команды
dnf upgrade --refresh                   обновить метаданные и установить все доступные обновления
dnf upgrade --best          принудительно пытается выбрать подходящие доступные версии, 
                            что может помочь в определении ошибок зависимостей
            -b или --best      попытаться использовать наиболее подходящие версии пакетов в транзакциях.
dnf distro-sync --refresh                 обновить метаданные и синхронизировать установленный на компьютере 
                                          набор пакетов с версиями в репозиториях
dnf distro-sync --allowerasing --best  поможет обновить пакет с изменённой версией основной зависимости (т.е. major), 
                                       например, с более высокой версией библиотеки lib64clang3.8 на lib64clang3.9
    distro-sync                    обновить установленные пакеты до последних имеющихся версий
                --allowerasing     разрешить удаление установленных пакетов для разрешения зависимостей
dnf history list                      показать список истории установки/удаления/обновления
dnf history info 12                   показать, что произошло во время пункта 12 из списка истории
dnf shell                вызывает интерактивную оболочку для выполнения нескольких действий как одной транзакции
dnf install --enablerepo updates_testing-x86_64 caja 
                                устанавливает пакет «caja» из определенного репозитория (updates_testing-x86_64)
            --enablerepo [repo]       включить дополнительный репозиторий, параметр списка, 
                                      поддерживает маски, может быть задан несколько раз.

от пользователя (или root):


dnf help                           показать страницу справки
dnf search fax                  поиск в репозитории совпадений в именах пакетов и их описании 
                                по заданному выражению "fax"
dnf repolist                       отобразит все включённые репозитории
dnf repoquery --requires --resolve   показать список пакетов необходимых для удовлетворения зависимостей
dnf repoquery 'mga*'               выдаст --nevra по-дефолту "%{name}-%{epoch}:%{version}-%{release}.%{arch}" 
                                   всех доступных пакетов имена которых начинаются на "mga"

Короткие варианты общих команд.

Начиная с DNF 2.6.2, теперь есть короткие сокращения для часто используемых команд:

  • от root
dnf in <имя_пакета>                  установить пакет
dnf ri <имя_пакета>                  переустановить пакет
dnf dg <имя_пакета>               понизить версию пакета
dnf rm <имя_пакета>               удалить пакет
dnf mc                       обновляет метаданные (то, что доступно в репозиториях)
dnf up                       делает все доступные обновления
dnf dsync                    синхронизирует установленный на компьютере набор пакетов с версиями в репозиториях
dnf sh                       вызывает интерактивную оболочку для выполнения нескольких действий как одной транзакции 
  • от пользователя (или root)
dnf se fax         поиск в репозитории совпадений в именах пакетов и их описании по заданному выражению "fax"

Если у вас не англоязычная система, а нужен вывод на английском, то поставьте LANGUAGE=C перед командой в той же строке.

Графический интерфейс

Установить:

# dnf in dnfdragora

Запустить:

  • меню Mageia > Утилиты > Системные > dnfdragora
  • в терминале командой: dnfdragora

Примечание, имеется странность:

  • баг, mga#21453dnfdragora не запоминает выбор источника пакетов.
  • реагирует только на "буквенный" Enter, на правый "цифровой" не реагирует, возможно зависит от оборудования или драйвера nvidia.

Предупреждение о механизмах сирот.

Одновременное использование URPMI и DNF делает ненадёжными «механизмы сирот» их обоих. Если вы собираетесь пользоваться DNF, то переключитесь на него как можно быстрее после установки и перестаньте использовать URPMI.

Удаление апплета обновления URPMI

удалите mgaonline

Апплет обновления DNF

установите dnfdragora-updater

Обновить выпуск Mageia, используя DNF

Вы можете обновить Mageia всего за несколько шагов. Обратите внимание, что все команды должны выполняться от root.

  1. Убедитесь, что система полностью обновлена: dnf --refresh upgrade
  2. Установите плагин для обновления системы: dnf install 'dnf-command(system-upgrade)'
  3. Начните с этого: dnf system-upgrade --releasever <№_следующей_версии> download --allowerasing Например, для обновления до Mageia 8 используйте цифру " 8 " вместо выражения <№_следующей_версии>
    1. Перед загрузкой пакетов будет задан вопрос и указано, сколько требуется места. Если у вас нет того, что написано, плюс пара сотен МБ свободного места в разделе /var (если /var не на отдельном разделе, а является частью корневого, добавьте еще пару сотен МБ), затем либо создайте достаточно места, либо добавьте параметр к этой и следующим командам обновления системы: --downloaddir /путь_к_каталогу_со_свободным_пространством . Также убедитесь, что у вас есть дополнительное место для больших новых программ. Обратите внимание, что, возможно, должно быть место не для одного, а для двух ядер, см. ниже «Дополнительная особенность ядра». Особенно, если у вас отдельный раздел /boot , проверьте, достаточно ли места для него.
    2. Если места достаточно, то ответьте «да», чтобы разрешить загрузку. Произойдёт пробный запуск теста транзакции.
  4. Если проверка загрузки и транзакции прошла успешно,
    1. Сохраните свою работу и закройте все приложения!
    2. Запустите обновление: dnf system-upgrade reboot

/!\ ВНИМАНИЕ! Это немедленно перезагрузит вашу систему! /!\

Далее, в загрузочной заставке смотрите на сообщения о ходе обновления. Когда всё будет готово, система перезагрузится, чтобы вы могли насладиться новой версией Mageia.

Дополнительная особенность ядра.

DNF использует другой метод для выбора варианта ядра, чем установщик Mageia. Это может привести к тому, что в системе, которая использовала ядро рабочего стола, после обновления DNF будут установлены как рабочий стол, так и сервер, и сервер будет использоваться. Решение: выберите при загрузке ядро ​​рабочего стола, затем удалите ядро ​​сервера.
Баг: mga#28272

Настройка контейнера для другой архитектуры.

Начиная с DNF 2.6.2 теперь можно создавать chroot или контейнеры для других архитектур.

Процедура создания chroot ARMv7 в системе x86_64 выглядит следующим образом:

  1. Установите в хост-систему пакет: qemu-user-static
  2. Перезапустите сервис systemd-binfmt.service , чтобы новая информация о двоичном формате вступила в силу
  3. Создайте каталог вашей внешней архитектуры chroot, например: /var/lib/machines/mga8armv7hl
  4. Запустите DNF от имени root, чтобы создать каталог установки:

dnf --installroot=/var/lib/machines/mga8armv7hl --releasever=8 --forcearch=armv7hl --repofrompath=mga8rel,http://mirrors.kernel.org/mageia/distrib/8/armv7hl/media/core/release/ --repofrompath=mga8up,http://mirrors.kernel.org/mageia/distrib/8/armv7hl/media/core/updates/ --disablerepo=* --enablerepo=mga8rel --enablerepo=mga8up --setopt=install_weak_deps=False install basesystem-minimal-core dnf

Далее проверьте chroot, чтобы увидеть, работает ли программа, предлагаемая команда (запуск от root):

# chroot /var/lib/machines/mga8armv7hl /usr/bin/uname -r -m

Документация.


Ссылки даны на статьи Wiki-Mageia, которые ещё не переведены.

Примечание: данная статья переведена из Wiki-Mageia «Using DNF» (Использование DNF), доработал машинный перевод и оформил algri14, замечания, ошибки можете оставить на форуме Mageia Russian Community Forum → Переводы → Использование DNF — перевод статьи из Wiki-Mageia «Using DNF»