Como verificar o banco de dados RPM?

5

Eu preciso verificar se o banco de dados RPM (não um RPM, o banco de dados em /var/lib/rpm ) não está corrompido ou inconsistente, de maneira adequada para scripts (isto é, retornará o código de saída 0 se estiver bom e outra coisa se estiver corrompido) . Posso usar db_verify para verificar os bancos de dados individuais de Berkeley, mas suponha que os bancos de dados individuais de Berkeley sejam totalmente válidos e a inconsistência esteja entre os bancos de dados. Eu experimentei excluindo (renomeando) um banco de dados, e rpm -qa --dump ficou indiferente e rpm -Va apenas o regenerou com um aviso. Eu suponho que eu poderia procurar a string "warning:" na saída, mas isso não parece confiável. Além disso, eu realmente não quero verificar os arquivos, quero verificar o banco de dados. Eu procurei por pacotes relacionados ao OpenSuSE RPM e não encontrei nada a respeito. Alguma sugestão? Eu prefiro algo projetado para fazer uma verificação completa ao invés de apenas um despejo.

    
por eewanco 06.08.2014 / 17:23

1 resposta

6

Há um sinalizador --verifydb não documentado que existe desde pelo menos rpm-4.1.

Veja rpm/rpmdb.c :

{ "verifydb", '
{ "verifydb", '%pre%', (POPT_ARG_VAL|POPT_ARGFLAG_OR|POPT_ARGFLAG_DOC_HIDDEN),
    &mode, MODE_VERIFYDB, N_("verify database files"), NULL},
', (POPT_ARG_VAL|POPT_ARGFLAG_OR|POPT_ARGFLAG_DOC_HIDDEN), &mode, MODE_VERIFYDB, N_("verify database files"), NULL},

Então rpm --verifydb deve fazer exatamente o que você está procurando.

    
por 06.08.2014 / 18:38

Tags