Home Wiki > Zypper/Использование
Sign up | Login

Zypper/Использование

tagline: Материал из openSUSE

Geeko Эта статья о том, как использовать Zypper, консольный менеджер пакетов, использующий библиотеку управления пакетами Libzypp. Синтаксис zypper'а схож с rug, но команды и параметры настройки стали отличаться от rug, как впрочем и производимые действия и поведение. Впрочем, zypper как и прежде может работать в режиме совместимости с rug

.

Содержание


Основные параметры


Следующие параметры могут быть использованы с любыми другими действиями zypper`а:

  • -V, --version
    Выводит на экран номер версии.
  • -v, --verbose
    Вывод отладочной информации, выводит на экран полные сообщения возникших исключений и ошибок.
  • -t, --terse
    Сокращенный вывод информации о совершаемых действиях и возникших исключениях и ошибок.
  • -s, --table-style
    Выводит информацию в виде таблицы.
  • -r, --rug-compatible
    Включает режим совместимости с rug.
  • --non-interactive
    Включает неинтерактивый режим. (Находится в разработке) В этом режиме zypper полностью автоматизирует процесс, не спрашивая пользователя о подтверждении тех или иных действий, используя разумные (используемые по умолчанию) варианты ответов. Эту опцию можно использовать для запуска zypper`а по расписанию в cron или как часть исполняемого скрипта. Данный режим в настоящее время находится в стадии разработки и тестирования, поэтому вполне возможны сбои и проблемы при его использовании. Пожалуйста, сообщайте о найденных багах по адресу bug report.

Команды


Zypper использует ряд команд (она показана как [команда] в секции SYNTAX). Каждая команда может принимать ряд дополнительных опций, которые изложены в секции ОСНОВНЫЕ ПАРАМЕТРЫ.

Наиболее часто используемая команда это "zypper update", которая загружает из сети и устанавливает обновления тех компонентов и сервисов, которые были установлены ранее в вашей системе. Если вы просто хотите обновить программное обеспечение - это та единственная команда, которая вам нужна (прим. переводчика: по умолчанию "zypper update" не проверяет наличие новых версий программ, она лишь обновляет те компоненты, которые разработчики openSuSE отнесли к важным).

Получение помощи

Основная команда (прим. переводчика: команда, через запятую ее сокращенный аналог):

help, -h

Выводит на экран помощь. Чтобы вывести на экран помощь по возможным командам zypper'а, используйте команду:

zypper -h

Чтобы получить помощь по определенной команда zypper'а, используйте:

zypper -h [команда]

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

Перечень репозитариев

Основная команда:

repos, lr

Отображает перечень репозитариев (источников установки).

Пример вывода команды:

$ zypper lr
# | Alias                 | Name                  | Enabled | Refresh
--+-----------------------+-----------------------+---------+--------
1 | packman               | Packman 11.1          | Yes     | No
2 | fate                  | fate                  | No      | No
3 | openSUSE-11.1-Updates | Updates for 11.1      | Yes     | Yes
4 | repo-oss              | openSUSE-11.1-Oss     | Yes     | No
5 | repo-non-oss          | openSUSE-11.1-Non-Oss | Yes     | No
6 | repo-debug            | openSUSE-11.1-Debug   | No      | No

Примеры использования:

zypper lr -u       # Для включения вывода  URI в таблице
zypper lr -d       # Для включения в таблицу других параметров репозитария
zypper lr -P       # для включения приоритета репозитариев в таблицу и сортировки по ним
zypper lr -e my    # экспортирует все записи о репозитариях в файл 'my.repo'

Добавление репозитария

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

addrepo, ar

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

  • -r, --repo <FILE.repo> - Читает URI (ссылка на репозиторий) и маску (имя, под которым будет отображаться репозиторий) из файла.

Пример вывода:

$ zypper ar http://download.videolan.org/pub/vlc/SuSE/11.1 vlc
Adding repository 'vlc' [done]
Repository 'vlc' successfully added
Enabled: Yes
Autorefresh: No
URI: http://download.videolan.org/pub/vlc/SuSE/11.1

Примеры использования:

zypper ar http://download.opensuse.org/repositories/X11:/XGL/openSUSE_11.1/X11:XGL.repo  # через файл .repo
zypper ar -c ftp://some.download.site myalias   # проверить репозитарий перед добавлением
zypper ar my/dir/with/rpms local                # добавление локального каталого с rpm файлами как репозитария

