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

ошибка зависимости обновления yum (уже установлена)

я столкнулся со следующей ошибкой:

Transaction Check Error:
package apr-1.3.12-1.jason.1.x86_64 (which is newer than apr-1.2.7-11.el5_6.5.cloudlinux.2.i386) is already installed

Это на cloudlinux. apr-1.3.12-1.jason.1.x86_64 устанавливается из стороннего репо, и теперь для любого обновления пакета требуется более старая версия apr или даже не замечается, что установлена ​​более новая версия.

Как лучше всего решить эту проблему? К сожалению, я точно не знаю, какой пакет нуждается в этой зависимости (как это узнать?)

Оба предложения @ACase yum erase apr и yum downgrade apr хороши, однако, если вы хотите провести еще немного расследования и выяснить, какое приложение вызывает нарушение, вы можете сделать следующее;

Вы можете проверить, какие установленные пакеты требуют блокирующего пакета «apr-1.3.12-1.jason.1.x86_64» следующим образом;

# rpm -q --whatrequires apr
**apr-devel-1.2.7-11.el5_6.5**  <--(this or something else in the list)
...

apr - это «переносимая среда выполнения apache», которая, предположительно, была установлена ​​как библиотека какой-то другой транзакцией, связанной с httpd.

А затем вы можете увидеть зависимости этого оскорбительного пакета, используя следующую команду;

# rpm -v -q --requires apr-devel
/sbin/ldconfig  
libapr-1.so.0()(64bit)  
libc.so.6()(64bit)  
....

Чтобы узнать, какие зависимости требуются новый пакет, который вы пытаетесь установить из репозитория, который вы можете использовать;

# yum deplist apr
Finding dependencies: 
package: apr.i386 1.2.7-11.el5_6.5
  dependency: libc.so.6(GLIBC_2.1.3)
   provider: glibc.i686 2.5-65
   provider: glibc.i686 2.5-65.el5_7.
...

В более общем плане проблема заключается в том, что старый и новый пакеты конфликтуют, и вам придется решить проблему, решив, какой набор пакетов вы собираетесь сохранить, а какой удалить.

Я лично предпочел бы использовать дистрибутивную версию пакета apr, так как он используется множеством программ на основе apache.

Чтобы увидеть сумасшедший подробный вывод yum, пытающегося найти для вас зависимости, добавьте флаг -v;

# yum -v deplist apr
...
pkgsack time: 3.261
rpmdb time: 0.000
Finding dependencies: 
Searching pkgSack for dep: /sbin/ldconfig
Potential match for /sbin/ldconfig from glibc-2.5-65.i686
Potential match for /sbin/ldconfig from glibc-2.5-65.x86_64
...

Если вы хотите продолжать использовать стороннее репо, но при этом вам необходимо использовать более раннюю версию, вы можете сделать yum downgrade apr.

Однако вы можете удалить апр (yum erase apr), а затем переустановите стандартные пакеты репо для удаленных.

[изменить 1]:

Похоже, у вас есть несоответствие версий между 32-битной версией и 64-битной версией apr, вы можете попробовать запустить yum update apr.i386 apr.x86_64. Вам нужно будет сделать это с включенным сторонним репо.