Система пакетов сломана. Как это исправить?

50

Я только недавно купил Arduino и требует компиляции программного обеспечения gcc-avr / avrdude. Я установил avr для другого компонента микропроцессора некоторое время назад, но, очевидно, это устаревшая версия (gcc версии 3.3 20030512 (предварительная версия)), поэтому я решил обновить их, но это не сработало.

(Обратите внимание, что раньше я также сломал свой aptdaemon из-за незавершенной установки Wine (не удалось получить соглашение об установке шрифта), но я исправил это путем переустановки, а затем принял соглашение.)

Я пытаюсь обновить их, запустив скрипт сборки bingo, но требуемые зависимости не могут быть установлены из-за авр ... терминальных отчетов

Reading package lists... Done
Building dependency tree       
Reading state information... Done
build-essential is already the newest version.
libncurses5-dev is already the newest version.
libncurses5-dev set to manually installed.
libusb-0.1-4 is already the newest version.
libx11-dev is already the newest version.
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
arduino-core : Depends: gcc-avr but it is not going to be installed
avr-libc : Depends: gcc-avr (>= 1:4.3.4) but it is not going to be installed
Depends: binutils-avr (>= 2.20) but it is not going to be installed
binutils-dev : Depends: binutils (= 2.21.0.20110327-2ubuntu3) but 2.21.0.20110327-2ubuntu2 is to be installed
libcwidget-dev : Depends: libcwidget3 (= 0.5.16-3ubuntu2) but it is not going to be installed
Depends: libsigc++-2.0-dev but it is not going to be installed
Depends: libncursesw5-dev but it is not going to be installed
libmpfr-dev : Depends: libgmp3-dev (>= 4.2.dfsg-1) but it is not going to be installed
python-dev : Depends: python (= 2.7.1-0ubuntu5.1) but 2.7.1-0ubuntu5 is to be installed
Depends: python2.7-dev (>= 2.7.1-1~) but it is not going to be installed
tk8.4-dev : Depends: tk8.4 (= 8.4.19-4) but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Но работает

apt-get -f install

результаты в

(Reading database ... 163021 files and directories currently installed.)
Unpacking binutils-avr (from .../binutils-avr_2.20.1-1ubuntu2_i386.deb) ...
dpkg: error processing /var/cache/apt/archives/binutils-avr_2.20.1-1ubuntu2_i386.deb (--unpack):
trying to overwrite '/usr/bin/avr-size', which is also in package avr-binutils 2.13.90.030512-2
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Unpacking gcc-avr (from .../gcc-avr_1%3a4.3.5-1_i386.deb) ...
dpkg: error processing /var/cache/apt/archives/gcc-avr_1%3a4.3.5-1_i386.deb (--unpack):
trying to overwrite '/usr/bin/avr-g++', which is also in package avr-gcc-c++ 3.2.90.20030512-2
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/binutils-avr_2.20.1-1ubuntu2_i386.deb
/var/cache/apt/archives/gcc-avr_1%3a4.3.5-1_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

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

The following packages have unmet dependencies:
arduino-core: Depends: gcc-avr but it is not installed
avr-libc: Depends: gcc-avr (>= 1:4.3.4) but it is not installed
Depends: binutils-avr (>= 2.20) but it is not installed

который затем говорит мне попробовать запустить apt-get -f install, который будет таким же, как и в прошлый раз.

Так как я могу исправить свою систему, мне действительно нужен новый avr, пожалуйста :) Кстати, моя система - Ubuntu 11.04

Vigi
источник
У вас установлен синаптик в вашей системе ?!
Да, почему? Я не должен иметь это?
Омер
Та же ошибка (но на основе libboost). Ни один из ответов не сработал для меня.
изоморфизм

Ответы:

41

После того, как вы получите эту ошибку, попробуйте sudo apt-get -f installпринудительно установить файлы, которые не были загружены из-за ошибки.

Затем попробуйте sudo apt-get updateснова, sudo apt-get -f installвперед и назад, пока не останется только пакет с ошибкой.

sudo dpkg --configure -a

и очистить кеш

sudo apt-get clean

Самка луня
источник
3
Спасибо за ответ, но я нашел решение, как только вы опубликовали это: PI открыл менеджер пакетов synaptic и отфильтровал два сломанных пакета, которые я затем удалил с помощью SPM, и теперь все работает без проблем. Успел установить зависимости, и теперь я устанавливаю avr, используя скрипт bingo! :) Это еще не закончено, но если это не удастся, я попробую ваш ответ
Vigi
приятно слышать его исправлено
Ringtail
ок, просто удалил 11.04 раздел и заново установил 11.10. сейчас бегаю рядом с Windows Vista. Так что теперь у меня установлена ​​последняя версия avr / binutils / libs и т. Д. Так что теперь я могу скомпилировать вещи для Arduino :) ууу!
Виги
В результате этой проблемы я также не смог загрузить драйверы мыши и драйверы WLAN. Это означает, что у меня больше нет подключения к интернету, и я не могу использовать sudo apt-get -f install.
Джон Слегерс
21