Обновление репозитариев

refresh, ref

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

Пример вывода:

$ zypper refresh
Downloading repository 'Packman 11.1' metadata [done]
Building repository 'Packman 11.1' cache [done]
Downloading repository 'Updates for 11.1' metadata [done]
Building repository 'Updates for 11.1' cache [done]
Repository 'openSUSE-11.1-Oss' is up to date.
All repositories have been refreshed.

Если включено автообновление для репозитария, то вам не нужно беспокоиться об обновлении, репозитарии обновляются сами когда это необходимо. Но некоторые люди предпочитают контролировать момент когда происходит обновление, (например чтобы обновление не происходило когда вы просто хотите посмотреть 'zypper info krusader'). Для подробной информации смотрите man zypper

Примеры использования:

zypper ref packman main  # Вы можете задать репозитарии, которые необходимо обновить
zypper ref -f upd        # Принудительное обновление репозитария 'upd'

Удаление репозитария

removerepo или rr

Удаляет репозитарий (прим. переводчика: удаляет ссылку на репозитарий из базы, т.е. при поиске пакетов и обновлении этот репозитарий больше учитываться не будет. Удалять можно как по URI (ссылке на репозитарий, так и по маске)).

Пример:

$ zypper rr vlc 1 23 foo
Repository 23 not found by alias, number or URI.
Repository foo not found by alias, number or URI.
Removing repository 'repo-debug' [done]
Repository 'repo-debug' has been removed.
Removing repository 'vlc' [done]
Repository 'vlc' has been removed.

Изменение репозитариев

modifyrepo, mr

Запретить репозитарий #6

$ zypper mr -d 6
Repository 'repo-non-oss' has been sucessfully disabled.

Разрешить автообновление и кеширование rpm файлов для репозитария 'packman' и установить приоритет 70:

$ zypper mr -rk -p 70 packman
Autorefresh has been enabled for repository 'packman'.
RPM files caching has been enabled for repository 'packman'.
Repository 'packman' priority has been set to 70.

Запретить кеширование RPM файлов для всех репозитариев:

$ zypper mr -Ka
Nothing to change for repository 'local'.
RPM files caching has been disabled for repository 'packman'.
Nothing to change for repository 'fate'.
Nothing to change for repository 'upd'.
Nothing to change for repository 'repo-oss'.
Nothing to change for repository 'repo-non-oss'.

Разрешить кеширование файлов RPM для всех репозитариев:

$ zypper mr -ka
RPM files caching has been enabled for repository 'repo-non-oss'.
RPM files caching has been enabled for repository 'Main Repository (OSS)'.
RPM files caching has been enabled for repository 'Main Repository (NON-OSS)'.
RPM files caching has been enabled for repository 'openSUSE-11.1-Updates'.

Переименование репозитария

namerepo, nr
$ zypper nr 3 upd
Repository 'openSUSE-11.1-Updates' renamed to 'upd'.

Данная команда сейчас может изменять только 'alias' репозитария. Если Вы хотите изменить отображаемое имя, воспользуйтесь командой mr.

Сохраняйте алиасы простыми и короткими для простого использования в качестве аргумента команд с ключом --repo. Использование алиасов безопаснее чем использование номеров репозитариев (так как они могут поменять и Вы можете совершить ошибку) и проще чем использование URI (так как они длинные и необходимо использовать копирование/вставку)

Импорт/Экспорт

repos --export, lr -e 

Вы можете экспортировать список всех ваших репозитариев и импортировать его позже или на другой машине.

Управление пакетами

Указание пакетов

Есть несколько способов для указания пакетов, которые вы хотите удалить или установить.

  • по имени приложения
    zypper in eclipse
    zypper in qt
  • по имени приложения и/или по архитектуре и/или версии
    zypper in 'zypper<0.12.10'
    zypper in zypper.i586=0.12.11
  • по имени пакета (--name)
    zypper in -n ftp
  • по имени пакета и репозитарию (implies --name)
    zypper in factory:zypper
  • по имени пакета с использованием маски
    zypper in yast*ftp*
  • указывая .rpm файл пакета для установки


Установка пакетов

Основная команда:

install, in [имя пакета] 
Устанавливает пакет. 

Вы можете установить пакеты по имени...

