~Rami ₪ MANUALS

רמי

SUBJECT: Zypper: Расширенное руководство по командам (OpenSUSE и SUSE Linux Enterprise)

AUTHOR: Rami Rosenfeld

DATE: 29/04/23; upd. 01/05/23

TIME: 20.00

LANG: ru, en

LICENSE: GNU FDL 1.3

TAGS: gnu, gnome, software, opensource, linux, system, man, manual, bash, privacy, security, suse, opensuse, systemd, systemctl, apparmor, selinux, firewalld, yast, rpm, zypper

Zypper: Расширенное руководство по командам (OpenSUSE и SUSE Linux Enterprise)

INTRO

Как отлично знают друзья и знакомые, моя единственная любовь - Красная Шапочка. Но, увы, в то же самое время я успеваю изменять ей :) с замечательной немецкой девочкой Сюзи. И (исходя из появившегося опыта) хочу честно признать - система управления пакетами и репозиториями zypper (даже в сравнении с yum/dnf) вне всяких сомнений является лучшей в мире.

Итак, чтобы не забыть протестированные команды, набросал для себя подробное руководство. Хочу обратить также особое внимание, что в zypper широко используется система алиасов - сокращения сложных команд и их опций. И это сильно облегчает работу с ОС и прикладным ПО.

Примечание: На самом деле, правильнее писать: "openSUSE" (т.е. со строчной буквы).

NOTE

1. Справка Zypper

Варианты:

man zypper

zypper

zypper help install

zypper update --help

2. Управление репозиториями

zypper repos

zypper lr

zypper repos -d

zypper lr -d

zypper repos -p

zypper lr -p

zypper addrepo <options> <URI> <alias>

zypper ar <options> <URI> <alias>

Примеры ("update" - произвольно задаваемое имя репозитория, т.е. его алиас):

zypper addrepo http://download.opensuse.org/update/15.4/ update

zypper ar http://download.opensuse.org/update/15.4/ update

zypper addrepo ~/path/to/repo repo_name

Примеры:

zypper addrepo ~/repo-my MY-repo

zypper ar ~/repo-test TEST-repo

zypper refresh

zypper ref

zypper refresh repo_name

Команда отключит репозиторий № 4 из списка имеющихся:

zypper modifyrepo --disable 4

zypper mr -d 4

Команда отключит кэширование rpm-файлов для всех репозиториев (локальных и удаленных):

zypper mr -Ka

Последние две команды вызовут справку по модификации репозиториев:

zypper modifyrepo --help

zypper mr --help

zypper namerepo 4 new_repo_name

zypper nr 4 new_repo_name

zypper removerepo repo_name

zypper rr repo_name

zypper removerepo --local

zypper rr -l

zypper removerepo --remote

zypper rr -t

zypper modifyrepo --priority 100 repo_name

zypper mr -p 100 repo_name

Проверка произведенных изменений:

zypper repos --priority

zypper lr -p

zypper modifyrepo --keep-packages --all

zypper mr -ka

Примечание: Данная команда включит кэширование файлов для всех активных репозиториев (локальных и удаленных).

zypper modifyrepo --keep-packages 6

zypper mr -ka repo_name

Примечание: Используйте алиас репозитория или его порядковый номер в списке имеющихся репозиториев.

zypper mr --keep-packages --remote

zypper mr -kt

zypper modifyrepo --keep-packages --remote --refresh

zypper mr --keep-packages --remote --refresh

zypper mr -ktf

zypper clean --all repo_name

Экспорт:

zypper --export /backups/repos/file_name.repo

zypper lr --export /backups/repos/file_name.repo

Импорт:

zypper addrepo /backups/repos/file_name.repo

zypper ar /backups/repos/file_name.repo

3. Работа с пакетами, исходными кодами и зависимостями

zypper search package_name

zypper se package_name

zypper search --installed-only package_name

zypper se -i package_name

Справку по поиску:

zypper se --help

zypper info package_name

zypper if package_name

zypper info --match-substrings packag

zypper if -s packag

Примечание: Под "packag" подразумевается неполное имя пакета "package_name"

zypper install package_name

zypper in package_name_1 package_name_2

Примечание: Инсталлируемые пакеты будут скачаны из репозиториев и сохранены по адресу:

/var/cache/zypper/source-download

zypper install ~/path/to/file/package_name.rpm

zypper in ~/path/to/file/package_name.rpm

zypper download package_name.rpm

Пакет будет скачан из репозитория и сохранен по адресу:

/var/cache/zypp/packages/<repo>/<arch>/

zypper install 'package_name<8.3'

zypper in 'package_name<8.3'

zypper install package_name-8.3.4

zypper in package_name-8.3.4

zypper install package_name.i386

zypper in package_name.i386

zypper install 'package_name.i386<8.3'

zypper in 'package_name.i386<8.3'

zypper install package_n*

zypper in package_n*

Примечание: Эта команда установит ВСЕ пакеты, содержащие в своем имени "package_n" и любые иные символы после "n".

zypper install -t pattern pattern_name

zypper in -t pattern pattern_name

zypper install package_name upd:some_repo_name

zypper in package_name upd:some_repo_name

zypper install package_name repo_name

zypper in package_name repo_name

zypper install emacs -vi

zypper in emacs -vi

Примечание: Эта команда одновременно удалит пакет консольного редактора vi (который есть "Число Зверя") :) и установит пакет непревзойденного б-гоугодного редактора emacs (за авторством RMS)... Поздравляю!

