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

Материал из openSUSE.

Эта статья о том, как использовать 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 [команда]

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

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

service-list, sl

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

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

testicek2:~ # zypper sl
# | Enabled | Refresh | Type | Name                    | URI
--+---------+---------+------+-------------------------+---------------------------------------------------------------
1 | No      | Yes     | YaST | 20061129-152243         | http://download.opensuse.org/distribution/10.2/repo/non-oss/
2 | Yes     | Yes     | YUM  | SUSE-Linux-10.2-Updates | http://ftp.uni-kl.de/pub/linux/suse/update/10.2
3 | Yes     | Yes     | YaST | 20061129-133739         | ftp://10.20.3.1/netboot/find/openSUSE-10.2-RC3-retail-i386-CD1

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

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

service-add, sa <URI> [маска]

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

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

Пример:

testicek2:~ # zypper sa http://ftp.uni-kl.de/pub/linux/suse/update/10.2 SUSE-Linux-10.2-Updates
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)

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

service-delete, sd <URI|маска> 

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

Пример:

zypper sd http://ftp.uni-kl.de/pub/linux/suse/update/10.2

или

zypper sd SUSE-Linux-10.2-Updates

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

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

service-rename, sr <URI|маска> <новая маска>

Переименовывает репозиторий.

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

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

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

Принимает в качестве параметров следующие флаги:

  • -c, --catalog - только из указанного репозитория
  • -t, --type [тип] - тип устанавливаемого пакета (по умолчанию: package) (прим. переводчика: по умолчанию устанавливается приложение, однако в качестве типа можно использовать patch (патчи), виртуальные пакеты)

Без дополнительных флагов команда ищет пакет во всех репозиториях по всем типам пакетов. Чтобы искать и установить пакет из конкретного репозитория, используйте флаг -c с маской либо URI репозитория из которого вы хотите установить пакет.

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

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

remove, rm  [имя пакета]

Удаляет пакет (приложение). Принимает в качестве параметров следующие флаги:

  • -t, --type [тип] - тип удаляемого пакета (по умолчанию: package) (прим. переводчика: т.е. для того чтобы удалить определенный патч к программе, необходимо переопределить тип на patch)

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

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

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 - Сортирует пакеты по репозиториям, в которых они были найдены

Пример:

testicek2:~ # zypper se help
Restoring system sources...
Parsing metadata for 20061115-083114...
Parsing metadata for SUSE-Linux-10.2-Updates...
S | Catalog         | Type    | Name        | Version       | Arch
--+-----------------+---------+-------------+---------------+-------
  | 20061115-083114 | package | devhelp     | 0.10-55       | i586
i | 20061115-083114 | package | gimp-help   | 0.9-40        | noarch
i | 20061115-083114 | package | susehelp    | 2006.06.20-22 | noarch
i | 20061115-083114 | package | susehelp_cz | 2006.06.20-22 | noarch
  | 20061115-083114 | package | susehelp_de | 2006.06.20-22 | noarch
  | 20061115-083114 | package | susehelp_en | 2006.06.20-22 | noarch
  | 20061115-083114 | package | susehelp_es | 2006.06.20-22 | noarch
  | 20061115-083114 | package | susehelp_fr | 2006.06.20-22 | noarch
  | 20061115-083114 | package | susehelp_hu | 2006.06.20-22 | noarch
  | 20061115-083114 | package | susehelp_it | 2006.06.20-22 | noarch

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

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

patch-check, pchk

Осуществляет проверку на наличие новых патчей.

Пример:

testicek2:~ # zypper pchk
Restoring system sources...
Parsing metadata for 20061115-083114...
Parsing metadata for SUSE-Linux-10.2-Updates...
Parsing RPM database...
2 patches needed. ( 0 security patches )

Показать список патчей

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

patches, pch

Отображает доступные патчи.

Пример:

testicek2:~ # zypper pch
Restoring system sources...
Parsing metadata for 20061115-083114...
Parsing metadata for SUSE-Linux-10.2-Updates...
Parsing RPM database...
Catalog                 | Name               | Version | Category    | Status
------------------------+--------------------+---------+-------------+-----------
SUSE-Linux-10.2-Updates | kwin-decor-suse2   | 2213-0  | optional    | Not Needed
SUSE-Linux-10.2-Updates | suspend            | 2247-0  | recommended | Needed
SUSE-Linux-10.2-Updates | update-test-trival | 2212-0  | optional    | Not Needed
SUSE-Linux-10.2-Updates | update-test-trival | 2214-0  | recommended | Needed

Получить детальную информацию о патче

Основная команда: patch-info [имяпатча1] [имяпатча2]... Отображает всю имеющуюся информацию о патче.

Пример:

testicek2:~ # zypper patch-info suspend
Restoring system sources...
Parsing metadata for 20061115-083114...
Parsing metadata for SUSE-Linux-10.2-Updates...
Parsing RPM database...

