Командная строка Linux. Полное руководство - [55]
Высоко- и низкоуровневые инструменты управления пакетами
Системы управления пакетами обычно включают инструменты двух типов: низкоуровневые инструменты, решающие такие задачи, как установка и удаление файлов пакетов, и высокоуровневые инструменты, выполняющие поиск в метаданных и разрешение зависимостей. В этой главе мы посмотрим, какие инструменты входят в состав систем на основе Debian (таких, как Ubuntu и многих других), а также в состав последних продуктов Red Hat. Несмотря на то что все дистрибутивы на основе Red Hat опираются на одну и ту же низкоуровневую программу (rpm), они используют разные высокоуровневые инструменты. В ходе обсуждения мы познакомимся с высокоуровневой программой yum, используемой в дистрибутивах Fedora, Red Hat Enterprise Linux и CentOS. Другие дистрибутивы на основе Red Hat предоставляют высокоуровневые инструменты, сопоставимые по своим возможностям (табл. 14.2).
Таблица 14.2. Инструменты управления пакетами
Дистрибутивы | Низкоуровневые инструменты | Высокоуровневые инструменты |
На основе Debian | dpkg | apt-get, aptitude |
Fedora, Red Hat Enterprise Linux, CentOS | rpm | yum |
Типичные задачи управления пакетами
С помощью инструментов командной строки для управления пакетами можно выполнить множество разных операций. Мы рассмотрим наиболее типичные из них. Вы должны знать, что низкоуровневые инструменты поддерживают также создание файлов пакетов, но эта тема выходит за рамки данной книги.
В следующем обсуждении под термином имя_пакета будет подразумеваться фактическое имя пакета, а под термином файл_пакета — имя файла пакета.
Поиск пакета в репозитории
Используя высокоуровневые инструменты для поиска метаданных в репозитории, можно найти пакет по его имени или описанию (табл. 14.3).
Таблица 14.3. Команды поиска пакетов
Дистрибутив | Команды |
Debian | apt-get update apt-cache search искомая_строка |
Red Hat | yum search искомая_строка |
Вот пример поиска текстового редактора emacs в системе Red Hat с помощью команды yum:
yum search emacs
Установка пакета из репозитория
Высокоуровневые инструменты позволяют загрузить пакет из репозитория и установить его с полным разрешением всех зависимостей (табл. 14.4).
Таблица 14.4. Команды установки пакетов
Дистрибутив | Команды |
Debian | apt-get update apt-get install имя_пакета |
Red Hat | yum install имя_пакета |
Вот пример установки текстового редактора emacs в системе Debian при помощи apt-get:
apt-get update; apt-get install emacs
Установка пакета из файла пакета
Если файл пакета загружен из источника, не являющегося репозиторием, его можно установить непосредственно (без разрешения зависимостей) с использованием низкоуровневого инструмента (табл. 14.5).
Таблица 14.5. Низкоуровневые команды установки пакетов
Дистрибутив | Команды |
Debian | dpkg --install файл_пакета |
Red Hat | rpm -i файл_пакета |
Пример: если с некоторого сайта, не являющегося репозиторием, был загружен файл emacs-22.1-7.fc7-i386.rpm, его можно установить в систему Red Hat командой:
rpm -i emacs-22.1-7.fc7-i386.rpm
ПРИМЕЧАНИЕ
Поскольку этот прием установки основан на использовании низкоуровневой программы rpm, он не выполняет разрешения зависимостей. Если программа rpm обнаружит неразрешенную зависимость, она завершится с сообщением об ошибке.
Удаление пакета
Пакеты можно удалять с помощью и низкоуровневых, и высокоуровневых инструментов. Примеры использования высокоуровневых инструментов приводятся в табл. 14.6.
Таблица 14.6. Команды удаления пакетов
Дистрибутив | Команды |
Debian | apt-get remove имя_пакета |
Red Hat | yum erase имя_пакета |
Пример: удалить пакет emacs из системы Debian можно командой:
apt-get remove emacs
Обновление пакетов из репозитория
Наиболее типичной задачей управления пакетами является поддержание системы в актуальном состоянии обновлением пакетов до последних версий. Высокоуровневые инструменты способны выполнять эту важную задачу за один шаг (табл. 14.7).
Таблица 14.7. Команды обновления пакетов
Дистрибутив | Команды |
Debian | apt-get update; apt-get upgrade |
Red Hat | yum update |
Пример: следующая команда применит все обновления, доступные для пакетов, установленных в системе на основе Debian:
apt-get update; apt-get upgrade
Обновление пакета из файла пакета
Если обновленная версия пакета была загружена из источника, не являющегося репозиторием, ее можно установить, заменив предыдущую версию (табл. 14.8).
Таблица 14.8. Низкоуровневые команды обновления пакетов
Дистрибутив | Команды |
Debian | dpkg --install файл_пакета |
Red Hat | rpm -U файл_пакета |
Пример: обновить установленную программу emacs до версии, содержащей в файле пакета emacs-22.1-7.fc7-i386.rpm, в системе Red Hat можно командой:
rpm -U emacs-22.1-7.fc7-i386.rpm
ПРИМЕЧАНИЕ
dpkg не имеет параметра, отвечающего за обновление пакета вместо установки, как в программе rpm.
Список установленных пакетов
Команды в табл. 14.9 можно использовать для вывода списка всех пакетов, установленных в системе.
Таблица 14.9. Команды вывода списка пакетов
Дистрибутив | Команды |
Debian | dpkg –list |
Red Hat | rpm –qa |
Определение, установлен ли пакет
С помощью низкоуровневых инструментов из табл. 14.10 можно определить, был ли установлен определенный пакет.
Таблица 14.10. Команды определения состояния пакетов