zypper remove package_name

zypper rm package_name_1 package_name_2

zypper remove -t pattern pattern_name

zypper rm -t pattern pattern_name

zypper remove --clean-deps package_name

zypper rm -u package_name

Примечание: я рекомендую использовать именно эту команду при удалении пакетов.

zypper source-install package_name

zypper si package_name

Примечание: Команда, приведенная выше, скачает все пакеты, необходимые для компилляции пакета "package_name". По умолчанию пакеты будут инсталлированы по адресу:

/usr/src/packages/

zypper install -D package_name

zypper in -D package_name

Примечание: Данная команда загрузит только исходные коды пакета "package_name".

zypper source-install --build-deps-only package_name

zypper si -d package_name

Примечание: В данном случае будут загружены только зависимости (без основного пакета, который они обслуживают). Это полезно в случае, если нужно определить - какие зависимости требуются для установки того или иного пакета.

Инсталляция (варианты):

zypper --quiet install package_name

zypper --quiet in package_name

zypper install -y package_name

Удаление (варианты):

zypper –quiet remove package_name

zypper –quiet rm package_name

zypper --quiet rm -y package_name

zypper --quiet remove --no-confirm package_name

zypper remove --no-confirm package_name

zypper install --oldpackage package_name=8.3.4

zypper install --force package_name=8.3.4

zypper in --oldpackage package_name=8.3.4

zypper in -f package_name=8.3.4

zypper locks

zypper ll

Примечание: Вы имеете право заблокировать некоторые пакеты (запретив им обновление и удаление). Эти действия гипотетически могут привести к неразрешимым зависимостям при обновлении ОС и прикладных пакетов. В подобном случае рекомендовано проверить список заблокированных пакетов.

zypper addlock package_name

zypper al package_name

zypper removelock package_name

zypper rl package_name

4. Управление операционной системой

zypper list-updates

zypper lu

Примечание: Команда, приведенная выше, покажет только пакеты с удовлетворенным зависимостями. Чтобы показать все обновления, следует использовать команду, приведенную ниже.

zypper list-updates --all

zypper lu -a

zypper list-updates --repo repo_name

zypper lu -r repo_name

zypper update

zypper up

Примечание: Эта команда обновит все системные и прикладные пакеты. В целях поддержания стабильности и устойчивости на особо критических участках деятельности, ее рекомендуется применять последовательно, т.е. если вас не устраивает установка одних лишь патчей (см. ниже команду zypper patch) - "точечных" исправлений, ликвидирующих отдельные уязвимости и т.п.

Примечание: Команда характерна для OpenSUSE Leap; для OpenSUSE Tumbleweed рекомендовано применять zypper dist-upgrade (подробности см. ниже).

zypper list-patches

zypper list-patches --all

zypper lp

zypper lp -a

zypper list-patches --bugzilla=123456

zypper list-patches --bugzilla=CVE-2023-1234

zypper patch

zypper patch --auto-agree-with-licenses

zypper patch --dry-run

zypper patch -D

Примечание: Опция --auto-agree-with-licenses позволит автоматически принять лицензионные соглашения; опция -–dry-run - позволит проанализировать предлагаемые изменения без реальной установки патчей.

Примечание: Установка патчей, т.е. "точечных" исправлений, ликвидирующих отдельные уязвимости (без обновления всей ОС и прикладного ПО, т.е. без выполнения команды zypper update) - наиболее безопасный и консервативный метод, применимый для стабильного дистрибутива OpenSUSE Leap.

Примечание: Команда zypper patch бесполезна для OpenSUSE Tumbleweed, т.к. он является т.н. "роллинг-релизом" (непрерывно обновляемой ОС).

zypper refresh --services

zypper refresh -s

Примечание: Опция обновления сервисов отключена по умолчанию.

zypper verify

zypper ve

zypper verify --details

zypper ve --details

Примечание: Опция --details позволит вывести детализированную информацию.

zypper patch --updatestack-only

zypper packages --orphaned

Важно! Удаляйте такие пакеты только если они действительно не используются в качестве зависимостей или в иных процессах!

zypper ps

Примечание: При удалении пакетов и их зависимостей, некоторые могут использоваться текущими процессами ОС. Данная команда покажет их список. Используйте рестарт (перезапуск) процессов после действий, связанных с удалением этих файлов.

zypper ps-ss

zypper clean

zypper cc

Примечание: Команда, приведенная выше, очистит только кэш всех или избранных репозиториев. Для совместного удаления метадаты репозитория и его кэша, используйте команду, приведенную ниже.

zypper clean --all repo_name

zypper info --requires package_name

zypper if --requires package_name

zypper info --recommends package_name

zypper if --recommends package_name

zypper dist-upgrade

zypper dup

Примечание: Команда проанализирует, сохранит и применит все состояния активных репозиториев, инсталляций и downgrade-пакетов к новой версии ОС. Ее следует отличать от команды zypper update (см. выше). Примечание: Необходимо также осознавать и дифференцировать последствия ее выполнения:

1) zypper dist-upgrade является приоритетным способом обновления OpenSUSE Tumbleweed - в данном случае будет обновлен "снапшот" (текущий "срез" или "снимок) ОС - т.е. kernel, systemd и прочие составляющие и компоненты.

2) В OpenSUSE Leap данная команда обновит минорную версию ОС на следующую (например: 15.3 - на 15.4 и т.п.).

₪ Back to home ₪

🄯 Rami Rosenfeld, 2023. GNU FDL 1.3.