Что значит "A ломает B и и устанавливается" при компиляции и установке apt pkg в Ubuntu?

У меня есть пакет apt, скомпилированный для Ubuntu 13.04, и я хочу установить его на Ubuntu 14.04. libcogl12 который недоступен в Ubuntu 14.04 (заменен более новым libcogl15, как я предполагаю).

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

sudo apt-get install freeglut3-dev libxcomposite-dev libglib2.0-dev libpango1.0-dev
curl -O http://ftp.gnome.org/pub/GNOME/sources/cogl/1.7/cogl-1.7.8.tar.xz
cd cogl-1.7.8
./configure --prefix=/usr
make
sudo checkinstall

В checkinstall интерактивное меню я определяю libcogl12 имя для полученного пакета. Он построен без проблем, но при установке я получил ошибку:

dpkg: dependency problems prevent configuration of libcogl12:
 libclutter-1.0-0:amd64 (1.16.4-0ubuntu2) breaks libcogl12 and is installed.

Что означает "А ломает В и устанавливается"? Я не вижу никакой документации для таких ошибок:(.

1 ответ

Решение

Взято отсюда: http://debian-handbook.info/browse/stable/sect.package-meta-information.html

5.2.1.3. Несовместимость: поле разрывов

Поле Breaks имеет эффект, аналогичный полю Conflicts, но имеет особое значение. Он сигнализирует о том, что установка пакета "сломает" другой пакет (или его отдельные версии). В общем, эта несовместимость между двумя пакетами является временной, и отношение Breaks конкретно относится к несовместимым версиям. dpkg откажется устанавливать пакет, который нарушает уже установленный пакет, и apt-get попытается решить проблему путем обновления пакета, который будет поврежден, до более новой версии (которая предполагается исправленной и, следовательно, снова совместимой), Этот тип ситуации может возникнуть в случае обновлений без обратной совместимости: это тот случай, если новая версия больше не работает со старой версией и вызывает сбой в другой программе без специальных условий. Поле Breaks предотвращает столкновение пользователя с этими проблемами.

Другие вопросы по тегам