Я хотел бы установить оба пакета libsigc++-2.0-0c2a
и libsigc++-2.0-0v5
одновременно, для выполнения определенного программного обеспечения.
По-видимому, однако, пакеты конфликтуют и
sudo apt-get install libsigc++-2.0-0v5 libsigc++-2.0-0c2a
результаты в
The following packages have unmet dependencies.
libsigc++-2.0-0v5 : Conflicts: libsigc++-2.0-0c2a but 2.2.10-0.2ubuntu2 is to be installed
E: Unable to correct problems, you have held broken packages.
Существует ли общая стратегия приблизиться к таким ситуациям? Не был должен "Версия, нумерующая" решение, применяется здесь?
я соглашаюсь с MichaelW, что это содержит тот же библиотечный файл с той же версией. Однако ошибка, которую Вы получили, не связана, что, но это - конфликт версий пакетов, объявленный в одном из пакетов:
$ dpkg --info Downloads/libsigc++-2.0-0v5_2.4.1-2_amd64.deb
...
Conflicts: libsigc++-2.0-0c2a
Replaces: libsigc++-2.0-0c2a
...
, Если те строки удалены, мы добрались, ошибка связала ту же перезапись файлов, подобную этому:
Unpacking libjline-java (from .../libjline-java_1.0-1_all.deb) ...
dpkg: error processing /var/cache/apt/archives/libjline-java_1.0-1_all.deb (--unpack):
trying to overwrite '/usr/share/java/jline.jar', which is also in package scala 2.9.2-400
Errors were encountered while processing:
/var/cache/apt/archives/libjline-java_1.0-1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Ошибочный Источник: dpkg ошибка: " попытка перезаписать файл, который находится также в..."
, Поскольку они компилируются в ту же версию, не возможно поместить их вместе, никакое меняющее имя вручную не поможет. Инструменты на репозитории уже скомпилировали для использования libsigc-2.0.so.0
.
Здесь является легкое решение с тестовым сценарием.
Тест:
я искал пакет зависеть от того же использования библиотеки:
$ apt-cache rdepends libsigc++-2.0-0v5
...
libatkmm-1.6-1v5
inkscape
gparted
gnome-system-monitor
aptitude
Проверяют, что содержавший двоичный файл действительно зависит от него, с помощью:
$ dpkg -L gnome-system-monitor | grep /bin/
/usr/bin/gnome-system-monitor
$ ldd `which gnome-system-monitor` | grep libsigc
libsigc-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libsigc-2.0.so.0 (0x00007f9491bec000)
Инструкции:
Создают папку для содержания внешнего общего lib (другая версия, которую Вы не можете установить), пример:
mkdir ~/Desktop/sand_box/local_so_lib_test
Извлечение библиотека fro пакет
$ dpkg-deb --extract ~/Downloads/libsigc++-2.0-0c2a_2.2.10-0ubuntu2_amd64.deb /tmp/libsigc
$ cp -a /tmp/libsigc/usr/lib/x86_64-linux-gnu/* ~/Desktop/sand_box/local_so_lib_test
$ ls -l
total 20
lrwxrwxrwx 1 sneetsher sneetsher 20 Dec 12 2011 libsigc-2.0.so.0 -> libsigc-2.0.so.0.0.0
-rw-r--r-- 1 sneetsher sneetsher 18488 Dec 12 2011 libsigc-2.0.so.0.0.0
Запускают специальные зависимые инструменты, Проверкой установки LD_LIBRARY_PATH
$ LD_LIBRARY_PATH=~/Desktop/sand_box/local_so_lib_test gnome-system-monitor
:
$ LD_LIBRARY_PATH=~/Desktop/sand_box/local_so_lib_test ldd /usr/bin/gnome-system-monitor | grep libsigc
libsigc-2.0.so.0 => /home/sneetsher/Desktop/sand_box/local_so_lib_test/libsigc-2.0.so.0 (0x00007fabbe960000)
$ LD_LIBRARY_PATH=~/Desktop/sand_box/local_so_lib_test gnome-system-monitor &
$ lsof -c "gnome-system-mo" | grep libsigc
gnome-sys 28655 sneetsher mem REG 8,5 18488 2752572 /home/sneetsher/Desktop/sand_box/local_so_lib_test/libsigc-2.0.so.0.0.0
Оба пакета содержат те же файлы:
можно найти это в деталях пакета, ищущих в пакетах Ubuntu: http://packages.ubuntu.com/
, например, http://packages.ubuntu.com/wily/amd64/libsigc++-2.0-0v5/filelist http://packages.ubuntu.com/precise/amd64/libsigc++-2.0-0c2a/filelist
, Таким образом, конфликт вызывается теми же файлами в пакетах. Что система должна сделать теперь? Так как это не может решить это, это отображает конфликт.
попробуйте sudo apt-get build-dep libsigc++-2.0-0v5 libsigc++-2.0-0c2a