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

Нарушенные зависимости от Debian

В настоящее время работает Debian Lenny (5.0.9). Я добавил следующие тестовые репозитории для установки определенного пакета;

deb http://ftp.debian.org/debian/ testing main contrib
deb-src http://ftp.debian.org/debian/ testing main contrib

Однако теперь, когда я перехожу к установке другого пакета (libc6-dev), это результат;

The following packages are BROKEN:
  libc6-dev 
The following NEW packages will be installed:
  binutils{a} cpp{a} cpp-4.3{a} gcc{a} gcc-4.3{a} libgmp3c2{a} libgomp1{a} 
libmpfr1ldbl{a} libtool linux-libc-dev{a} 

The following packages are RECOMMENDED but will NOT be installed:
  libltdl3-dev 
0 packages upgraded, 11 newly installed, 0 to remove and 1 not upgraded.
Need to get 13.6MB of archives. After unpacking 39.7MB will be used.
The following packages have unmet dependencies:
  libc6-dev: Depends: libc6 (= 2.7-18lenny7) but 2.13-21 is installed.
The following actions will resolve these dependencies:

Keep the following packages at their current version:
libc6-dev [Not Installed]
libtool [Not Installed]

Score is -9872

Как я могу это исправить?

не используйте тестовые пакеты в lenny (oldstable!). Если вы сделаете это принудительно, ваша система испортится.

По какой причине вы это делаете? Какое программное обеспечение вы хотите обновить (и до какой версии?)

Вы частично обновили свою систему до тестирования, пропустив стабильную версию (сжатие). Это настоятельно не рекомендуется. Вот ваши варианты, которые я бы порекомендовал:

  • Обновите до squeeze (текущий «стабильный»), затем обновите до wheezy (текущий «тестовый»). Вы будете проводить тестирование по крайней мере до тех пор, пока wheezy не станет стабильной. Это не лучший вариант, если машина подключена к серверу с выходом в Интернет или является производственной коробкой. Тестирование не получает своевременных обновлений безопасности и часто дает сбои. Если вы хотите это сделать, сначала выполните инструкции по обновлению lenny => squeeze. глава 4 примечаний к выпуску. Затем экстраполируйте аналогичную процедуру, чтобы перейти от сжатия к хрипу.

  • Переустановите lenny: сделайте резервную копию ваших данных, конфигурации, учтите установленные пакеты с помощью aptitude search -F '%p' '~i!~M', получите установочный носитель, установите с нуля, восстановите свои пакеты, восстановите свои данные и конфигурацию. Трудно рекомендовать новую установку lenny, так как это конец жизни в феврале, когда он перестанет получать обновления безопасности (или другие).

  • Установите squeeze с нуля: снова сделайте резервную копию данных / конфигурации, выполните новую установку, восстановите все. Squeeze, будучи текущим стабильным выпуском, - хорошая ставка.

  • Живите со своим frankendebian: если вам нужна libc6-dev, вам также придется установить ее из тестирования. Вы будете запускать нерекомендуемую и редко тестируемую конфигурацию, что-то может сломаться.

  • Попытайтесь перейти на более раннюю версию: используйте apt-show-versions, чтобы определить, что установлено на вашем компьютере, и попробуйте понизить версию этих пакетов (см. Примечание ниже!). Получите список этих пакетов, укажите их текущие версии lenny с помощью apt-cache policy packagename, затем запустите aptitude install package1=thelennyversion package2=thelenyversion... перечисление всех пакетов, которые необходимо понизить. ЭТО МОЖЕТ НЕ РАБОТАТЬ ВООБЩЕ, см. Примечание ниже. Обратите внимание: когда aptitude думает об этом некоторое время и предлагает решение о том, как работать с зависимостями, и оставляет вас с запросом «Вы хотите принять это решение? (Да)», вы МОЖЕТЕ сказать «Нет», потому что » попробуй найти другое решение ».

К сожалению, в debian не поддерживается возврат пакетов к более ранней версии. Иногда для некоторых пакетов это может работать между версиями, в которых не было изменений конфигурации или формат двоичных файлов не менялся, но это зависит от того, что происходит в сценариях, сопровождающих пакеты, для установки / обновления / удаления. Пакет, с которым у вас возникли проблемы (libc6), является наиболее фундаментальным пакетом в системе, от которого зависит практически все.