После обновления с 10.04 по 12.04 я пытаюсь установить разные пакеты. Например, ia32-libs и skype (4.0).
При попытке установить их я получаю сообщение об ошибке «Невозможно устранить проблемы, вы получили сообщение об ошибке».
Вывод команд:
sudo apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
После запуска:
sudo dpkg --configure -a
foo@foo:~$ sudo apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
С той же проблемой я запустил эту команду проверки пакета из другого ответа (dpkg --get-selections | grep hold) и увидел
tomcat7 deinstall
tomcat7-common install
, поэтому я использовал «apt-get remove tomcat7-common»
Затем я смог установить Tomcat 6 (я удалял Tomcat 7 и устанавливал Tomcat 6, как и вы).
Для меня ничего из этого не было, потому что моя система не обновлялась. Я сделал
Home Key > Software Updater > Install
и обновил мою систему; впоследствии я мог установить свой пакет обычно с помощью apt.
Это конкретное сообщение об ошибке может указывать на то, что у вас есть пакеты, но это может также указывать на другую проблему.
Вы можете получить список фактических пакетов с помощью:
dpkg --get-selections | grep hold
Если их нет, или ни один из них не выглядит связанным, то это, вероятно, что-то еще. Внимательно проверьте вывод команды, которую вы пытались, когда вы получили сообщение об ошибке, так как могут быть другие подсказки в полном выходе из этой команды, кроме сообщения об ошибке.
Еще один способ устранения неполадок может быть для использования aptitude, а не apt-get, чтобы попытаться установить ваш пакет:
sudo aptitude install <packagename>
Aptitude будет сдаваться менее легко и попытается найти решения, которые могут включать в себя модификацию других пакетов. Это может дать вам больше объяснений проблемы и возможности ее исправления.
Иногда aptitude будет слишком стремиться к удалению или уменьшению количества пакетов для удовлетворения вашего запроса, и в этом случае повторная попытка с -f изменяет его приоритеты и помогает придумать решения, которые включают удаление / понижение рейтинга меньшего количества пакетов, даже если это означает, что не все изменения, которые вы запросили, могут пойти дальше:
sudo aptitude -f install <packagename>
Это случилось со мной. Все, что я сделал, это sudo apt-get update, и это исправило мою проблему. Удачи.
Я столкнулся с похожим сценарием относительно отсутствующих зависимостей. В моем случае я пытался установить завиток на ubuntu saucy salamander 13.10 ...
Ошибка указала, что для зависимости требуется более ранняя версия библиотеки curl3.
Я смог
Когда он отметил отсутствующую зависимость и причину (требуется более ранняя версия файла библиотеки), она дала мне несколько вариантов того, как реагировать ... y // n / q
y / отменит установку, N будет искать другую опцию, а n просто уйдет и не делайте ничего, оставляя сломанный пакет.
Я выбрал N , и он дал мне возможность понизить файл библиотеки до более ранней версии. Итак, вот что я сделал, и curl закончил установку без ошибок.
Я могу заново изучить файл библиотеки после установки, но, эй, пока все хорошо.У меня был аналогичный сценарий в новой версии 14.04, без файлов, перечисленных в dpkg --get-selections | grep hold, и без радости после sudo apt-get update.
Что это исправить для меня было простым
sudo apt-get autoremove
Когда я попытался переустановить отказоустойчивый пакет, он работал нормально. Ура!
Для меня ничего из этого не было, потому что моя система не обновлялась. Я сделал
Home Key > Software Updater > Install
и обновил мою систему; впоследствии я мог установить свой пакет обычно с помощью apt.
Это конкретное сообщение об ошибке может указывать на то, что у вас есть пакеты, но это может также указывать на другую проблему.
Вы можете получить список фактических пакетов с помощью:
dpkg --get-selections | grep hold
Если их нет, или ни один из них не выглядит связанным, то это, вероятно, что-то еще. Внимательно проверьте вывод команды, которую вы пытались, когда вы получили сообщение об ошибке, так как могут быть другие подсказки в полном выходе из этой команды, кроме сообщения об ошибке.
Еще один способ устранения неполадок может быть для использования aptitude, а не apt-get, чтобы попытаться установить ваш пакет:
sudo aptitude install <packagename>
Aptitude будет сдаваться менее легко и попытается найти решения, которые могут включать в себя модификацию других пакетов. Это может дать вам больше объяснений проблемы и возможности ее исправления.
Иногда aptitude будет слишком стремиться к удалению или уменьшению количества пакетов для удовлетворения вашего запроса, и в этом случае повторная попытка с -f изменяет его приоритеты и помогает придумать решения, которые включают удаление / понижение рейтинга меньшего количества пакетов, даже если это означает, что не все изменения, которые вы запросили, могут пойти дальше:
sudo aptitude -f install <packagename>
Это случилось со мной. Все, что я сделал, это sudo apt-get update, и это исправило мою проблему. Удачи.
Я столкнулся с похожим сценарием относительно отсутствующих зависимостей. В моем случае я пытался установить завиток на ubuntu saucy salamander 13.10 ...
Ошибка указала, что для зависимости требуется более ранняя версия библиотеки curl3.
Я смог
Когда он отметил отсутствующую зависимость и причину (требуется более ранняя версия файла библиотеки), она дала мне несколько вариантов того, как реагировать ... y // n / q
y / отменит установку, N будет искать другую опцию, а n просто уйдет и не делайте ничего, оставляя сломанный пакет.
Я выбрал N , и он дал мне возможность понизить файл библиотеки до более ранней версии. Итак, вот что я сделал, и curl закончил установку без ошибок.
Я могу заново изучить файл библиотеки после установки, но, эй, пока все хорошо.У меня был аналогичный сценарий в новой версии 14.04, без файлов, перечисленных в dpkg --get-selections | grep hold, и без радости после sudo apt-get update.
Что это исправить для меня было простым
sudo apt-get autoremove
Когда я попытался переустановить отказоустойчивый пакет, он работал нормально. Ура!
Это некоторые быстрые и легкие способы исправить ошибку you have held broken packages
.
/etc/apt/sources.list
и убедитесь, что нет никаких источников программного обеспечения для другой выпуск Ubuntu, чем релиз Ubuntu, который вы используете в настоящее время. Если вы найдете какие-либо неправильные строки выпуска в sources.list, откройте файл sources.list с помощью sudoedit /etc/apt/sources.list
, закомментируйте неправильные строки в sources.list, указав перед ними символ #
, сохраните файл sources.list и запустите sudo apt update
, чтобы обновить список доступных пакетов программного обеспечения. sudo apt install synaptic
Открыть Synaptic и в Synaptic select Изменить -> Fix Broken Packages . Try 'apt-get -f install' with no packages (or specify a solution)
Выполните следующую команду: sudo apt-get -f install