Некоторое время назад мне удалось стереть папку / var / lib / rpm, которая в основном содержит информацию обо всех rpms в системе.
Проблема заключается в том, что я не могу запрашивать или обновлять с помощью yum
Я выполнил шаги, упомянутые как rpm --rebuild и все это, но это не помогло
Мне просто интересно узнать о методе, с помощью которого мы можем восстановить базу данных установленных rpm-пакетов.
Я говорю «любопытство», потому что и без него сервер работает нормально !!!
Надеюсь, никто не делает этого в любое время ... Я потерял много дней сна из-за этого
Заранее спасибо за то, что прочитали этот пост и подумали о решении
С уважением
амрит
Ваш единственный шанс, если эта система достаточно важна, - это переустановить только на db:
rpm -Uvh --justdb <package>
Вы можете использовать ваши /root/install.log и /var/log/yum.log, чтобы получить список установленных RPM, или, если у вас есть аналогичная система, вы можете получить список RPM оттуда.
Тем не менее, если эта система может простоять, я бы посоветовал переустановить ее как лучший способ. В противном случае см. Комментарий выше.
Удачи
Изменить: я неправильно прочитал - если вы удалили весь каталог / var / lib / rpm, вы немного запутались.
Вы сказали, что уже сделали этот первый шаг, но для справки в будущем (и для всех, кто сталкивается с этим)
Удалить /var/lib/rpm/__db.*
затем
rpmdb –rebuilddb
На самом деле это не имеет большого значения, ваша система не залита шлангом. Просто запустите вышеуказанные команды, и вы должны вернуться к работе.
Если вы сохранили резервную копию, возможно, вы сможете ее восстановить. В противном случае вы стерли единственную копию базы данных RPM. (The rpm --rebuilddb
команда восстанавливает некоторые файлы в этом каталоге из других.) Ваша система в основном закрыта.
Я никогда не пробовал, но вы можете попробовать создать новую пустую базу данных RPM (скопировать из новой установки?) И переустановить все установленные пакеты в текущих установленных версиях. Вы можете заглянуть в свои журналы rpm (или, возможно, yum, если вы его используете), чтобы определить установленные пакеты.