Что значит "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 предотвращает столкновение пользователя с этими проблемами.