Проверка и восстановление RPM-пакетов
Содержание:
1. LVM и fsck;
2.Проверка и восстановление RPM-пакетов (Вы читаете данный раздел);
3. Переустановка пакетов с помощью yum.
Для проверки установленных программ можно использовать утилиту rpm. Посмотрим на состояние пакетов в системе:
Выводятся строки из 8 символов, маркера и имени файла. Например:
Первые 8 символов показывают результаты проверки атрибутов файла со значением, хранимым в базе данных. Точка означает, что проверка пройдена, а «S», «5» и «Т» указывают на различие размера файла, МD5-суммы и времени изменения соответственно (для информации о других символах см. man rpm).
Маркеры:
> с - конфигурационный файл;
> d - файл документации;
> g - файл-«призрак» (его содержимое не включено в состав пакета);
> l - файл с лицензией;
> r - файл README.
Если база данных RPM повреждена, то её можно «пересоздать», но перед этим не забудьте сохранить архив нынешней базы данных RPM из /var/lib/rpm/__*:
Если возникает проблема при запуске самой команды rpm, то пакет с ней можно найти в репозитории - например, для CentOS 6.2 нужный файл называется rpm-4.8.0-19.el6.x86_64.rpm и доступен для загрузки с ftp://mirror.yandex.ru/centos/6.2/os/x86 64/Packages.
Для извлечения файлов из пакета можно воспользоваться утилитой rpm2cpio:
Процедура не быстрая и может занять достаточно много времени. Поэтому вы смело можете скрасить ожидание в приятной компании - тем более, что девушки ждут тебя на https://indi-msk.net.
В результате операции в текущей директории будут созданы подкаталоги, которые затем нужно скопировать в корневой каталог файловой системы с сохранением прав доступа. Если отсутствует какая-либо системная команда и неизвестно, в каком пакете она поставляется, можно воспользоваться поиском по базе пакетов. Например, мы предполагаем, что команда rm должна находиться в каталоге /bin, и пытаемся найти название пакета с ней:
Как видно, для появления в системе файла /bin/rm надо установить пакет coreutils. Посмотреть список всех файлов, которые поставляет какой-то пакет, можно с помощью следующей команды:
1. LVM и fsck;
2.
3. Переустановка пакетов с помощью yum.
Для проверки установленных программ можно использовать утилиту rpm. Посмотрим на состояние пакетов в системе:
# rpm –Va
Выводятся строки из 8 символов, маркера и имени файла. Например:
S.5.... T c /etc/rc.d/rc.local
Первые 8 символов показывают результаты проверки атрибутов файла со значением, хранимым в базе данных. Точка означает, что проверка пройдена, а «S», «5» и «Т» указывают на различие размера файла, МD5-суммы и времени изменения соответственно (для информации о других символах см. man rpm).
Маркеры:
> с - конфигурационный файл;
> d - файл документации;
> g - файл-«призрак» (его содержимое не включено в состав пакета);
> l - файл с лицензией;
> r - файл README.
Если база данных RPM повреждена, то её можно «пересоздать», но перед этим не забудьте сохранить архив нынешней базы данных RPM из /var/lib/rpm/__*:
# rpm --rebuilddb
Если возникает проблема при запуске самой команды rpm, то пакет с ней можно найти в репозитории - например, для CentOS 6.2 нужный файл называется rpm-4.8.0-19.el6.x86_64.rpm и доступен для загрузки с ftp://mirror.yandex.ru/centos/6.2/os/x86 64/Packages.
Для извлечения файлов из пакета можно воспользоваться утилитой rpm2cpio:
# rpm2cpio rpm-4.4.2.3-27.el5.x86_64.rpm | cpio -ivd
./bin/rpm
./etc/rpm
…
./usr/share/man/sk/man8/rpm.8.gz
./var/lib/rpm
4001 блоков
./etc/rpm
…
./usr/share/man/sk/man8/rpm.8.gz
./var/lib/rpm
4001 блоков
Процедура не быстрая и может занять достаточно много времени. Поэтому вы смело можете скрасить ожидание в приятной компании - тем более, что девушки ждут тебя на https://indi-msk.net.
В результате операции в текущей директории будут созданы подкаталоги, которые затем нужно скопировать в корневой каталог файловой системы с сохранением прав доступа. Если отсутствует какая-либо системная команда и неизвестно, в каком пакете она поставляется, можно воспользоваться поиском по базе пакетов. Например, мы предполагаем, что команда rm должна находиться в каталоге /bin, и пытаемся найти название пакета с ней:
# rpm -qf /bin/rm coreutils-8.4-16.el6.x86_64.rpm
Как видно, для появления в системе файла /bin/rm надо установить пакет coreutils. Посмотреть список всех файлов, которые поставляет какой-то пакет, можно с помощью следующей команды:
# rpm -ql имя_пакета.rpm