$ zypper install git
Reading installed packages...
The following NEW packages are going to be installed:
  subversion-perl sqlite3 perl-DBD-SQLite git-svn git-cvs git


Overall download size: 1.1 M. After the operation, additional 4.6 M will be used.
Continue? [YES/no]:
Downloading package subversion-perl-1.5.0-96.1.x86_64 (1/6), 950.0 K (4.1 M unpacked)
Downloading: subversion-perl-1.5.0-96.1.x86_64.rpm [done]
Installing: subversion-perl-1.5.0-96.1 [done]
Downloading package sqlite3-3.5.7-17.1.x86_64 (2/6), 30.0 K (40.0 K unpacked)
Downloading: sqlite3-3.5.7-17.1.x86_64.rpm [done]
Installing: sqlite3-3.5.7-17.1 [done]
Downloading package perl-DBD-SQLite-1.14-41.1.x86_64 (3/6), 44.0 K (103.0 K unpacked)
Downloading: perl-DBD-SQLite-1.14-41.1.x86_64.rpm [done]
Installing: perl-DBD-SQLite-1.14-41.1 [done]
Downloading package git-svn-1.5.4.5-26.1.x86_64 (4/6), 66.0 K (195.0 K unpacked)
Downloading: git-svn-1.5.4.5-26.1.x86_64.rpm [done]
Installing: git-svn-1.5.4.5-26.1 [done]
Downloading package git-cvs-1.5.4.5-26.1.x86_64 (5/6), 63.0 K (205.0 K unpacked)
Downloading: git-cvs-1.5.4.5-26.1.x86_64.rpm [done]
Installing: git-cvs-1.5.4.5-26.1 [done]
Downloading package git-1.5.4.5-26.1.x86_64 (6/6), 10.0 K (3.0 K unpacked)
Downloading: git-1.5.4.5-26.1.x86_64.rpm [done]
Installing: git-1.5.4.5-26.1 [done]

...или по приложениям, которые они предоставляют

$ zypper in MozillaFirefox \< 3
Reading installed packages...
'MozillaFirefox' providing 'MozillaFirefox<3' is already installed.
Nothing to do.
<pre>

<pre>
$ zypper in MozillaFirefox \>= 3
Reading installed packages...

The following packages are going to be upgraded:
  mozilla-xulrunner190-translations MozillaFirefox mozilla-xulrunner190-gnomevfs
mozilla-xulrunner190 MozillaFirefox-translations


The following package is going to be REMOVED:
  mozilla-xulrunner190-lang


Overall download size: 11.0 M. After the operation, 12.9 M will be freed.
Continue? [Y/n/p/?]:
$ zypper in 'libqtiff.so()(64bit)'
Reading installed packages...
'libqt4-x11' providing 'libqtiff.so()(64bit)' is already installed.
Nothing to do.

Другие примеры:

zypper in yast*                     # устанвоить все модули yast
zypper in -t pattern lamp_server    # установить шаблон lamp_server (пакеты неоюходимые для сервера LAMP)
zypper in vim -emacs                # установить vim и удалить emacs за одну команду
zypper in amarok packman:libxine1   # установить libxine1 из репозитария packman и amarok из любого репозитария
zypper in bitchx-1.1-81.x86_64.rpm  # установить пакет bitchx из локального каталога
zypper in -f subversion             # принудителная переустановка subversion

Удаление пакета

Основная команда:

remove, rm

Удаляет пакет (приложение).

Команда remove похожа на команду install, но делает обратное действие :O)

$ zypper remove sqlite
Reading installed packages...

The following packages are going to be REMOVED:
  sqlite3 perl-DBD-SQLite git-cvs git


After the operation, 351.0 K will be freed.
Continue? [YES/no]: n

Пакеты с исходниками и зависимости для сборки

source-install, si
$ zypper si zypper
Reading installed packages...

The following NEW packages are going to be installed:
  libzypp-devel libsatsolver-devel


The following source package is going to be installed:
  zypper


Overall download size: 1.5 M. After the operation, additional 6.7 M will be used.
Continue? [YES/no]:

Вы можете установить только пакеты с исходным кодом или только зависимости для сборки:

zypper in -D zypper    # установить только пакеты с исходниками (без зависимостей сборки)
zypper in -d zypper    # только зависимости сборки (без пакетов исходников)

Обновление пакетов

update, up

