dnf что это такое
DNF — Утилита управления пакетами нового поколения для дистрибутивов на основе RPM
DNF была создана на замену утилиты управления пакетами «YUM» в дистрибутивах на основе Red Hat, а именно RHEL, CentOS и Fedora и т. д., то есть всех тех, которые используют менеджер пакетов RPM.
YUM (сокращение от Yellowdog Updater, Modified) — это бесплатная утилита с открытым исходным кодом на основе командной строки, выпущенная под лицензией GNU General Public License и в основном написанная на языке программирования Python. YUM был разработан для управления и обновления RedHat Linux в Университете Дьюка, позже он получил широкое признание и стал менеджером пакетов RedHat Enterprise Linux, Fedora, CentOS и других дистрибутивов Linux на основе RPM. Его часто называют «Your Package Manager» («вашим менеджером пакетов»), что неофициально часто используют профессионалы Linux.
Идея заменить Yum на DNF
Алеш Козумплик, разработчик проекта DNF, является сотрудником RedHat. Он говорит:
«Впервые в 2009 году, работая над «Anaconda» — установщиком системы, он получил представление о работе с Linux. Он хотел работать над совершенно другим проектом, который позволил бы ему изучить инструмент для работы с пакетами в Fedora».
Недостатки Yum, которые привели к основанию DNF:
Алеш Козумплик говорит, что у него нет другого выбора, кроме как разветвить YUM и разработать DNF. Сопровождающий пакета YUM не был готов реализовать эти изменения. YUM имеет около 59000 LOC, тогда как DNF имеет 29000 LOC (строк кода).
DNF впервые показала своё присутствие в Fedora 18. Fedora 20 была первым дистрибутивом Linux, который предлагал пользователям использовать функциональность DNF вместо YUM.
Расположение файла конфигурации dnf по умолчанию: /etc/dnf/dnf.conf.
1. Как проверить версию DNF
Чтобы проверить версию DNF, установленную в вашей системе, выполните команду:
2. Список включённых репозиториев DNF
Параметр «repolist» с помощью команды dnf отобразит все включённые репозитории в вашей системе.
3. Как вывести все включённые и отключённые репозитории DNF
Параметр «repolist all» распечатает все включённые и отключённые репозитории в вашей системе.
4. Как вывести все доступные и установленные пакеты с помощью DNF
Команда «dnf list» выведет список всех доступных пакетов из всех репозиториев и установленных пакетов в вашей системе Linux.
5. Как узнать все установленные пакеты с помощью DNF
А команда «dnf list» показывает все доступные/установленные пакеты из всех репозиториев. Однако у вас есть возможность вывести список только установленных пакетов с помощью опции «list installed», как показано ниже.
6. Как узнать все доступные пакеты с помощью DNF
Точно так же опция «list available» отобразит все пакеты, доступные для установки из всех включённых репозиториев.
7. Как найти пакет с помощью DNF
Если вы не знаете точное имя пакета, который вы хотите установить, в такой ситуации вы можете использовать опцию «search» с командой dnf для поиска пакета, который соответствует слову или строке (скажем, nano).
8. Как узнать, какому пакету принадлежит файл?
Параметр dnf «provides» находит имя пакета, который содержит конкретный файл или подпакет. Например, если вы хотите узнать, какой пакет в вашей системе создал файл /bin/bash:
9. Как получить подробную информацию о пакете с помощью DNF
Предположим, вы хотите узнать информацию о пакете перед его установкой в систему. Вы можете использовать переключатель «info», чтобы получить подробную информацию о пакете (например, nano), как показано ниже.
10. Как установить пакет с DNF
Чтобы установить пакет, просто запустите приведённую ниже команду, она автоматически разрешит и установит все необходимые зависимости для указанного пакета:
11. Как обновить пакет с помощью DNF
Вы можете обновить только определённый пакет (например, systemd) и оставить всё остальное в системе нетронутым.
12. Как проверить наличие обновлений системы с помощью DNF
Чтобы проверить обновления для всех пакетов программ, установленных в системе, выполните следующую команду
13. Как обновить все системные пакеты программ с помощью DNF
Вы можете обновить всю систему, включая все установленные пакеты, с помощью следующих команд.
14. Как удалить пакет с помощью DNF
Чтобы удалить или стереть любой нежелательный пакет (например, nano), вы можете использовать переключатель «remove» или «erase» с командой dnf, примеры команд:
15. Как удалить ненужные пакеты с помощью DNF
Те пакеты, которые были установлены для удовлетворения зависимости, могут оказаться бесполезными, если не будут использоваться другими приложениями. Чтобы удалить эти сиротские пакеты, выполните следующую команду.
16. Как удалить кэшированные пакеты с помощью DNF
Часто мы сталкиваемся с устаревшими заголовками и незавершёнными транзакциями, что приводит к ошибке при выполнении dnf. Мы можем очистить все кэшированные пакеты и заголовки, содержащие информацию об удалённых пакетах, просто выполнив:
17. Как получить справку по конкретной команде DNF
Вы можете получить помощь по любой конкретной команде dnf (скажем, clean), просто выполнив приведённую ниже команду.
18. Как узнать все команды и параметры DNF
Чтобы вывести справку по всем доступным командам и параметрам dnf, просто введите:
19. Как посмотреть историю команд DNF
Вы можете вызвать историю dnf, чтобы просмотреть список уже выполненных команд dnf. Следующей командой вы можете узнать, что было установлено/удалено, для каждого действия будет присутствовать отметка времени.
20. Как вывести все групповые пакеты
Команда «dnf grouplist» распечатает все доступные или установленные пакеты, если ничего не упомянуто (не названа имя группы), отобразятся все известные группы.
21. Как установить групповой пакет с помощью DNF
Чтобы установить группу пакетов, объединённых вместе в виде группового пакета (скажем, Сетевые серверы), выполните следующую команду:
22. Обновление группового пакета
Давайте обновим групповой пакет (скажем, Сетевые серверы), выполнив следующую команду.
23. Удаление группового пакета
Мы можем удалить групповой пакет (скажем, Сетевые серверы) следующим образом:
24. Как установить пакет из определённого репозитория
DNF позволяет установить любой конкретный пакет (скажем, phpmyadmin) из репозитория (epel) для этого достаточно выполнить следующую команду:
25. Синхронизация установленных пакетов со стабильной версией
Команда «dnf distro-syncc» предоставит необходимые параметры для синхронизации всех установленных пакетов с самой последней стабильной версией, доступной из любого включённого репозитория. Если пакет не выбран, все установленные пакеты синхронизируются.
26. Как переустановить пакет
Команда «dnf переустановить nano» переустановит уже установленный пакет (скажем, nano).
27. Понижение версии пакета
Параметр «downgrade» понижает версию указанного пакета (скажем, acpid) до более низкой версии, если это возможно.
📦 Как работать с группами пакетов dnf
Dnf – это менеджер пакетов по умолчанию в семействе дистрибутивов Red Hat, которое включает в себя Fedora, Red Hat Enterprise Linux и все его клоны.
Это преемник Yum, и действительно, использование команды yum в последних версиях дистрибутивов, упомянутых выше, является просто еще одним способом вызова dnf.
В Dnf есть множество полезных функций и плагинов, которые помогают нам устанавливать, обновлять и удалять программное обеспечение, упакованное в формате «.rpm».
В этом руководстве мы исследуем группы пакетов dnf и узнаем, как с ними обращаться.
Что такое группа пакетов?
Начнем с определения, что такое группа пакетов.
Группа пакетов – это, по сути, «виртуальный» пакет.
Здесь мы называем его «виртуальным», потому что он не предоставляет конкретное программное обеспечение как таковое, но ссылается на другие «реальные» пакеты.
Мы можем использовать группы пакетов для установки «набора» пакетов с помощью одной команды.
Получение информации о группе пакетов
Перед установкой группы пакетов мы можем посмотреть, какие пакеты она будет содержать.
Для выполнения этой задачи все, что нам нужно сделать, это использовать команду dnf group info, передав имя группы пакетов, которую мы хотим проверить, в качестве ее аргумента.
Например, чтобы увидеть, что содержат группы пакетов @virtualization, мы должны запустить:
Вот результат выполнения приведенной выше команды в системе Fedora 34:
Первое, что мы можем заметить в выводе, – это имя и идентификатор группы пакетов, в данном случае «Virtualization» и «virtualization» соответственно.
После них мы можем прочитать краткое описание группы пакетов и ее назначения и, наконец, фактический список пакетов, включенных в нее.
Мы видим, что пакеты разделены на три основных раздела:
Пакеты, помеченные как «Mondatory» и «Default», будут устанавливаться всегда, а пакеты, помеченные как «Optional», будут установлены только в том случае, если они указаны.
Для полноты картины отметим, что существует еще один раздел, который в данном случае не используется: “Conditional”.
Пакеты, входящие в раздел «Conditional», устанавливаются только в том случае, если требуемые им пакеты уже установлены.
В некоторых случаях некоторые пакеты, входящие в группу пакетов, могут уже присутствовать в системе.
Список всех доступных групп пакетов
Чтобы вывести список всех доступных групп пакетов в репозиториях нашего дистрибутива, все, что нам нужно сделать, это выполнить следующую команду:
Приведенная выше команда возвращает список всех известных групп.
Однако мы можем добавить ряд опций, чтобы изменить поведение команды.
По умолчанию, так называемые скрытые группы не включены в список.
Чтобы они отображались, все, что нам нужно сделать, это добавить параметр –hidden:
Если мы хотим получить только список всех установленных групп пакетов, вместо этого мы можем использовать параметр –installed:
Установка, обновление и удаление группы пакетов
Итак, как установить группу пакетов?
Есть два основных способа: мы можем указать имя пакета с префиксом @ или использовать команду dnf group install, как мы уже увидели
Приведенные ниже команды эквивалентны:
Как мы уже говорили, по умолчанию устанавливаются только пакеты «Mondatory» и «Default».
Однако это поведение по умолчанию можно изменить с помощью параметра dnf group_package_types либо из командной строки, либо в файле конфигурации dnf.
Предположим, мы хотим установить только те пакеты, которые являются частью «Mondatory» раздела группы пакетов, мы могли бы выполнить следующую команду:
Если мы просто хотим, чтобы были включены пакеты, включенные в раздел «Optional» группы пакетов, мы также могли бы просто добавить флаг командной строки –with-optional при установке группы пакетов:
У нас также может быть возможность обновить группу пакетов.
Когда мы это сделаем, все пакеты, которые являются частью группы, будут обновлены вместе с самой группой пакетов: это потенциально может привести к установке новых пакетов, если они были добавлены в группу, или удалению, если они не являются больше частью группы, и они не были явно установлены пользователем.
Чтобы обновить группу пакетов, мы используем команду group upgrade, поэтому, например, для обновления пакета «Virtualization» мы должны запустить:
Заключение
В этом руководстве мы узнали о группах пакетов.
Мы увидели, как получить информацию о конкретной группе пакетов в дистрибутивах, использующих dnf в качестве диспетчера пакетов, таких как Fedora и Rhel, как пакеты, входящие в группу пакетов, делятся на разделы, какие из них устанавливаются по умолчанию, и как мы можем изменить это поведение.
Наконец, мы узнали, как установить, обновить и удалить группу пакетов.
Продолжаем изучать GNU/Linux и готовиться к сертификации от Red Hat (RHCSA).
Разберём, что такое пакеты, пакетные менеджеры, репозитории, как это всё работает и научимся работать с dnf.
GNU/Linux
708 постов 13.2K подписчиков
Правила сообщества
Все дистрибутивы хороши.
Ничего себе, уже 47я часть! А я ещё и первую не читал(( Дружище, главное не бросай. Подписываюсь, сохраняю в закладки, в следующем месяце начну читать с 1й части, нужно будет по работе. Спасибо за труд!
Любая полезная образовательная информация должна быть в топе, ИМХО!
Вот как перестать очковать, и пойти сдать RHCSA?
Все, кто смотрел ролик на тытрубе, вам че лайк поставить жалко?
Изучаем GNU/Linux часть 62. Основы контейнеризации
Продолжаем изучать GNU/Linux и готовиться к сертификации от Red Hat (RHCSA).
Обсудим, что такое контейнеризация и зачем она нужна.
Изучаем GNU/Linux часть 61. Глоббинг и регулярные выражения
Продолжаем изучать GNU/Linux и готовиться к сертификации от Red Hat (RHCSA).
Про глоббинг, регулярные выражения, grep, sed и awk.
Продолжаем изучать GNU/Linux и готовиться к сертификации от Red Hat (RHCSA).
Научимся работать с Cockpit
Продолжаем изучать GNU/Linux и готовиться к сертификации от Red Hat (RHCSA).
Настроим freeipa клиент и autofs
Продолжаем изучать GNU/Linux и готовиться к сертификации от Red Hat (RHCSA).
Научимся работать с SMB
Продолжаем изучать GNU/Linux и готовиться к сертификации от Red Hat (RHCSA).
Научимся работать с NFS
Изучаем GNU/Linux часть 56. Передача файлов по сети
Продолжаем изучать GNU/Linux и готовиться к сертификации от Red Hat (RHCSA).
Научимся работать с scp, sftp и rsync
Механизм самоуничтожения в Linux — это самоуверенность пользователя
Так вот почему он отошёл от разработки Linux
Изучаем GNU/Linux часть 55. Работа с IPv6
Продолжаем изучать GNU/Linux и готовиться к сертификации от Red Hat (RHCSA).
Разберём настройку IPv4 адресов
Изучаем GNU/Linux часть 54. Настройка времени
Продолжаем изучать GNU/Linux и готовиться к сертификации от Red Hat (RHCSA).
Разберём часы реального времени, системные часы и настройку NTP
Изучаем GNU/Linux часть 53. Установка RHEL
Продолжаем изучать GNU/Linux и готовиться к сертификации от Red Hat (RHCSA).
Детально разберём установку операционной системы на примере RHEL
Остановиться нельзя продолжить: когда DNF – лучший выбор
Выбор «бежать или сойти» всегда глубоко индивидуален и всегда — неоднозначен. Разбираемся, в каких случаях разумнее не финишировать.
А еще напоминаем, что читать Ногибоги можно и в Telegram. Это мегаудобно и интересно, ведь там мы публикуем не только собственные статьи, но и рекомендуем всё хорошее, что попадается на глаза по теме бега и ЗОЖа. В общем, попробуйте!
Добегать или не добегать — для многих бегунов вообще не вопрос. Ведь спортивный образ мышления во многом созвучен хемингуэевскому «раз уж начал — побеждай». Иди пешком, катись калачиком, но доберись до финиша. Такая бескомпромиссность льстит финишерам, но полностью деморализует тех, кому пришлось сойти с дистанции.
— Готов бежать?
— Да куда там, мне бы хоть пять километров осилить.
— Хорош заливать, еще небось в первой десятке прибежишь.
— Очень смешно! Я и до финиша-то вряд ли добегу, какая десятка…
Не знаю, как вы, но я часто слышу такие полушутливые, полуистеричные разговоры у стартового коридора. Чего уж скрывать, иногда и сама в них участвую, уверяя окружающих, что до финиша мне точно не добраться. Но сколько бы мы не сетовали на плохую подготовку или внезапную слабость, в глубине души каждый хочет верить, что прибежит первым, обгонит всю элиту и станет спортивной легендой.
Для многих бегунов аббревиатура DNF (did not finish) очень стигматизирована. Ведь все в спортивной культуре заточено на преодоление своих слабостей. Согласитесь, очень сложно остановиться перед толпой зрителей, скандирующих «беги, ты можешь» и признать себе, что нет, не могу.
Выбор «бежать или сойти» всегда глубоко индивидуален и всегда — неоднозначен. Принимая такое решение в пылу гонки, мы часто не осознаем, где проходит грань между стремлением превозмочь себя и страхом оказаться хуже других; между психосоматической болью и реальной травмой; между банальной ленью и инстинктом самосохранения.
Мы не сможем сказать вам наверняка, когда останавливаться, а когда продолжать. Но можем попытаться немного снизить градус напряжения, окружающий три зловещие буквы — DNF.
Юки Каваучи после финиша на Нью-Йоркском марафоне, где он стал одиннадцатым
Травма
Скотт Тинли, двукратный победитель Ironman, как-то сказал: «Есть только две причины сойти с дистанции. Первая — сломанное правое бедро. Вторая — сломанное левое бедро».
Крутость Скотта, безусловно, зашкаливает, но даже он признает, что с травмой финишировать сложно. И, как бы там ни было, давайте согласимся, что не стоит ждать переломов обеих ног, чтобы без зазрений совести сойти с дистанции.
Так, например, Хайле Гебреселассие не финишировал на Нью-Йоркском марафоне из-за боли в колене. Деннис Киметто прекратил борьбу на Чикагском марафоне из-за подозрения на перелом от напряжения. И даже титан ультра-забегов Дин Карназес в буквальном смысле выпал из своего первого марафона Badwater — он потерял сознание и, придя в себя, отказался продолжать.
Согласно исследованию Нью-Йоркского марафона, сход с дистанции очень распространен среди беговой элиты. А ведь это те самые люди, которые, вторя Кипчоге, раз за разом доказывают, что человеческим возможностям нет предела. Но, получив травму или почувствовав недомогание, они предпочитают остановиться, потому что знают — этот забег не последний. Если добить себя сейчас, то не останется ресурсов на следующие рекорды.
То ли дело любители. У нас ресурсов хоть отбавляй! Приехав из других городов и разорившись на стартовый взнос, мы свято верим, что должны страдать до финиша на все деньги. Но в нашем стремлении походить на лучших бегунов мира, давайте чаще вспоминать об их удивительном и мужественном умении вовремя сказать «стоп».
Самочувствие
Говорить о беге и здоровье можно долго — причем как в положительном ключе, так и наоборот. Обезвоживание, болезни суставов, судороги, повреждение мышц — все это, к сожалению, может случиться при серьезных беговых нагрузках. Отдельным пунктом всегда стоят кардиологические проблемы. Что вполне оправдано — ведь все мы знаем, какими трагическими последствиями может обернуться пренебрежение здоровьем сердца.
Но со статистической точки зрения болезни сердца — не самая распространенная проблема на забегах. Чаще всего до финиша спортсмены не добегают из-за расстройства пищеварительной системы.
Обычно эта сторона беговой медали проходит под грифом «не секретно, но как-то неловко». Бравые шутники могут каламбурить про «успеть бы добежать», а журналисты предпочитают ограничиться формулировкой «проблемы с желудком», как это было после DNF Уилсона Кипсанга на Берлинском марафоне. И хотя такая деликатность вполне оправдана, замалчивание проблемы может создать ощущение, что ее не существует.
Уилсон Кипсанг целился на новый мировой рекорд на Берлинском марафоне 2017, но сошел из-за проблем с желудком
Но потом появляется Пола Редклифф и совершенно откровенно, без утайки и отвода глаз, рассказывает, как расстройство кишечника не позволило ей финишировать на марафоне в Афинах.
«После 10-го километра мой живот начало сводить неистовой судорогой. И чем больше я боролась с ней, тем хуже становилось. Я вспомнила, как Лиз Йеллинг рассказывала мне, что на Берлинском марафоне ей пришлось опорожнить кишечник прямо на бегу. К черту тщеславие, подумала я. Я не могу остановиться и пойти в туалет — придется сделать это».
Такой рассказ — это правда очень смелый поступок, который легитимизирует для нас любые, даже не очень приятные, сбои в работе организма. Если вы чувствуете недомогание — будь то поэтическое головокружение или не очень поэтическая диарея — останавливайтесь и обращайтесь за медицинской помощью.
Недостаток тренировок
Вряд ли кто-то из вас готов поверить youtube-зазывалам, которые обещают подготовить к марафону за две недели. Но недотренированность может случиться с каждым. Даже с таким именитым спортсменом, как Кенениса Бекеле.
После своего DNF на Берлинском марафоне спортсмен признал, что не был готов к соревнованию на 100%. Его агент позже пояснил журналистам, что Бекеле занят ведением своего бизнеса — отеля в Эфиопии — и на полноценные тренировки у него попросту не хватает времени. Как вам такое? А ведь он — профессиональный спортсмен!
Кенийская атлетка Hyvon Ngetich упала на финишной прямой марафона в Остине, но принимать помощь отказалась и доползла до финиша третьей.
Причины недотренированности бывают самые разные. Вы внезапно и серьезно заболели незадолго до старта, или нырнули с головой в новую работу и выпали из бегового графика, или же просто случайно забыли прийти на 15 тренировок подряд. «Но не отказываться же от забега», — подумаете вы. Ведь посты в фейсбук уже написаны, кроссовки начищены, а родственники дорисовывают плакат.
На самом деле, самым гуманным решением будет именно отказаться от участия. А если вы все-таки решили бежать, прислушивайтесь к своему организму. Почувствовав, что вам явно не достанет сил до финиша, лучше остановитесь и хорошенько подготовьтесь к следующему забегу.
Плохие условия
«У природы нет плохой погоды», — поет нам Алиса Фрейндлих. «Это ты Йоль не бежала», — отвечаем ей мы.
Конечно, большинство спортсменов — люди закаленные. И нелепо было бы сходить с дистанции из-за небольшого мороза, или жаловаться на грязь, участвуя в трейловом забеге.
Но не стоит забывать, что в мировой практике существует достаточно прецедентов, когда соревнования отменялись из-за плохой погоды. Например, марафон в Миннеаполисе не состоялся из-за сильной грозы, так же как и недавние Олимпийские Игры пестрили переносами соревнований из-за ураганных ветров.
Мо Фара потерял сознание на финише Нью-Йоркского полумарафона, прибежав вторым. По его словам, причиной стала холодная погода.Порог толерантности к погодным условиям у всех разный. Не стоит ждать официальной отмены соревнований, если вы чувствуете, что условия забега противоречат вашим представлениям о здоровье или безопасности.
Добегать или не добегать — для многих бегунов вообще не вопрос. И очень зря. Какими бы целеустремленными и решительными мы ни были, во главу угла следует ставить свое здоровье. И каждый раз спрашивать себя, чем вам грозит самоотверженное добегание до финиша.
Бегайте долго, останавливайтесь вовремя и оставайтесь здоровыми!