Курс молодого бойца.
Поиск информации об rpm-пакетах с использованием механизма
конвейера и команды grep.
Данная статья является авторским переводом оригинальной статьи
"Piping rpm output with the help of grep" с веб-сайта
www.techproguild.com
Очень часто появляется необходимость узнать номер релиза большого числа
пакетов в системе Linux. Скажем, к примеру, Вы не уверены какую версию
GNOME Вы используете. При помощи команд rpm, grep, механизма конвейера, и
пары ключей Вы сможете очень быстро это выяснить.
При написании данной статьи, автор использовал систему управления пакетами
Red Hat (в более частом использовании RPM) совместно с мощной командой
поиска grep для обращения к базе данных rpm.
Эти две команды (rpm и grep) объединяются для совместного использования,
этот метод называется конвейером и обозначается ( | ).
Начало
Синтаксис команд выглядит следующим образом:
rpm -qa | grep PACKAGE_NAME
При рассмотрении составных частей данной команды, мы видим,
что grep использует данные полученные при запросе (ключ q)
ко всем (ключ a) вхождениям в базу rpm пакета PACKAGE_NAME.
Хотя данная конструкция не отображает все возможности команды, она дает
начальные понятия их использования.
Пример
Допустим, мы хотим посмотреть какие пакеты установлены для GNOME.
Если использовать следующую конструкцию:
rpm -qa | grep gnome
вы вероятно получите нечто следующего вида:
[jwallen@giles jwallen]$ rpm -qa | grep gnome
sawfish-gnome-0.28.1-0_helix_2
gnome-pin-conduits-1.2.0-0_helix_1
gnome-games-devel-1.2.0-0_helix_1
gnome-audio-1.0.0-7
gnome-audio-extra-1.0.0-7
gnome-linuxconf-0.23-1
......................................
[часть текста пропущена]
Как видно из примера, на экран выведены все пакеты, содержащие слово
gnome. Это иллюстрирует очевидное ограничение - не все пакеты,
которые необходимы пакету GNOME содержат слово gnome. Например,
GNOME зависит от большого числа библиотек, таких как gtk.
Для нахождения всех установленных компонентов gtk введите команду
rpm -qa| grep gtk:
[jwallen@giles jwallen]$ rpm -qa | grep gtk
pygtk-libglade-0.6.4-1
rep-gtk-libglade-0.11-0_helix_2
gtk-1.0.3-1
gtk+10-1.0.6-6
pygtk-0.6.3-1
gtk+-1.2.7-1_helix_2
gtk-engines-0.10-1_helix_2
gtk+-devel-1.2.7-1_helix_1
Очевидно, что предложенная система - это лишь небольшая помощь для
нахождения всех пакетов, которые имеют зависимости от других пакетов.
Тем не менее, конвейер rpm и grep поможет Вам найти номера релизов и
имена необходимых Вам пакетов.
Заключение
Хотя приведенная система имеет небольшие ограничения в возможностях,
она, однако, жизнеспособна и имеет своих приверженцев. Она может успешно
использоваться для нахождения установленных пакетов и номеров их релизов!
В начало
К оглавлению раздела
На главную страницу
Перевод статьи
Lomash Dmitry
1.12.00