Использование DNF
Содержание
- 1 Введение
- 2 Установка и настройка
- 3 Некоторые команды для начала работы
- 4 Короткие варианты общих команд.
- 5 Графический интерфейс
- 6 Предупреждение о механизмах сирот.
- 7 Удаление апплета обновления URPMI
- 8 Апплет обновления DNF
- 9 Обновить выпуск Mageia, используя DNF
- 10 Настройка контейнера для другой архитектуры.
- 11 Документация.
Введение
Теперь, когда «Функция: Добавить 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#21453 — dnfdragora не запоминает выбор источника пакетов.
- реагирует только на "буквенный" Enter, на правый "цифровой" не реагирует, возможно зависит от оборудования или драйвера nvidia.
Предупреждение о механизмах сирот.
Одновременное использование URPMI и DNF делает ненадёжными «механизмы сирот» их обоих. Если вы собираетесь пользоваться DNF, то переключитесь на него как можно быстрее после установки и перестаньте использовать URPMI.
Удаление апплета обновления URPMI
удалите mgaonline
Апплет обновления DNF
установите dnfdragora-updater
Обновить выпуск Mageia, используя DNF
Вы можете обновить Mageia всего за несколько шагов. Обратите внимание, что все команды должны выполняться от root.
- Убедитесь, что система полностью обновлена: dnf --refresh upgrade
- Установите плагин для обновления системы: dnf install 'dnf-command(system-upgrade)'
- Начните с этого: dnf system-upgrade --releasever <№_следующей_версии> download --allowerasing Например, для обновления до Mageia 8 используйте цифру " 8 " вместо выражения <№_следующей_версии>
- Перед загрузкой пакетов будет задан вопрос и указано, сколько требуется места. Если у вас нет того, что написано, плюс пара сотен МБ свободного места в разделе /var (если /var не на отдельном разделе, а является частью корневого, добавьте еще пару сотен МБ), затем либо создайте достаточно места, либо добавьте параметр к этой и следующим командам обновления системы: --downloaddir /путь_к_каталогу_со_свободным_пространством . Также убедитесь, что у вас есть дополнительное место для больших новых программ. Обратите внимание, что, возможно, должно быть место не для одного, а для двух ядер, см. ниже «Дополнительная особенность ядра». Особенно, если у вас отдельный раздел /boot , проверьте, достаточно ли места для него.
- Если места достаточно, то ответьте «да», чтобы разрешить загрузку. Произойдёт пробный запуск теста транзакции.
- Если проверка загрузки и транзакции прошла успешно,
- Сохраните свою работу и закройте все приложения!
- Запустите обновление: dnf system-upgrade reboot
/!\ ВНИМАНИЕ! Это немедленно перезагрузит вашу систему! /!\
Далее, в загрузочной заставке смотрите на сообщения о ходе обновления. Когда всё будет готово, система перезагрузится, чтобы вы могли насладиться новой версией Mageia.
Дополнительная особенность ядра.
DNF использует другой метод для выбора варианта ядра, чем установщик Mageia. Это может привести к тому, что в системе, которая использовала ядро рабочего стола, после обновления DNF будут установлены как рабочий стол, так и сервер, и сервер будет использоваться. Решение: выберите при загрузке ядро рабочего стола, затем удалите ядро сервера.
Баг: mga#28272
Настройка контейнера для другой архитектуры.
Начиная с DNF 2.6.2 теперь можно создавать chroot или контейнеры для других архитектур.
Процедура создания chroot ARMv7 в системе x86_64 выглядит следующим образом:
- Установите в хост-систему пакет: qemu-user-static
- Перезапустите сервис systemd-binfmt.service , чтобы новая информация о двоичном формате вступила в силу
- Создайте каталог вашей внешней архитектуры chroot, например:
/var/lib/machines/mga8armv7hl
- Запустите 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
Документация.
- DNF manual (Руководство по DNF)
- DNF core plugins manual (Руководство по основным плагинам DNF)
- DNF extra plugins manual (Руководство по дополнительным плагинам DNF)
Ссылки даны на статьи Wiki-Mageia, которые ещё не переведены.
Примечание: данная статья переведена из Wiki-Mageia «Using DNF» (Использование DNF), доработал машинный перевод и оформил algri14, замечания, ошибки можете оставить на форуме Mageia Russian Community Forum → Переводы → Использование DNF — перевод статьи из Wiki-Mageia «Using DNF»