Назад | Перейти на главную страницу

RPM не может найти зависимости при попытке обновить MySQL

Я пытаюсь обновить MySQL с 4.1.20 до 5.1.39. v4.1 была установлена ​​через RPM без проблем, но при попытке обновления выдает несколько ошибочных предупреждений, например:

# rpm --upgrade MySQL-client-5.1.39-0.glibc23.i386.rpm
warning: MySQL-client-5.1.39-0.glibc23.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
error: Failed dependencies:
        libncursesw.so.5 is needed by MySQL-client-5.1.39-0.glibc23
#

Хотя он у меня установлен в /usr/lib/libncurses.so.5

Я также получаю:

# rpm --upgrade MySQL-server-5.1.39-0.glibc23.i386.rpm
warning: MySQL-server-5.1.39-0.glibc23.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
error: Failed dependencies:
        perl(DBI) is needed by MySQL-server-5.1.39-0.glibc23
#

хотя заявленная версия - 1.609:

# perl -M'DBI 999' -e1
DBI version 999 required--this is only version 1.609.

Как я могу заставить RPM увидеть, что они установлены? Или пришло время вернуться к построению из исходников?

РЕДАКТИРОВАТЬ: Для справки, это довольно старая коробка Redhat (i686, хотя я пробовал RPM i386)

Некоторые вопросы / комментарии:

  • Какую ОС вы используете?
  • Какая арка? Если у вас 64-битная ОС с 64-битным ncurses, она не подойдет для этой 32-битной MySQL rpm.
  • Откуда у тебя обороты? Я думаю, это ванильная версия с mysql.com. Вы проверяли их системные требования? Вы выбрали правильный пакет для своего дистрибутива / ОС? Видеть http://dev.mysql.com/downloads/mysql/5.1.html для пакетов для всех поддерживаемых ОС. Убедитесь, что у вас есть версия Arch и OS!
  • libncursesw.so.5 знак равно libncurses.so.5
  • Каков результат команды rpm -qf /usr/lib/libncurses.so.5 ? Это будет показано, откуда у вас есть файл libncurses.so.5. Затем вы можете использовать rpm -qlv <PKG> чтобы проверить содержимое этого пакета на предмет libncursesw.so.5.
  • Я рекомендую получить версию MySQL вашего дистрибутива ОС вместо версии от стороннего производителя, потому что зависимости пакетов не будут проблематичными.
  • Я рекомендую использовать yum / apt-get вместо rpm напрямую, если вы не очень разбираетесь в rpm, потому что он автоматически разрешит необходимые зависимости для вас.
  • rpm не просматривает установленные файлы на жестком диске для разрешения зависимостей. Он смотрит только на установленные rpm (зарегистрированные в собственной db rpm). Это означает, что для удовлетворения зависимости вам необходимо установить правильный rpm - недостаточно установить правильные файлы без rpm.

Если вы используете CentOS или RedHat, я бы рекомендовал использовать пакеты mysql из rackspace's репозиторий iuscommunity. Вы можете найти самые последние версии mysql (5.1.39), и они очень стабильны.

Ваша база данных зависимостей испорчена.

Если вы используете yum, попробуйте:

yum clean all

Если нет, попробуйте:

rpm --rebuilddb

Если это все еще не удается, вы можете попробовать перестроить БД вручную:

http://www.informatimago.com/linux/rpm-rebuilddb.html

Отказ от ответственности: я не тестировал действия, описанные в этом руководстве, поэтому, как и все, что вы найдете в сети, действуйте с осторожностью. Некоторые шаги могут быть устаревшими в современных версиях набора инструментов rpm.