Гайд: Как сохранить вывод команды rpm -qa в файл: сортировка, фильтрация и гайд для Linux

Гайд по сохранению списка всех установленных RPM-пакетов в файл. Включает сортировку, фильтрацию grep, форматирование вывода и работу с sudo в Linux.

2026.06.13                  


Гайд: Как сохранить вывод команды rpm -qa в файл: сортировка, фильтрация и гайд для LinuxГайд: Как сохранить вывод команды rpm -qa в файл: сортировка, фильтрация и гайд для Linux Команда rpm -qa — это стандартный и мощный инструмент в дистрибутивах Linux на базе RPM (RHEL, CentOS, Fedora, AlmaLinux, Rocky Linux, Oracle Linux и др.) для получения списка всех установленных пакетов.

Ниже представлен подробный гайд по использованию этой команды с сохранением результата в файл, включая базовые и продвинутые сценарии.


1. Базовая команда сохранения в файл

Чтобы сохранить список всех установленных пакетов в текстовый файл, используйте оператор перенаправления вывода >:

rpm -qa > installed_packages.txt

Как это работает:

  • rpm — менеджер пакетов.
  • -q (query) — режим запроса информации.
  • -a (all) — применить запрос ко всем установленным пакетам.
  • > — оператор перенаправления. Он берет стандартный вывод (stdout) команды и записывает его в файл.

Важно:

если файл installed_packages.txt уже существует, он будет полностью перезаписан.


2. Добавление в существующий файл (без перезаписи)

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

rpm -qa >> installed_packages.txt

3. Продвинутые и полезные варианты

А. Сортировка списка по алфавиту

Стандартный вывод rpm -qa может быть неупорядоченным.

Чтобы получить аккуратный отсортированный список, используйте конвейер (|) с командой sort:

rpm -qa | sort > packages_sorted.txt

Б. Сохранение с указанием текущей даты в имени файла

Это очень удобно для создания регулярных бэкапов или аудитов системы, чтобы файлы не перезаписывали друг друга:

rpm -qa > packages_$(date +%Y-%m-%d_%H-%M).txt

Результат:

файл с именем вроде packages_2023-10-25_14-30.txt.


В. Форматированный вывод (с версиями, релизами и архитектурой)

По умолчанию rpm -qa выводит имя, версию и релиз.

Если вам нужен строгий формат (например, для миграции на другой сервер), используйте параметр --qf (или --queryformat):

rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' > packages_detailed.txt

Пример строки в файле: bash-5.1.8-2.el9.x86_64


Г. Фильтрация и сохранение (поиск конкретного ПО)

Если вам нужно сохранить в файл только пакеты, связанные с определенной программой (например, nginx или kernel), используйте grep:

rpm -qa | grep -i "nginx" > nginx_packages.txt

(Ключ -i делает поиск нечувствительным к регистру).


4. Работа с правами доступа (sudo)

Сама по себе команда rpm -qa не требует прав суперпользователя (root), так как база данных RPM доступна для чтения всем пользователям.

Однако, если вы пытаетесь сохранить файл в защищенную директорию (например, /root/ или /etc/), вам понадобится sudo:

sudo rpm -qa > /root/all_packages.txt

Важное замечание:

В Bash перенаправление > выполняется правами текущего пользователя, а не через sudo. Поэтому вышеуказанная команда может выдать ошибку "Permission denied".


Правильный способ сохранить файл в защищенную директорию:

sudo sh -c 'rpm -qa > /root/all_packages.txt'

Или использовать tee:

rpm -qa | sudo tee /root/all_packages.txt > /dev/null

5. Как проверить и проанализировать полученный файл

После создания файла вы можете использовать следующие команды для работы с ним:

Посмотреть первые 10 строк:

  head installed_packages.txt

Посмотреть последние 10 строк:

  tail installed_packages.txt

Просматривать файл с возможностью прокрутки (постранично):

  less installed_packages.txt

(Для выхода нажмите клавишу q)


Подсчитать общее количество установленных пакетов:

  rpm -qa | wc -l

(Или wc -l installed_packages.txt, если файл уже создан)


6. Современная альтернатива (для Fedora, RHEL 8/9, AlmaLinux, Rocky)

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

dnf repoquery --installed > dnf_packages.txt

Или просто:

dnf list installed > dnf_packages.txt

Этот метод также покажет репозиторий, из которого был установлен пакет, что бывает полезно при аудите.


Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


Статью подготовил: Денис Аверко @Nymexis г. Омск

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта