Утилита 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
Содержание