Архив документации OpenNet.ru / Раздел "Документация для Linux" / Индекс

6.2.1 Идентификаторы транзакций

Утилита rpm сопоставляет каждому установленному пакету идентификатор транзакции. Идентификатор транзакции - это временная метка в формате времени Unix (количество секунд, прошедших с начала эпохи Unix, с 1 января 1970 года). Получив ID транзакции, можно проделывать с пакетами, помеченными данным ID, некоторые операции.

То обстоятельство, что ID транзакции - это временная метка в формате Unix, может изменится в будущем.

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

6.2.1.1 Просмотр идентификаторов транзакций
Для нахождения идентификатора транзакции конкретного пакета используется команда, подобная следующей:

$ rpm -q --qf "%-20{NAME} %-20{INSTALLTID}\n" jikes

jikes 1035589778

Эта команда использует специальный формат запроса для вывода временной метки (идентификатора транзакции, TID). Этот идентификатор также является ID для удаления (REMOVETID). Его тоже можно запросить:

$ rpm -qa --qf "%-20{NAME} %-20{REMOVETID}\n" termcap

termcap (none)

Такой вывод бывает, если пакет не удалялся.

6.2.1.2 Пакеты, ассоциированные с данным ID транзакции
Имея ID транзакции, можно использовать опцию --tid для запроса пакетов, ассоциированных с данным TID. Пример команды:

$ rpm -q --tid 1035589778

jikes-1.17-1

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

Например, подобный список можно получить для пакетов, установленных во время инсталляции или обновления системы. Получим TID, вводя в качестве параметра имя пакета, который точно устанавливается во время инсталляции:

$ rpm -q --qf "%-20{NAME} %-20{INSTALLTID}\n" setup

setup 1033838323

Далее, используем этот TID для вывода списка всех пакетов, установленных во время инсталляции системы:

$ rpm -q --tid 1033838323 | more

redhat-menus-0.26-1

glibc-2.2.93-5

cracklib-2.7-18

gdbm-1.8.0-18

gmp-4.1-4

libacl-2.0.11-2

libjpeg-6b-21

linc-0.5.2-2

pcre-3.9-5

shadow-utils-20000902-12

libtermcap-2.0.8-31

freetype-2.1.2-7

info-4.2-5

fileutils-4.1.9-11

psmisc-20.2-6

ntp-4.1.1a-9

mount-2.11r-10

cracklib-dicts-2.7-18

krb5-libs-1.2.5-6

cyrus-sasl-2.1.7-2

usermode-1.63-1

Xft-2.0-1

С помощью просмотрщика more список можно будет пролистывать. При запуске примера не забудьте заменить TID реальным значением для вашей системы.

В этом примере показана незначительная часть вывода.

Далее - Откат транзакций
Назад - Транзакции с командой rpm
Содержание


Архив документации на OpenNet.ru