Следующие команды обновляют пакеты, для которых есть более новые версии. Смотрите там же [Update Management] для подробной информации.

zypper up                           # обновить все пакеты самыми новыми версиями
zypper up libzypp zypper            # обновить libzypp и zypper
zypper in sqlite3                   # обновить sqlite3 или установить, если еще не установлено

Запросы

Поиск пакетов

Основная команда:

search, se

Ищет пакеты по маске (прим. переводчика: маска в данном случаем это либо полное имя пакета, либо его часть). Принимает в качестве параметров следующие флаги:

  • --match-all - Осуществляет поиск на соответствие всем указанным маскам (по умолчанию)
  • --match-any - Осуществляет поиск на соответствие любой из указанных масок
  • --match-substrings - Используемые маски могут быть частью слова (по умолчанию)
  • --match-words - Используемые маски могут быть только целым словом
  • --match-exact - Ищет по точному имени пакета
  • -d, --search-descriptions - Ищет маску так же в резюме и описании пакета
  • -c, --case-sensitive - Включает режим регистрозависимости
  • -i, --installed-only - Отображает только уже установленные пакеты
  • -u, --uninstalled-only - Отображает только не установленные пакеты
  • -t, --type - Ищет только пакеты определенного типа
  • --sort-by-name - Сортирует пакеты по имени (по умолчанию)
  • --sort-by-catalog - Сортирует пакеты по репозиториям, в которых они были найдены

Пример:

$ zypper se sqlite
Reading installed packages...

S | Name                     | Summary                                                        | Type
--+--------------------------+----------------------------------------------------------------+--------
  | libapr-util1-dbd-sqlite3 | DBD driver for SQLite 3                                        | package
i | libgda-3_0-sqlite        | Sqlite Provider for GNU Data Access (GDA)                      | package
  | libqt4-sql-sqlite        | Qt 4 sqlite plugin                                             | package
i | libsqlite3-0             | Shared libraries for the Embeddable SQL Database Engine        | package
  | libsqlite3-0-32bit       | Shared libraries for the Embeddable SQL Database Engine        | package
  | mediatomb-sqlite         | UPnP AV MediaServer                                            | package
i | mono-data-sqlite         | Database connectivity for Mono                                 | package
  | pdns-backend-sqlite2     | SQLite 2 backend for pdns                                      | package
  | pdns-backend-sqlite3     | SQLite 3 backend for pdns                                      | package
i | perl-DBD-SQLite          | The DBD::SQLite is a self contained RDBMS in a DBI driver      | package
i | php5-sqlite              | PHP5 Extension Module                                          | package
  | python-sqlite2           | Python bindings for sqlite 2                                   | package
  | qt3-sqlite               | SQLite Database Plug-In for Qt                                 | package
  | rekall-sqlite            | Rekall sqlite Database Backend                                 | package
  | rubygem-sqlite3          | A Ruby interface for the SQLite3 database engine               | package
i | sqlite2                  | Embeddable SQL Database Engine                                 | package
  | sqlite2-32bit            | Embeddable SQL Database Engine                                 | package
  | sqlite2-devel            | Embeddable SQL Database Engine                                 | package
i | sqlite3                  | Embeddable SQL Database Engine                                 | package
  | sqlite3-devel            | Embeddable SQL Database Engine                                 | package
  | sqlite3-tcl              | Tcl binding for SQLite                                         | package
  | tntdb1-sqlite            | Tntdb is a c++-class-library for easy database-access - sqlite | package
  | ulogd-sqlite             | SQLite output plugin for ulogd  

i в первой колонке указывает на то, что пакет уже установлен. Для просмотра всех доступных версий пакета используйте --details/-s опции:

$ zypper search -s --match-exact virtualbox-ose
Reading installed packages...

