16.6.1 Построение сета транзакции

Установка или обновление пакетов должны быть выполнены в рамках контекста сета транзакции. Для установки или обновления набора пакетов выполняется addInstall с соответствующими хэдерами. Синтаксис:

ts.addInstall(header, key_data, mode)

Когда вызывается addInstall, ему передаются объект хэдера, определенные ключевые данные и флаг режима. Флаг должен быть i для установки и u - для обновления, или a - для специального режима, в котором пакет доступен для прохождения проверок сета транзакции, но не устанавливается (не обновляется). Флаг а используется сравнительно редко. В большинстве случаев нужно использовать u, подобно тому, что при установке с помощью утилиты rpm пакеты должны устанавливаться с ключом -U.

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

Для удаления пакетов используется addErase вместо addInstall:

ts.addErase(package_name)

Для выбора пакета, который должен быть установлен (обновлен), используйте следующий код:

h = readRpmHeader( ts, sys.argv[1] )

ts.addInstall(h, sys.argv[1], 'u')

Этот пример передает имя файла пакета в addInstall, забирая его из командной строки.

Вызов addInstall добавляет объект хэдера и ассоциированный с ним файл пакета для обновления. Имя файла пакета передается в sys.argv[1] в качестве key_data для обратного вызова из сета транзакции.

Далее - Элементы транзакции
Назад - Установка и обновление пакетов
Содержание