> For the complete documentation index, see [llms.txt](https://andrey-ivantsov.gitbook.io/linux/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://andrey-ivantsov.gitbook.io/linux/fedora/pakety.md).

# Пакеты

Какой менеджер пакетов используется в настоящее время?

Dnf, являющийся, в свою очередь, форком Yum.

### Могу ли я использовать Yum в Fedora?

Начиная с Fedora 24, yum присутствует в Fedora лишь как символическая ссылка на dnf, сохранённая для обратной совместимости.

### База RPM оказалась повреждена. Как восстановить?

Для запуска пересборки базы данных RPM следует выполнить:

```
sudo rpm --rebuilddb
```

Настоятельно рекомендуется сделать резервную копию каталога `/var/lib/rpm` перед этим действием.

### **Обновление пакетов**

#### **Обновление пакета с использованием DNF**

Вы можете обновить только определенный пакет (скажем, systemd) и оставить все остальные пакеты в системе без изменений:

```batch
sudo dnf update systemd
```

#### **Проверка наличия обновлений системы с помощью DNF.**

Проверьте обновления для всех системных пакетов, установленных в системе:

```batch
dnf check-update
```

#### **Обновление всех системных пакетов**

Вы можете обновить всю систему, включая все установленные пакеты, с помощью следующих команд:

```batch
sudo dnf update
```

&#x20;Или же:

```batch
sudo dnf upgrade
```

&#x20;Обновление с принудительной проверкой метаданных:

```batch
sudo dnf update --refresh
```

ключ `--refresh` установить метаданные, как истекшие перед запуском обновления

#### **Синхронизация установленных пакетов со стабильной версией**

Команда «**dnf distro-sync**» предоставит необходимые параметры для синхронизации всех установленных пакетов с самой последней стабильной версией, доступной из любого включенного репозитория. Если не выбран какой-то конкретный пакет, то синхронизируются все установленные пакеты:

```batch
sudo dnf distro-sync
```

### **Установка пакета с DNF**

Чтобы установить пакет с именем **nano**, просто запустите приведенную ниже команду, она автоматически разрешит и установит все необходимые зависимости для пакета **nano**:

```batch
sudo dnf install nano
```

#### **Установка пакетов из определенного репозитория**

**DNF** позволяет установить любой конкретный пакет (скажем, phpmyadmin) из определённого репозитория (к примеру, epel) так же просто, как:

```batch
dnf --enablerepo=epel install phpmyadmin
```

#### **Переустановка пакета**

Команда «**dnf reinstall nano**» переустанавливает уже установленный пакет:

```batch
sudo dnf reinstall nano
```

### **Удаление пакетов**

#### **Удаление пакета**

Чтобы удалить любой нежелательный пакет (например, nano), вы можете использовать опцию «**remove**» или «**erase**» вместе с командой **dnf**:

```batch
sudo dnf remove nano
```

#### **Отакат версии пакета**

Опция «**downgrade**» откатывает версию указанного пакета до предыдущей версии, если это возможно:

```batch
sudo dnf downgrade acpid
```

***Пример вывода***

```batch
Using metadata from Wed May 20 12:44:59 20152No match for available package: acpid-2.0.19-5.el7.x86_643Error: Nothing to do.
```

#### &#x20;**Удаление “осиротевших” пакетов**

Те пакеты, которые были установлены исключительно для удовлетворения зависимостей, могут быть бесполезными, если они не используются другими приложениями. Чтобы удалить эти “осиротевшие” пакеты, выполните следующую команду:

```batch
sudo dnf autoremove
```

#### Удаление кэшированных пакетов

Много раз мы сталкивались с устаревшими заголовками и незавершенными транзакциями, что приводит к ошибке при выполнении **dnf**. Мы можем очистить все кэшированные пакеты и заголовки, содержащие информацию об удаленных пакетах, просто выполнив:

```batch
sudo dnf clean all
```

### **Получение информации по пакетам**

#### **Вывод списка всех доступных и установленных пакетов, используя DNF**

Команда «**dnf list**» выведет список всех доступных пакетов из всех репозиториев и установленных пакетов в вашей системе **Linux**:

```batch
dnf list
```

#### **Вывод списка всех установленных пакетов**

В то время как команда «**dnf list**» показывает все доступные/установленные пакеты из всех репозиториев. Однако у вас есть возможность перечислить только установленные пакеты, используя опцию «**list** **installed**», как показано ниже:

```batch
dnf list installed
```

#### **Вывод списка всех доступных пакетов**

Аналогичным образом, опция «**list available**» выводит список всех пакетов, доступных для установки из всех включенных репозиториев:

```batch
dnf list available
```

#### **Поиск пакета с использованием DNF**

Если вы не знаете, какой пакет вы хотите установить, в такой ситуации вы можете использовать опцию «**search**» вместе с командой **dnf** для поиска пакета, который соответствует слову или строке поиска (к примеру – nano):

```batch
dnf search nano
```

#### **Просмотр описание файл/субпакет, к какому пакету принадлежит файл, что он делает?**

Опция **dnf provides** ищет имя пакета, к которому принадлежит определенный файл/подпакет. Например, если вы хотите найти к какому пакету принадлежит ‘**/bin/bash**‘ в вашей системе, выполните:

```batch
dnf provides /bin/bash
```

#### **Просмотр деталей пакета**

Предположим, что вы хотите узнать информацию о пакете до его установки в системе, вы можете использовать опцию «**info**» для получения подробной информации о пакете, как показано ниже:

```batch
dnf info nano
```

### Работа с репозиториями

#### **Вывод списка включенных репозиториев DNF**

Опция «**repolist**» с командой **dnf** отобразит все включенные репозитории в вашей системе:

```batch
dnf repolist
```

#### **Просмотр всех включенных и отключенных репозиториев DNF**

Опция «**repolist all**» выведет все включенные/отключенные репозитории в вашей системе:

```batch
dnf repolist all
```

### **Работа с групповыми пакетами**

#### **Вывод всех групповых пакетов**

Команда «**dnf grouplist**» выведет все доступные или установленные пакеты, если не упомянуто никаких опций, она выведет список всех известных групп:

```batch
dnf grouplist
```

#### **Установка группы пакетов**

Чтобы установить группу пакетов, связанных вместе, как групповой пакет (скажем, образовательное программное обеспечение) выполните следующую команду:

```batch
sudo dnf groupinstall 'Educational Software'
```

#### **Обновление групповых пакетов**

Давайте обновим групповой пакет, выполнив приведенную ниже команду:

```batch
sudo dnf groupupdate 'Educational Software'
```

#### **Удаление групповых пакетов**

Мы можем удалить групповой пакет:

```batch
sudo dnf groupremove 'Educational Software'
```

### **Использования команды dnf**

**1.Проверка версии DNF**

Проверьте версию **DNF**, установленную в вашей Системе:

```batch
dnf --version
```

&#x20;**17. Получение справки по определенной команде DNF**

Вы можете получить помощь по любой конкретной команде **dnf** (скажем, clean), просто выполнив приведенную ниже команду:

```batch
dnf help clean
```

&#x20;**18. Вывод всех команд и опции DNF**

Чтобы получить справку по всем доступным командам и опциям **dnf**, просто введите:

```batch
dnf help
```

&#x20;**19. Просмотр истории DNF**

Вы можете вызвать **dnf history**, чтобы посмотреть список уже выполненных команд **dnf**. Таким образом, вы можете быть в курсе того, что было установлено/удалено и также узнать в какой именно промежуток времени это было выполнено:

```batch
dnf history
```
