The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Каталог документации / Раздел "Документация для Linux" / Оглавление документа

16.3.1 Доступ к БД RPM

Сеты транзакций предоставляют ряд методов работы с БД RPM на уровне движка базы данных. Используйте эти методы, если нуждаетесь во взаимодействии с БД в целом, в отличие от доступа к данным по какому-то одному пакету. Скажем, с помощью этих методов можно инициализировать или перестроить базу. Кроме того, можно получать доступ к альтернативным БД помимо БД по умолчанию.

16.3.1.1 Установка расположения БД
Сет транзакции открывает БД RPM основываясь на ее расположении по умолчанию. Для задания альтернативного расположения БД используется addMacro, как показано ниже:

rpm.addMacro("_dbpath", path_to_rpm_database)

Возможна работа с несколькими БД путем определения макроса
_dbpath, создания сета транзакции и последующего удаления макроса. После такой последовательности можно создать другой сет транзакции для БД по умолчанию. Например:

# Open the rpmdb-redhat database

rpm.addMacro("_dbpath", "/usr/lib/rpmdb/i386-redhat-linux/redhat")

solvets = rpm.TransactionSet()

solvets.openDB()

rpm.delMacro("_dbpath")

# Open default database

ts = rpm.TransactionSet()

Этот пример использует пакет rpmdb-redhat, который содержит данные обо всех пакетах Red Hat. Прямой вызов openDB открывает БД RPM. В большинстве случаев в скриптах Python прямой вызов openDB не требуется. Вместо этого сет транзакции откроет БД если это необходимо.

Вызов delMacro удаляет макрос, позволяя следующему вызову TransactionSet использовать БД по умолчанию.

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

16.3.1.2 Инициализация, перестройка и верификация БД
Сет транзакции предоставляет метод initDB для инициализации новой БД RPM. Действие сходно с действием команды rpm --initdb:

ts.initDB()

Метод rebuildDB регенерирует БД, подобно команде rpm --rebuilddb:

ts.rebuildDB()

Метод rebuildDB перестраивает индекс базы.

Метод verifyDB проверяет читаемость базы и индексов функциями библиотеки Berkeley DB:

ts.verifyDB()

Вызов этого метода - то же самое, что вызов команды db_verify для каждого файла БД в каталоге /var/lib/rpm.

С момента создания сета транзакции мы получаем возможность запрашивать БД RPM.

Далее - Запросы к БД RPM
Назад - Программирование с БД RPM
Содержание


ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

Оформить подписку на год


  Закладки на сайте
  Проследить за страницей
Created 1996-2012 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
RUNNet TopList