Information for patch suspend:
Name: suspend Version: 2247-0 Arch: noarch Status: Broken Category: recommended Created On: Fri Nov 10 02:44:36 2006 Reboot Required: No Package Manager Restart Required: No Interactive: No Summary: supend to disk never resumes, but reboots instead Description: Due to an error in the "resume" program, resume from suspend to disk was not possible. The machine booted up normally instead.
Provides: patch: suspend == 2247-0
Requires: atom: suspend == 0.20.20061106-4

Отображение обновлений

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

user# zypper refresh

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

list-updates, lu

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

  • -t, --type - тип пакета обновления (по умолчанию: patch)

пример:

testicek2:~ # zypper lu
Restoring system sources...
Parsing metadata for 20061115-083114...
Parsing metadata for SUSE-Linux-10.2-Updates...
Parsing RPM database...
Catalog                 | Name               | Version | Category    | Status
------------------------+--------------------+---------+-------------+-------
SUSE-Linux-10.2-Updates | suspend            | 2247-0  | recommended | Needed
SUSE-Linux-10.2-Updates | update-test-trival | 2214-0  | recommended | Needed

Обновление

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

update, up

Обновляет пакеты.

  • -t, --type - тип пакета (по умолчанию: patch)

Пример:

testicek2:~ # zypper update
Restoring system sources...
Parsing metadata for 20061115-083114...
Parsing metadata for SUSE-Linux-10.2-Updates...
Parsing RPM database...
Summary:
<install>   [S3:0][patch]suspend-2247-0.noarch
<uninstall> [S0:0][package]update-test-trival-1.1-2.noarch
<install>   [S3:0][patch]update-test-trival-2214-0.noarch
<install>   [S3:0][package]update-test-trival-99.9-99.9.noarch
<install>   [S3:0][atom]suspend-0.20.20061106-4.i586
<install>   [S3:0][package]suspend-0.20.20061106-4.i586
<install>   [S3:0][atom]update-test-trival-99.9-99.9.noarch
<uninstall> [S0:0][package]suspend-0.5-2.i586
Continue? [y/n] y
Downloading: [S3:0][package]update-test-trival-99.9-99.9.noarch, 3.2 K(354 B unpacked)
Installing: [S3:0][package]update-test-trival-99.9-99.9.noarch
Downloading: [S3:0][package]suspend-0.20.20061106-4.i586, 479.0 K(1.0 M unpacked)
Installing: [S3:0][package]suspend-0.20.20061106-4.i586

Пример:

 user:# zypper up -t package -r oss

Данный пример обновляет все пакеты (параметр -t package) до новых версий, которые доступны в репозитории OSS, где oss - маска репозитория, заданная при его добавлении (см. Добавление репозитория). Не указав параметр -t oss, будут обновлены все пакеты из всех репозитариев.

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

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

info, if ['имяпакета']

Отображает подробную информацию о пакете.

Пример:

testicek2:~ # zypper info suspend
Restoring system sources...
Parsing metadata for 20061115-083114...
Parsing metadata for SUSE-Linux-10.2-Updates...
Parsing RPM database...

Information for package suspend:

Catalog: SUSE-Linux-10.2-Updates Name: suspend Version: 0.20.20061106-4 Arch: i586 Installed: Yes Status: out-of-date (version 0.5-2 installed) Installed Size: 1.0 M Summary: A Set Of Tools To Support Sleep Modes Description: A set of tools to support suspending notebooks, working around the specific problems each machine has.

Authors: -------- Pavel Machek <pavel@suse.cz> Rafael J. Wysocki <rjw@sisk.pl> and others. testicek2:~ # zypper update Restoring system sources... Parsing metadata for 20061115-083114... Parsing metadata for SUSE-Linux-10.2-Updates... Parsing RPM database... Summary: <install> [S3:0][patch]suspend-2247-0.noarch <uninstall> [S0:0][package]update-test-trival-1.1-2.noarch <install> [S3:0][patch]update-test-trival-2214-0.noarch <install> [S3:0][package]update-test-trival-99.9-99.9.noarch <install> [S3:0][atom]suspend-0.20.20061106-4.i586 <install> [S3:0][package]suspend-0.20.20061106-4.i586 <install> [S3:0][atom]update-test-trival-99.9-99.9.noarch <uninstall> [S0:0][package]suspend-0.5-2.i586 Continue? [y/n] y Downloading: [S3:0][package]update-test-trival-99.9-99.9.noarch, 3.2 K(354 B unpacked) Installing: [S3:0][package]update-test-trival-99.9-99.9.noarch Downloading: [S3:0][package]suspend-0.20.20061106-4.i586, 479.0 K(1.0 M unpacked) Installing: [S3:0][package]suspend-0.20.20061106-4.i586

Использование 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`а.

Использование 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)