S | Name           | Type    | Version    | Arch   | Repository
--+----------------+---------+------------+--------+------------------------------------
v | virtualbox-ose | package | 1.6.2-2.1  | x86_64 | VirtualBox OSE
i | virtualbox-ose | package | 1.5.6-33.1 | x86_64 | openSUSE-11.1-Oss
v | virtualbox-ose | package | 1.5.6-20.5 | x86_64 | VirtualBox OSE (
v | virtualbox-ose | package | 1.6.2-2.1  | i586   | VirtualBox OSE
v | virtualbox-ose | package | 1.5.6-33.1 | i586   | openSUSE-11.1-Oss
v | virtualbox-ose | package | 1.5.6-20.3 | i586   | VirtualBox OSE

i означает что данная версия уже установлена, v означает, что одна из версий этого пакета уже установлена.

Другие примеры:

zypper se -dC --match-words RSI   # поиск акронима RSI  (чувствительно к регистру), так в кратком и подробном описаниях
zypper se 'yast*'                 # показать все пакеты начинающиеся на 'yast' (заключайте строки в кавычки)
zypper se -r packman              # показать все пакеты из репозитария 'packman' 
zypper se -i sqlite               # показать все установленые пакеты, содержащие строку  'sqlite' в их имени
zypper se -t pattern -r repo-oss  # показать все шаблоны из репозитария  'repo-oss'
zypper se -t product              # показать список всех доступных продуктов

Получение информации о пакете

info, if
$ zypper info amarok
Reading installed packages...


Information for package amarok:

Repository: Packman 11.1
Name: amarok
Version: 1.4.9.1-103.pm.1
Arch: x86_64
Vendor: packman.links2linux.de
Installed: Yes
Status: up-to-date
Installed Size: 12.1 M
Summary: Media Player for KDE
Description:
Amarok is a media player for all kinds of media, supported by aRts, GStreamer
or Xine (depending on the packages you install). This includes MP3, Ogg
Vorbis, audio CDs and streams.
It also supports audio effects of all kinds that are provided by aRts.
Playlists can be stored in .m3u or .pls files.

Amarok also provides audio file collection management, by using either an
embedded sqlite3, a MySQL or a PostgreSQL database.

команда отображает информацию о пакете 'amarok'

Другие примеры:

zypper info -t patch MozillaFirefox    # показать информацию о патче 'MozillaFirefox'
zypper patch-info MozillaFirefox       # то же что и предыдущее
zypper info -t pattern lamp_server     # показать информацию о шаблоне  'lamp_server'
zypper info -t product openSUSE-FTP    # показать информацию об указанном продукте

Зависимости

what-provides, wp

Список пакетов которые предоставляют программу:

$ zypper wp firefox
Reading installed packages...
S | Name           | Type    | Version     | Arch   | Repository
--+----------------+---------+-------------+--------+------------------
i | MozillaFirefox | package | 3.0-0.1     | x86_64 | Updates for 11.1
v | MozillaFirefox | package | 2.9.95-25.1 | x86_64 | openSUSE-11.1-Oss
v | MozillaFirefox | package | 3.0-0.1     | i586   | Updates for 11.1
v | MozillaFirefox | package | 2.9.95-25.1 | i586   | openSUSE-11.1-Oss

Эта команда похожа на rpm -q --whatprovides firefox, но rpm может делать запросы только в базе данных RPM (база данных установленных пакетов). Zypper, же может предоставляет список пакетов из любого репозитария, не только из установленых.

Другие запросы

Команды patches, packages, patterns, и products похожи на search -s -t [patch,package,pattern,product], но они отображают некоторую дополнительную информацию, специфичную для данного типа пакетов. Например для патчей отображается статус патчей (Needed/Security/Not Applicable). Команды list-updates и patch-check рассмотрены в статье Update Management.

Блокировки пакетов

locks или ll addlock или al removelock или rl

Блокировки пакетов служат для предотвращения изменений в пакетах в системе. Пакеты для которых есть активная блокировка не могут изменить свой статус; установленные пакеты не могут быть удалены или обновлены, еще не установленые пакеты не могут быть установлены.

Для блокировки всех пакетов начинающихся на 'yast2', выполните:

$ zypper al 'yast2*'
Reading installed packages...
Specified lock has been successfully added.

Список активных блокировок:

$ zypper ll
# | Name             | Type    | Repository
--+------------------+---------+-----------
1 | libpoppler3      | package | (any)
2 | libpoppler-glib3 | package | (any)
3 | yast*            | package | (any)

Для удаления блокировки выполните:

$ zypper rl yast2-packager
Reading installed packages...
The following query locks some of the objects you want to unlock:

type: package
match_type: glob
case_sensitive: on
solvable_name: yast2*

Do you want remove this lock? [YES/no]: y
Lock count has been succesfully decreased by: 1

Другие примеры:

zypper al zypper                   # заблокировать пакет 'zypper' (полное соответствие)
zypper al -r repo-oss virtualbox*  # ограничить блокировку только на репозитарий 'repo-oss' (разрешив установку из всех остальных)
zypper rl 3                        # удалить блокировку по номеру

Вы можете управлять блокировками непосредственно, редактируя locks file.


Утилиты

Проверка зависимостей

verify или ve

Вы можете оказаться со сломаной системой из-за проблем в зависимостях пакетов. Если какое-то приложение не может запуститься с сообщением о том что чего-то не хватает, вы можете выполнить проверку в zypper:

$ rpm -e --nodeps mozilla-xulrunner190
$ firefox
Could not find compatible GRE between version 1.9.0 and 1.9.0.
$ zypper ve
Reading installed packages...
Some of the dependencies of installed packages are broken. In order to fix these dependencies,
the following actions need to be taken:

The following NEW package is going to be installed:
  mozilla-xulrunner190


Overall download size: 6.5 M. After the operation, additional 23.5 M will be used.
Continue? [YES/no]: y

Установка новых рекомендованных пакетов

install-new-recommends или inr

Эта команда ищет и устанавливает новые рекомендуемые пакеты для пакетов, которые у вас уже установлены. Это один из простых способов получить новые пакеты локализации или драйвера для нового установленного оборудования.

$ zypper inr
Reading installed packages...

The following NEW packages are going to be installed:
  kdebase4-openSUSE-lang bundle-lang-common-cs


Overall download size: 534.0 K. After the operation, additional 1.9 M will be used.
Continue? [YES/no]:

Управление обновлениями

Есть два спооба сохранения системы в актуальном состоянии. Один однован на патчах, второй на пакетах.

Метод основаный на патчах актуален для людей использующих стабильный релиз и желающих обновить свою систему с помощью патчей, которые становятся доступны через репозитарии обновления. Репозитарии обновления добавляются по умолчанию во время установки или апгрейда системы, или они могут быть добавлены через конфигурацию онлайн обновления из вкладки Программное обеспечение в центре управления YaST, или вручную с помощью [[[#Добавление_репозитария|zypper'a]]. Вот список доступных репозитариев обновления.

В YaST эквивалентом этой функции является модуль Сетевое обновление.

Второй метод, основаный на пакетах описан в секции Обновление пакетов и служит для обновления пакетов из любых репозитариев до более новых версий.


Список необходимых патчей

list-patches или lp

Для просмотра всех патч-обновлений выполните:

$ zypper lp
Reading installed packages...
Patches

Repository       | Name               | Version | Category    | Status
-----------------+--------------------+---------+-------------+-------
Updates for 11.1 | KDE4-fixes         | 38      | recommended | Needed
Updates for 11.1 | MozillaFirefox     | 50      | recommended | Needed
Updates for 11.1 | NetworkManager-kde | 49      | recommended | Needed

Иногда отображаются только обновления менеджера пакетов, они должны быть установлены первыми. После того как они установлены, остальные обновления будут отображены после выполнения этой команды.

применение патчей

patch


Для применения необходимых патчей выполните:

$ zypper patch
Reading installed packages...

The following packages are going to be upgraded:
  NetworkManager-kde mozilla-nss mozilla-nspr kde4-korganizer


The following NEW patches are going to be installed:
  NetworkManager-kde MozillaFirefox KDE4-fixes


Overall download size: 2.9 M. After the operation, additional 283.0 K will be used.
Continue? [YES/no]:

Просмотр всех патчей

patches

Команда list-updates отображает только необходимые обновления. Для просмотра всех доступных обновлений используйте:

$ zypper patches
Reading installed packages...
Catalog          | Name               | Version | Category    | Status
-----------------+--------------------+---------+-------------+---------------
Updates for 11.1 | KDE4-fixes         | 38      | recommended | Installed
Updates for 11.1 | MozillaFirefox     | 50      | recommended | Installed
Updates for 11.1 | NetworkManager-kde | 49      | recommended | Installed
Updates for 11.1 | autoyast2          | 37      | recommended | Installed
Updates for 11.1 | courier-authlib    | 42      | security    | Not Applicable
Updates for 11.1 | insserv            | 47      | recommended | Installed
Updates for 11.1 | opera              | 43      | security    | Installed

Проверка патчей

patch-check или pchk

Эта команда покажет есть ли какие-то важные патчи для вашей системы и количество патчей:

$ zypper pchk
Reading installed packages...
0 patches needed (0 security patches)


Получение информации о патчах

patch-info

info -t patch

$ zypper info -t patch MozillaFirefox
Reading installed packages...


Information for patch MozillaFirefox:

Name: MozillaFirefox
Version: 50
Arch: noarch
Vendor: maint-coord@suse.de
Status: Installed
Category: recommended
Created On: Thu 01 Jan 1970 01:00:00 AM CET
Reboot Required: No
Package Manager Restart Required: No
Interactive: No
Summary: Mozilla Firefox 3.0
Description:
This patch updates Mozilla Firefox to the final 3.0 version.

The dependend libraries mozilla-xulrunner190, mozilla-nspr
and mozilla-nss were also brought to their release version.

Обновление пакетов

list-updates или lu

update или up

Для простого обновления установленных пакетов с новыми доступными пакетами выполните:

zypper up

Вы можете получить список доступных обновлений командой:

zypper lu

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

zypper lu -a

Она отобразит все пакеты доступные для обновления, независимо от того возможно ли их установить или нет, или они требуют пользовательского вмешательства для разрешения каких-либо проблем.

Апгрейд дистрибутива

dist-upgrade или dup

Эта команда использует алгоритм апгрейда дистрибутива, который обнаруживает разбиение пакетов, неподдерживаемые пакеты и другое. Используйте ее для обновления до нового релиза дистрибутива.

Рекомендуется разрешать только основной репозитарий дистрибутива который вы хотите установить плюс несколкьо важных репозитариев, которые Вы используете (еще лучше их версии в соответствие с текущим основным репозитарием) во время апргрейда дистрибутива. Вы можете это сделать запретив старые репозитарии использую zypper mr -da, и добавив новые репозитарии через zypper ar и выполните zypper dup. Вы также можете указать какие репозитарии использовать использую опцию --repo: zypper dup -r repo1 -r repo2 ...

Использование zypper`а в скриптах и приложениях


Начиная с версии 0.6.16, zypper поддерживает полностью неинтерактивный (автономный) режим работы, для использования в скриптах или для запуска по расписанию к примеру cron`а. В этом режиме zypper не запрашивает у пользователя никаких данных (к примеру: устанавливать ли пакеты, соглашаться ли с лицензией) принимая в качестве ответов ответы по умолчанию.

Неинтерактивный режим может быть включен командой --non-interactive. Эта глобальная команда заменяет опции --no-confirm и --skip-interactive (однако данные команда поддерживают тоже).

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

 zypper update --no-confirm --type=patch --skip-interactive

Начиная с версии 0.6.16 можно просто написать:

 zypper --non-interactive update --type=patch

Данная команда не требует подтверждения со стороны администратора при обновлении, а так же пропускает все патчи, которые требуют дополнительных подтверждений или информации от пользователя.

В настоящее время, автоматический (неинтерактивный) режим в стадии разработки и поддерживается с командами: install, update и remove. В будущем, данный режим будет доступен с любой из команд и режимов zypper`а.

Не интерактивный режим

--non-interactive

В этом режиме zypper не требует от пользователя никаких ответов и использует ответы 'по умолчанию'. Использую этот режим можно быть увереным что zypper не зависнет в ожидании ответа с stdin или в бесконечном цикле.

Например для обновления вашей системы без подтверждения вы можете использовать:

# zypper --non-interactive update

Данная команда не требует подтверждения от пользователя для выполнения обновления, пропуская все интерактивные патчи, которые требуют дополнительного подтверждения и автоматически отвечает на все другие запросы.

Режим Без проверок GPG

--no-gpg-checks

При использовании этой опции zypper будет всегда выбирать продолжить если какие-либо gpg проверки завершились ошибкой, например файл репозитария который должен быть подписан не имеет подписи, файл подписан, но проверка gpgp закончилась ошибкой, и тп.

Автосоглашение с лицензиями

--auto-agree-with-licenses

Это специальная опция для команд установки, удаления и обновления. С ее помощью пользователь подтверждает что он/она соглашается с лицензиями которые команда установик и zypper автоматически говорит 'да' на все вопросы о принятии лицензии. Это полезно для людей устанавливающих тот же набор пакетов на несколько машин (автоматизируя процесс) и прочитавших все лицензии ранее.

Тихий вывод

--quiet

Предотвращает вывод слишком большого количества текста, такого как прогресс и отображает только результат операции и сообщения об ошибках.

XML Вывод

--xmlout

Эта опция заставляет zypper говорить на языке XML. Это позволяет скриптам, графических фронтендам и другим типам приложений, которые используют zypper разбирать вывод zypper'а простым стандартным методом. RNX схема XML вывода zypper'а доступна здесь и в /usr/share/zypper/xml/xmlout.rnc.

Не все (но большинство) вывода сейчас в XML; цель - иметь возможность выводить все в XML.

Запросы

Далее следует полный список случаев когда zypper требует вмешательства пользователя вместе с ответами, используемыми в неинтерактивном режиме. Все дополнительные опции перечисленные здесь имеют более высокий приоритет над --non-interactive и если они использованы, то ответ который они задают будет использован автоматически даже если --non-interactive не используется.

GPG запросы

Когда используется --no-gpg-checks, сообщения отображаются на экране а предупреждения в stderr и записываются в журнал.

запрос ответ по умолчанию с --no-gpgp-checks заметки
принять неподписанный файл? N Y
принять новый ключ (reject the key, trust temporarily, or trust always? [r/t/a]) R R новый ключ может может быть подтвержден или импортировать только в интерактивном режиме
принять неизвестный ключ? N Y
проверка подписанного файла завершилась ошибкой, продолжить? N Y
no digest for a file, continue? N Y
accept unknown digest? N Y


Другие запросы

prompt default answer other answer note
proceed with installation/removal/update? Y in addition, the --no-confirm option can be used with the install/remove/update commands even without the global --non-interactive
confirm 3rd party license N Y if --auto-agree-with-licenses is used in addition, for zypper update, --skip-interactive option can be used to exclude interactive patches from to-be-installed list (a heritage of rug)
confirm a patch message Y
problem while installing/removing a resolvable, Abort/Retry/Ignore? ABORT this is ugly and can be improved in future
problem while downloading a package, Abort/Retry/Ignore? ABORT this is also ugly, can be enhanced somehow in the future
dependency conflict, #/s/r/c (solution number, skip, retry, or cancel) c always cancel, user interaction is needed to resolve dependencies
media change request ABORT
remove problematic lock? Y

In XML output, prompts are indicated by <prompt> tag, containing id attribute. Enumeration of all known ids is available in prompt.h include file packaged with zypper (/usr/include/zypper/prompt.h).

Использование zypper`а совместно с zmd и rug


zypper и zmd не синхронизированы в openSUSE 10.2. Можно использовать их совместно, но вы обнаружите массу проблем с синхронизацией. Во избежании проблем, используйте только одно из этих средств для управления приложениями из консоли. Zypper (модель менеджера приложений openSUSE) хороший выбор для отдельных рабочих мест или для ноутбуков. Если вы собираетесь использовать openSUSE 10.2 для управления сетью или инфраструктурой Novell ZENworks - используйте zmd или rug.

Оба, zypper и rug, предустановленны при стандартной установке. Для установки только zypper`а, деактивируйте виртуальный пакет Enterprise Software Management в выборе программного обеспечения при установке. После установки вы можете удалить rug и zmd через YaST. Чтобы сделать это, следуйте следующим инструкциям:

  1. откройте YaST и выберите Software Management.
  2. выберите в Filter опцию Patterns.
  3. снимите отметку с Enterprise Software Management.
  4. нажмите Accept.


Пример информации zypper`а о том, что на компьютере используются rug или zmd:

testicek2:~ # zypper sd http://ftp.uni-kl.de/pub/linux/suse/update/10.2 SUSE-Linux-10.2-Updates
6552 zmd
ZENworks Management Daemon is running.
WARNING: this command will not synchronize changes.
Use rug or yast2 for that.
testicek2:~ # zypper sa http://ftp.uni-kl.de/pub/linux/suse/update/10.2 SUSE-Linux-10.2-Updates
6552 zmd
ZENworks Management Daemon is running.
WARNING: this command will not synchronize changes.
Use rug or yast2 for that.
Determining http://ftp.uni-kl.de/pub/linux/suse/update/10.2 source type...
http://ftp.uni-kl.de/pub/linux/suse/update/10.2 is type YUM
Added Installation Sources:
[x]* SUSE-Linux-10.2-Updates (http://ftp.uni-kl.de/pub/linux/suse/update/10.2)