Это обычно происходит в результате «Неопределенных зависимостей для установленных пакетов».

Вот простое решение, если у вас установлен Synaptic:

  • Откройте Synaptic.
  • Перейти к «Статус» (в левой навигации).
  • Выберите «Сломанный».
  • Удалите эти сломанные пакеты.

В противном случае это может быть сделано через CLI:

Откройте терминал и выполните эту команду:

sudo apt-get clean

Выше команда очистит локальный репозиторий от полученного файла пакета.

sudo apt-get install -f

Исправит нарушенные зависимости, т.е. -fздесь означает «исправить нарушенные».

sudo dpkg --configure -a

настроит все ( -a) пакеты, которые еще не были настроены. В конце запустите команду обновления sudo apt-get update.

Набиль Ахмед
источник
В результате этой проблемы я также не смог загрузить драйверы мыши и драйверы WLAN. Это означает, что у меня больше нет подключения к интернету, и я не могу использовать sudo apt-get -f install.
Джон Слегерс
Вы можете использовать автономный / переносимый менеджер пакетов, например Keryx или Cube, - который поможет вам загрузить пакеты и последние репозитории (в папке или напрямую в pendrive) с другого компьютера с подключением к Интернету (Linux или Windows), как только подключите pendrive к компьютер без подключения к интернету, и установите загруженные пакеты.
Набиль Ахмед
Пошаговое руководство по использованию Cube (я сам этим не пользовался) - community.linuxmint.com/tutorial/view/1583
Набиль Ахмед,
Еще один ответ на вопрос аскубунту с пошаговой настройкой Keryx
Набиль Ахмед
Я смог решить только с помощью sudo apt-get install -fи sudo dpkg --configure -a... после перезагрузки я вернулся в сеть, аудио и так далее :)
Лука
16

Открытая синаптикаУстановить синаптик . Затем перейдите в статус и выберите Broken . Затем удалите полностью сломанные пакеты.

Это должно исправить вашу систему.

введите описание изображения здесь

Сообщество
источник
Я на Ubuntu 12.04. Как только я открыл Synaptics Software Center, он сказал, что каталог поврежден и должен быть восстановлен, и предложил мне кнопку ремонта, которая сразу же устранила проблему.
Тайлер Кольер
3

Попробуйте: sudo apt-get update && sudo apt-get -f install
я надеюсь, что это решит проблему.

Frantique
источник
2
Не разрешил для меня.
Дэмиен Рош
В результате этой проблемы я также не смог загрузить драйверы мыши и драйверы WLAN. Это означает, что у меня больше нет подключения к интернету, и я не могу использовать sudo apt-get -f install.
Джон Слегерс
1

Если вы еще этого не сделали, попробуйте изменить ссылку на хранилище пакетов на «Главная» или «Соединенные Штаты» . Делая это фиксированные мои Python-Dev неудовлетворенных зависимостей проблем (мой 12,04 установка была с помощью репозитория пакетов Великобритании, ранее).

  1. В «Ubuntu Software Center» (USC) перейдите в меню / вкладку «Правка => Источники программного обеспечения».
  2. Измените раскрывающееся значение «Загрузить с» на «Главный сервер» или сервер в США.
  3. Оставьте USC, откройте «Диспетчер обновлений» из меню программы Ubuntu и «Проверьте» на наличие обновлений программного обеспечения (или введите «sudo apt-get update» в окне терминала).
  4. Обновите программное обеспечение, как обычно, например, через «Менеджер обновлений» или apt-get / aptitude в терминале.

Это восстановило мой репозиторий, и я продолжил устанавливать все, что мне потом понадобилось, как обычно.

Прежде чем исправить мою проблему с помощью приведенных выше инструкций, различные команды aptitude / apt-get предложили мне удалить много-много пакетов, но, как вы можете оценить, мне не хотелось терять 6 месяцев + добавления пакетов, и это хотя Я делаю снимок списка пакетов время от времени (см. Мою суть для подсказок)! Я очень рад, что узнал об инструкциях, которые я оставляю здесь.

Надеюсь это поможет.

Большой Богатый
источник
1

Была такая же проблема,

sudo apt-get clean

с последующим

sudo apt-get update

с последующим

sudo apt-get upgrade -f

починил это. Надеюсь, это поможет!

user152730
источник
1
В результате этой проблемы я также не смог загрузить драйверы мыши и драйверы WLAN. Это означает, что у меня больше нет подключения к интернету, и я не могу использовать sudo apt-get -f install.
Джон Слегерс