Все о Linux. LinuxRSP.Ru


Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

25 лет исполнилось ядру Linux

Релиз KDevelop 5.0

Oracle открывает код JDK9 для ARM

Выпущен Timewarrior 1.0.0

Релиз Android 7.0

Percona Memory Engine для MongoDB на базе WiredTiger

PowerShell открыт и доступен для Linux

Форк TrueCrypt: VeraCrypt 1.18

Релиз Snapcraft 2.14

Релиз Go 1.7

Стабильный выпуск рабочего стола Lumina

Вышла первая версия аналога OpenCV - DCV 0.1

Выпуск минималистичной программы для мониторинга jsonmon 3

В MIT разработали новый язык программирования

Первый релиз Qt5Gtk2

Godot 2.1 - новая версия открытого игрового движка

Свободная цифровая станция звукозаписи: Ardour 5.0

Обновление SkypeWeb Plugin for Pidgin

Вышла версия 3.0 Android File Transfer для Linux (и для OS X)

Программный аналог MIDI-контроллера для создания музыки: Launchpadd v1.3

Mozilla спонсирует поддержку Python 3.5 в PyPy

Ef 0.08 - программа для моделирования динамики заряженных частиц

Обновление текстового редактора TEA до версии 42.0.0

Релиз OpenOrienteering Mapper 0.6.4

Вышли Guix и GuixSD 0.11

Релиз Opera 39

Выпуск LibreOffice 5.2

В OpenSSH обнаружены и устранены некоторые уязвимости

Эмулятор FCEUX 2.2.3

Компания Билайн переходит на российскую СУБД с открытым исходным кодом Tarantool

Google

 Новые статьи :

Утилиты для восстановления потерянных данных в Linux

Лучшие файловые менеджеры для Android

20 лучших бесплатных книг о Linux

Как сгенерировать открытый/закрытый SSH-ключ в Linux

Grive - клиент Google Drive для Linux с открытым исходным кодом

Протокол IPv6: варианты подключения

Сервер из образа: DHCP + TFTP + Initrd + OpenVZ

Обзор веб-панелей управления хостингом

Приёмы работы с Vim

Nginx как Reverse Proxy для сайта, использующего SSL

Разработка модулей ядра Linux

Мониторинг нагрузки http-сервера Apache 2

Перевод комментариев к файлу конфигурации Squid

Решение проблем при использовании "1c предприятие" 8.2 в Linux

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки







Rambler's Top100





 
 

Курс молодого бойца. Поиск информации об 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


      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2017 LinuxRSP