Zypper — это менеджер пакетов с интерфейсом командной строки (аналогичный APT для систем на базе DEB или DNF для систем на базе RPM), используемый в openSUSE, SUSE Linux Enterprise и их производных. Он предоставляет пользователям быстрый и гибкий способ установки, обновления, удаления программных пакетов и репозиториев, а также управления ими, обеспечивая полный контроль над программной средой вашей системы.
По сути, Zypper работает с пакетами RPM — тем же форматом пакетов, который используется во многих дистрибутивах Linux на основе RPM. Он опирается на libzypp, серверную библиотеку, которая разрешает зависимости, управляет репозиториями и безопасно и эффективно обрабатывает транзакции.
В этой статье на практических примерах с использованием команд Zypper покажем вам, как устанавливать новые приложения, обновлять систему, искать пакеты, управлять репозиториями и многое другое. Мы надеемся, что к концу статьи вы будете достаточно уверенно управлять системой openSUSE из терминала.
Вы также можете использовать приведенные ниже примеры в качестве краткого справочника, если уже знакомы с Zypper и хотите освежить в памяти конкретную команду или параметр.
Справочник команд Zypper: краткая и расширенная версии
Zypper предлагает два способа выполнения практически всех операций: краткую форму для быстрого и удобного использования и расширенную форму для удобства чтения и ясности. Краткие формы широко используются на практике, поскольку они удобны для быстрого ввода команд, а расширенные формы более понятны и часто используются в скриптах или документации.
Какой из них вы выберете, зависит только от вас — результат будет одинаковым. Для простоты и потому, что это общепринятый способ, в примерах ниже мы будем использовать сокращённую форму. Но прежде чем мы перейдём к практической части, вот таблица, в которой приведены как сокращённые, так и полные формы наиболее часто используемых команд Zypper.
| Короткий | Длинный | Описание |
|---|---|---|
| in | install | Установка пакетов |
| rm | remove | Удаление (деинсталляция) пакетов |
| up | update | Обновите установленные пакеты |
| dup | dist-upgrade | Выполните обновление дистрибутива (с помощью интеллектуального преобразователя) |
| lu | list-updates | Список доступных обновлений |
| ve | verify | Проверка и исправление зависимостей пакетов |
| se | search | Поиск посылок |
| if | info | Показать подробную информацию о пакете |
| pa | packages | Список всех доступных или установленных пакетов |
| lr | repos | Перечислите все репозитории |
| ar | addrepo | Добавить репозиторий |
| rr | removerepo | Удалить репозиторий |
| ref | refresh | Обновить метаданные репозитория |
| clean | clean | Очистить кэш и метаданные |
Обновить базу пакетов
Начнём с одной из наиболее часто используемых команд Zypper: zypper ref (или zypper refresh), которая обновляет базу пакетов. При её выполнении Zypper связывается с каждым сервером репозитория и загружает последние метаданные — списки пакетов, версии, зависимости и информацию об обновлениях.
sudo zypper ref
Помните, что при обновлении ничего не устанавливается. Оно просто гарантирует, что в вашей системе будет самая актуальная информация о пакетах перед проверкой или установкой обновлений.
В большинстве рабочих процессов это первый шаг перед выполнением таких команд, как zypper lu, zypper up, или zypper dup, поскольку эти операции зависят от актуальности метаданных.
Проверить наличие обновлений пакетов
zypper lu (или zypper list-updates) автоматически обновляет метаданные репозитория, если они устарели, и выводит список всех пакетов в вашей системе с более новыми версиями. Эта команда ничего не устанавливает — она предназначена исключительно для получения информации.
sudo zypper lu
Каждая строка, отмеченная v, указывает на пакет с более новой версией, а также на его репозиторий, текущую версию, доступную версию и архитектуру.
Как вы, наверное, уже догадались, вам не нужно запускать zypper ref перед zypper lu, потому что zypper lu фактически обновляет метаданные репозитория, когда они устаревают.
Применить обновления пакетов
zypper up (или zypper update) — ещё одна из наиболее часто используемых команд Zypper, которая устанавливает в вашей системе все доступные обновления обычных пакетов. Она использует текущие метаданные репозитория, поэтому при необходимости Zypper автоматически обновляет репозитории перед продолжением работы.
sudo zypper up
Полное обновление системы
zypper dup (или zypper dist-upgrade) может использоваться вместо zypper up, поскольку оно также устанавливает все доступные обновления. Тем не менее при необходимости оно может делать больше: менять поставщиков пакетов, устанавливать переименованные пакеты и удалять старые или устаревшие пакеты, чтобы система соответствовала включенным репозиториям.
sudo zypper dup
Большинство обновлений выглядят одинаково в обеих командах, но если пакет требует удаления старых компонентов или перехода в другой репозиторий, только zypper dup может выполнить эти изменения. Именно поэтому эта команда используется для обновления дистрибутива и иногда может удалять пакеты, которые больше не предоставляются ни одним репозиторием.
Поиск пакетов
Используйте zypper se (или zypper search) для поиска пакетов по названию или описанию. Эта команда выполняет поиск во всех включенных репозиториях и отображает соответствующие результаты, включая установленные и доступные пакеты. Например:
zypper se firefox
В столбце S отображается статус пакета (например, i означает, что пакет установлен), затем следует столбец Name с точным названием пакета, столбец Summary с кратким описанием и столбец Type с указанием того, является ли пакет обычным, шаблонным или относится к другому типу.
Если вы хотите выполнить поиск только среди установленных пакетов, добавьте параметр -i:
zypper se -i firefox
Это фильтрует результаты, чтобы отображались только установленные пакеты с указанным именем. Если ничего не возвращается, значит, пакет не установлен.
Установка пакетов
Используйте zypper in (или zypper install) для добавления новых пакетов в вашу систему из включенных репозиториев. Команда автоматически разрешает зависимости и устанавливает все необходимое для запуска выбранного пакета. Например:
sudo zypper in chromium
Чтобы установить несколько пакетов одновременно, перечислите их названия через пробел.
sudo zypper in chromium htop vlc
Удаление пакетов
Используйте zypper rm (или zypper remove) для удаления пакетов из вашей системы. Эта команда также удаляет зависимости, которые больше не нужны, если только они не требуются другим установленным пакетам. Например:
sudo zypper rm chromium
Как и в случае с командой установки, чтобы удалить несколько пакетов из вашей системы openSUSE, введите их названия одно за другим, разделяя их пробелом.
sudo zypper rm chromium htop vlc
Показать информацию о пакете
Используйте zypper if (или zypper info) для просмотра подробной информации о пакете. Сюда входит информация о версии, поставщике, репозитории, статусе установки, кратком описании, описании и зависимостях. Например:
zypper info chromium
Это самый быстрый способ проверить в openSUSE, какая версия пакета установлена и в каком репозитории она находится.
Проверка установленных пакетов
Используйте zypper ve (или zypper verify), чтобы проверить, удовлетворены ли все установленные пакеты необходимыми зависимостями. Если чего-то не хватает или что-то не работает — часто это происходит после удаления файлов вручную, прерванных обновлений или смешивания репозиториев, — эта команда выявляет проблемы и предлагает решения.
sudo zypper ve
Zypper просканирует систему, сообщит о любых проблемах с зависимостями и, при необходимости, предложит установить или удалить пакеты для восстановления согласованности.
Очистить кэшированные данные
Используйте zypper clean, чтобы удалить кэшированные данные репозитория, такие как загруженные файлы пакетов и метаданные. Это поможет освободить место на диске и заставит Zypper загрузить свежие метаданные при следующем обращении к репозиторию.
sudo zypper clean
Управление репозиториями программного обеспечения
Zypper обеспечивает полный контроль над репозиториями программного обеспечения, которые ваша система openSUSE использует для установки и обновления пакетов. С помощью нескольких простых команд вы можете просматривать, добавлять, удалять, включать, отключать или настраивать параметры репозиториев прямо из командной строки, что позволяет вам точно контролировать процесс получения программного обеспечения вашей системой.
Список репозиториев
Используйте zypper lr (или zypper repos) для просмотра списка всех настроенных репозиториев в вашей системе. Выходные данные показывают псевдоним, имя, включенное / отключенное состояние каждого репозитория, настройку автоматического обновления, приоритет и URL-адрес.
zypper lr
Добавить репозиторий
Если вы хотите добавить репозиторий в свою систему openSUSE, используйте zypper ar (или zypper addrepo), чтобы добавить в систему новый репозиторий программного обеспечения. Вы можете указать URL-адрес репозитория и присвоить ему псевдоним, который позже появится в zypper repos. Например:
sudo zypper addrepo -f https://download.opensuse.org/repositories/network/openSUSE_Leap_16.0/ network
После добавления репозитория zypper будет использовать его при установке или обновлении пакетов. При необходимости вы также можете включить автоматическое обновление или задать приоритет с помощью дополнительных параметров.
В приведённом выше примере опция -f включает автоматическое обновление. Однако, если репозиторий уже добавлен, вы можете включить автоматическое обновление с помощью следующей команды:
sudo zypper modifyrepo -f netwrok
Здесь «network» — это псевдоним репозитория.
Удалить репозиторий
Используйте zypper rr (или zypper removerepo) для удаления репозитория из вашей системы. Вы можете удалить его, указав его псевдоним или числовой идентификатор, как показано в zypper lr.
sudo zypper rr network
Включить/отключить репозиторий
Zypper позволяет не только добавлять или удалять репозитории, но и включать или отключать уже имеющиеся. Используйте zypper mr -d (или zypper modifyrepo -d) для отключения репозитория. Вы можете обратиться к нему по псевдониму или по числовому идентификатору, указанному в zypper lr.
sudo zypper modifyrepo -d network
Аналогично, чтобы включить его, используйте zypper md -e (или zypper modifyrepo -e):
sudo zypper modifyrepo -e network
Шаблоны
Наконец, я покажу вам, как использовать удобную концепцию, которую в других дистрибутивах часто называют метапакетами, а в openSUSE — шаблонами. Так что же это такое?
Если вкратце, шаблоны — это заранее определённые группы пакетов, которые openSUSE использует для установки полноценных функциональных сред или ролей. Вместо того чтобы устанавливать пакеты по одному, шаблон объединяет всё необходимое для выполнения конкретной задачи, например для установки среды рабочего стола, инструментов разработки или серверных служб.
Главное преимущество? Установка шаблона гарантирует, что вы получите все необходимые компоненты, рекомендуемые дополнительные компоненты и вспомогательные библиотеки за один шаг, что упрощает добавление основных функций системы без необходимости вручную отслеживать отдельные пакеты.
Список шаблонов
Используйте zypper pt (или zypper patterns) для просмотра всех доступных шаблонов в системе. В выводе команды указано название каждого шаблона, информация о том, установлен ли он, а также краткое описание его возможностей.
zypper pt
Установка шаблона
Допустим, вы хотите установить среду рабочего стола Cinnamon с помощью одной команды. Как и следовало ожидать, шаблон называется cinnamon. Используйте zypper in -t pattern, а затем название шаблона, чтобы установить все пакеты, входящие в эту группу.
sudo zypper in -t pattern cinnamon
Как видите, при этом устанавливается вся среда рабочего стола Cinnamon (паттерн), включая обязательные и рекомендуемые компоненты.
Однако есть одна особенность, о которой вам следует знать. При удалении шаблона, как и следовало ожидать, не удаляются пакеты, которые он изначально устанавливал. Вместо этого отдельные пакеты остаются установленными до тех пор, пока вы не удалите их вручную или пока они не станут «бесхозными» из-за изменений в других зависимостях. Итак, если вы выполните команду:
sudo zypper rm -t pattern cinnamon
Будет удалён только сам шаблон, но не входящие в него пакеты. Другими словами, при удалении шаблона удаляются только эти метаданные, а не сотни реальных пакетов Cinnamon, установленных ранее. Чтобы удалить их, вам придётся делать это вручную для каждого пакета.
Заключение
В этой статье мы показали вам основные команды Zypper для эффективного управления программным обеспечением в openSUSE. Теперь вы знаете, как устанавливать, обновлять, искать и удалять пакеты, работать с шаблонами и управлять репозиториями из командной строки.
Да, YaST — отличный инструмент с графическим интерфейсом, который может справиться со всем этим, но знание Zypper даст вам более глубокое понимание, необходимое для того, чтобы не полагаться исключительно на графические инструменты. И хотя YaST охватывает все аспекты работы в среде рабочего стола, для управления программным обеспечением на сервере необходимо освоить Zypper в командной строке.
Конечно, менеджер пакетов Zypper предоставляет гораздо больше возможностей. Я настоятельно рекомендую вам ознакомиться с ними в официальной документации openSUSE или на веб-сайте SUSE.
Спасибо, что уделили время. Как всегда, мы будем рады вашим комментариям.