2.10. Решение проблем установки RPM
Проблема
Попытка установки пакета RPM завершается с сообщением «Error: Failed dependency». Добро пожаловать в «кошмар зависимостей»!
Решение
Соберите воедино все пакеты, необходимые для разрешения зависимостей, и установите их все сразу. Пример:
# rpm -ivh tuxpaint-0.9.13-1.i386.rpm
error: Failed dependencies:
SDL_image is needed by tuxpaint-0.9.13-1
SDL_ttf is needed by tuxpaint-0.9.13-1
libSDL_image-1.2.so.0 is needed by tuxpaint-0.9.13-1
libSDL_ttf-2.0.so.0 is needed by tuxpaint-0.9.13-1
# rpm -ivh tuxpaint-0.9.13-1.i386.rpm SDL_image-1.2.3-4.i386.rpm SDL_ttf-2.0.6-1.i386.rpm
Программа установки сортирует их и устанавливает в правильном порядке.
Что делать, если RPM жалуется на отсутствие файла или пакета, а вы абсолютно уверены в том, что он установлен? Возможно, база данных RPM содержит ошибки; попробуйте перестроить её:
# rpm --rebuilddb
Если это не помогло, переустановите якобы отсутствующий пакет с ключом --replacepkgs
:
# rpm -ivh --replacepkgs SDL_ttf-2.0.6-1.i386.rpm
Если вы твёрдо уверены в том, что необходимые библиотеки существуют в вашей системе, попробуйте провести форсированную установку, не обращая внимания на ошибки:
# rpm -ivh --force tuxpaint-2002.10.20-1.i386.rpm
или откажитесь от проверки зависимостей:
# rpm -ivh --nodeps tuxpaint-2002.10.20-1.i386.rpm
Если конфликт зависимостей так и не удалось разрешить, попробуйте установить новую программу и все её зависимые пакеты из пакетов, сгенерированных по исходным текстам (см. раздел 2.11).
Комментарий
Где найти необходимые пакеты? Начните с домашней страницы той программы, которую вы пытаетесь переустановить. Обязательно прочтите всю имеющуюся документацию.
Сейчас появилось множество разных дистрибутивов на базе RPM, поэтому постарайтесь раздобыть пакеты, построенные для вашей конкретной системы. Вот некоторые из крупнейших общедоступных архивов RPM:
- FreshRPMs — http://freshrpms.net;
- rpmfind — http://rpmfind.net;
- rpm.phone — http://rpm.phone.net.
См. также