Невозможно исправить проблемы, у вас есть сломанные пакеты

После обновления с 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.
312
задан 23 August 2014 в 06:30

12 ответов

Это тоже случилось со мной. Все, что я сделал, это sudo apt-get update , и это устранило мою проблему. Удачи.

40
ответ дан 23 August 2014 в 06:30

У меня был аналогичный сценарий при новой установке 14.04, без файлов, перечисленных в dpkg --get-selections | grep hold , и никаких радостей после sudo apt-get update .

То, что помогло исправить это для меня, было простым

sudo apt-get autoremove

Когда я попытался переустановить неисправный пакет работал нормально. Ура!

28
ответ дан 23 August 2014 в 06:30

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

Вы можете получить список фактических удерживаемых пакетов с помощью:

dpkg --get-selections | grep hold

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

Другой метод устранения неполадок может заключаться в использовании aptitude, а не чем apt-get, чтобы попытаться установить ваш пакет:

sudo aptitude install <packagename>

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

Иногда aptitude будет слишком стремиться удалить или понизить версию большого количества пакетов, чтобы удовлетворить ваш запрос, и в этом случае повторите попытку с помощью -f меняет свои приоритеты и помогает предлагать решения, которые включают удаление / понижение версии меньшего количества пакетов, даже если это означает, что не все изменения, которые вы запрошены, могут быть выполнены:

sudo aptitude -f install <packagename>
307
ответ дан 23 August 2014 в 06:30

Это несколько быстрых и простых способов исправить ошибку , которая содержит неработающие пакеты .

  • Откройте файл sources.list в / etc / apt /sources.list и убедитесь, что нет источников программного обеспечения для другой версии Ubuntu, кроме той версии Ubuntu, которую вы используете в настоящее время. Если вы обнаружите какие-либо неправильные строки выпуска в sources.list, откройте файл sources.list с помощью sudoedit /etc/apt/sources.list, закомментируйте неправильные строки в sources.list, поставив перед ними # , сохраните файл sources.list и запустите sudo apt update , чтобы обновить список доступных пакетов программного обеспечения.

  • Выберите параметр Исправить поврежденные пакеты в диспетчере пакетов Synaptic. Выполните следующие команды, чтобы установить Synaptic.

     sudo apt update
    sudo apt upgrade
    sudo apt установить синаптический
     

    Откройте Synaptic и в Synaptic выберите Edit -> Fix Broken Packages , а затем повторите Edit -> Fix Broken Packages секунду времени.

    В Synaptic на левой панели нажмите кнопку Пользовательские фильтры , которая отмечена курсором мыши на снимке экрана ниже. Из списка в верхнем левом углу выберите Сломанный . На центральной панели будут перечислены все поврежденные пакеты, которые все еще необходимо восстановить.

    show broken packages in Synaptic

    Выберите поврежденные пакеты по одному. Выберите неработающий пакет, затем откройте терминал и запустите apt policy <имя-пакета> . Результаты этой команды скажут вам, был ли этот сломанный пакет установлен из репозиториев Ubuntu по умолчанию или из другого источника. Если неработающий пакет был установлен из другого источника, возможно, этот пакет можно удалить вместе с исходным программным обеспечением и заменить другой версией того же пакета из репозиториев Ubuntu по умолчанию. Обычно это означает исправление неработающего пакета путем понижения версии этого пакета до более старой.

  • Если вы получаете это сообщение об ошибке:

     Попробуйте 'apt-get -f install' без пакетов (или укажите решение)
     

    Выполните следующие команды:

     sudo apt update
    sudo apt upgrade
    sudo apt-get -f install
     
  • Удаление поврежденного пакета вручную.

    1. Найдите свой пакет в / var / lib / dpkg / info

       ls -l / var / lib / dpkg / info |  grep <пакет>
       
    2. Переместите папку пакета в другое место.

       cd / tmp && sudo mkdir new-package-location
      sudo mv /var/lib/dpkg/info/.* / tmp / new-package-location /
       
    3. Выполните следующую команду:

       sudo dpkg --remove --force-remove-reinstreq <пакет>
       

Если все эти методы не работают, возможно, что поврежденные пакеты вызваны чем-то, что настолько глубоко встроено в операционную систему, что ни один из этих методов не оказывает на нее никакого воздействия. Первое очевидное место для поиска этого глубоко встроенного «чего-то» - это источники программного обеспечения в /etc/apt/sources.list . Проверьте файл sources.list, чтобы увидеть, содержит ли он нестандартные строки, которые могут вызывать ошибку битых пакетов. Стандартный файл sources.list Ubuntu выглядит так же, как файлы sources.list в этот ответ .

Правильный способ удалить подозрительную строку из sources.list - закомментировать ее, поставив перед ней # символ. Затем запустите sudo apt update , чтобы обновить список доступного программного обеспечения.

16
ответ дан 23 August 2014 в 06:30

Имея ту же самую проблему, я запустил эту команду проверки пакета из другого ответа (dpkg --get-selections | grep hold). и увидел

tomcat7                                         deinstall
tomcat7-common                                  install

, поэтому использовал "apt-get delete tomcat7-common"

Затем смог установить Tomcat 6 (я удалял Tomcat 7 и устанавливал Tomcat 6 так же, как и вы)

7
ответ дан 23 August 2014 в 06:30

Я столкнулся с аналогичным сценарием, касающимся отсутствия зависимостей. В моем случае я пытался установить curl на ubuntu saucy salamander 13.10 ...

В сообщении об ошибке говорилось, что для зависимости требуется более ранняя версия библиотеки curl3.

Я смог перейти на более раннюю версию, попытавшись установить curl с помощью aptitude.

Когда он заметил отсутствие зависимости и причины (требовалась более ранняя версия файла библиотеки), это дало мне несколько вариантов ответа ... y / / n / q

Y прервал установку, N искал другой вариант, а Q просто завершил работу и больше ничего не сделал, оставив неработающий пакет.

I выбрал N , и это дало мне возможность понизить версию файла библиотеки до более ранней версии. Так я и сделал, и curl завершил установку без ошибок.

  • Я могу еще раз обновить файл библиотеки после установки, но пока все хорошо.
13
ответ дан 23 August 2014 в 06:30

Для меня ничего из вышеперечисленного не помогло, потому что моя система не была обновлена . Я сделал

Home Key> Software Updater> Install

и обновил свою систему; после этого я мог нормально установить свой пакет с помощью apt .

2
ответ дан 23 August 2014 в 06:30

У меня была такая же проблема с переустановкой xsane после неудачной ppa установки. Как и в случае с йочанной (теперь называется "StackExchange What The Heck"), "никаких файлов, перечисленных в dpkg --get-selections | grep hold, и никаких радостей после sudo apt-get update".

Подсказка, которую мне дала apt-get это

xsane : Зависит от: libsane (>= 1.0.24), но он не будет установлен

Из-за ответа yochannah у меня возникло ощущение, что я должен удалить некоторые ранее установленные пакеты. И это было так, мне пришлось вручную удалить все связанные пакеты в sane , среди прочих xsane-common и libsane, который все еще был установлен как ppa версия. Поэтому следите за тем, что у вас установлено ранее , и приведите в порядок!

2
ответ дан 16 October 2019 в 15:11

Это работало на меня

sudo apt update && sudo apt upgrade -y && sudo apt autoremove
sudo apt list | grep python | cut -d "/" -f1 | xargs sudo apt-get remove -y
sudo apt list | grep python3.6 | grep -v libboost | cut -d "/" -f1 | xargs sudo apt-get install -y
sudo apt-get install python-pip -y
sudo apt-get install python3-pip -y
0
ответ дан 22 November 2019 в 22:41

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

sudo apt update && sudo apt upgrade -y && sudo apt autoremove

Что должно было сработать.Он не дал мне никаких ошибок, но он работал быстро и дал мне список пакетов, которые еще не готовы к выпуску. В результате я не смог установить дополнительные драйверы.

Я исправил это, выполнив отдельно команды update / upgrade / autoremove ...

sudo apt update
sudo apt upgrade -y
sudo apt autoremove

Обычно это заняло много времени - особенно обновление - и теперь мои установщики работают нормально . Я до сих пор не знаю, почему объединение этих команд в одну не сработало.

# head-scratcher

Наконец-то запустилась установка моего драйвера.

Additional Drivers Installation Running. Удачи!

Обновление: Немного подумав, я думаю, что предупреждения, которые я получал о пакетах, еще не готовы к установке, обрабатывались как ошибки и прерывали работу цепочки &&. Возможно, я просто связал команды вместе с; это сработало бы.

sudo apt update ; sudo apt upgrade -y ; sudo apt autoremove
2
ответ дан 22 November 2019 в 22:41

Я столкнулся с той же проблемой при обновлении с 14.04 LTS до 16.04 LTS . Вам нужно отследить поврежденный пакет и рекурсивно попробовать переустановить или обновить его.

Сначала удалите все зависимые библиотеки ( autoremove ) и установите все недостающие библиотеки с помощью sudo apt-get -f install ( -f означает - исправление отсутствует )

sudo apt-get autoremove
sudo apt-get -f install
sudo apt-get update
sudo apt-get upgrade 

Установите набор инструментов ubuntu из PPA

sudo add-apt-repository ppa:ubuntu-toolchain-r/test

Затем установите aptitude .

sudo apt install aptitude

Диспетчер пакетов aptitude намного удобнее, чем apt-get . Также предлагается разрешить конфликтующие зависимости и сломанные пакеты. Следующие конфликты были в моей системе. Они могут отличаться от ваших, но высокоуровневый метод их решения будет таким же.

$ sudo aptitude -f install build-essential
The following NEW packages will be installed:
  build-essential cpp{a} cpp-5{a} g++{a} g++-5{a} gcc{a} gcc-5{a} libasan2{a} libcc1-0{ab} 
  libcilkrts5{a} libgcc-5-dev{a} liblsan0{ab} libmpx0{a} libstdc++-5-dev{a} 
The following packages will be upgraded:
  gcc-5-base libstdc++6{b} 
2 packages upgraded, 14 newly installed, 0 to remove and 5 not upgraded.
Need to get 29.6 MB of archives. After unpacking 100 MB will be used.
The following packages have unmet dependencies:
 liblsan0 : Depends: gcc-9-base (= 9.3.0-10ubuntu2~16.04) but 9.3.0-11ubuntu0~14.04 is installed.
 libcc1-0 : Depends: gcc-9-base (= 9.3.0-10ubuntu2~16.04) but 9.3.0-11ubuntu0~14.04 is installed.
 libstdc++6 : Depends: gcc-9-base (= 9.3.0-10ubuntu2~16.04) but 9.3.0-11ubuntu0~14.04 is installed.

Способности иногда дают жизнеспособные потенциальные решения. Например, обновление или понижение уровня других библиотек для разрешения конфликта. В моем случае решения не было. Следовательно, мне нужно продолжить отслеживание зависимостей.

Поскольку build-essential требует gcc-5 .

$ sudo apt-get -f install gcc-5

The following packages have unmet dependencies:
 gcc-5 : Depends: cpp-5 (= 5.5.0-12ubuntu1~16.04) but it is not going to be installed
         Depends: gcc-5-base (= 5.5.0-12ubuntu1~16.04) but 5.4.0-6ubuntu1~16.04.12 is to be installed
         Depends: libcc1-0 (>= 5.5.0-12ubuntu1~16.04) but it is not going to be installed
         Depends: libgcc-5-dev (= 5.5.0-12ubuntu1~16.04) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Но gcc-5 , в свою очередь, зависит на cpp-5

$ sudo apt-get -f install cpp-5

The following packages have unmet dependencies:
 cpp-5 : Depends: gcc-5-base (= 5.5.0-12ubuntu1~16.04) but 5.4.0-6ubuntu1~16.04.12 is to be installed

cpp-5 зависит от gcc-5-base . Здесь вы можете увидеть конкретный конфликт. Aptitide предлагает несколько вариантов разрешения конфликта. В моем случае обновление libstdc ++ 6 решило проблему.

$sudo aptitude -f install gcc-5-base
The following packages will be REMOVED:  
  gcc-5-base{u} 
0 packages upgraded, 0 newly installed, 1 to remove and 6 not upgraded.
Need to get 0 B of archives. After unpacking 67.6 kB will be freed.
The following packages have unmet dependencies:
 libstdc++6 : Depends: gcc-5-base (= 5.4.0-6ubuntu1~16.04.12) but it is not going to be installed.
open: 115; closed: 488; defer: 35; conflict: 58                                                          .The following actions will resolve these dependencies:

     Keep the following packages at their current version:                        
1)     gcc-5-base [5.4.0-6ubuntu1~16.04.12 (now, xenial-security, xenial-updates)]

Accept this solution? [Y/n/q/?] n
The following actions will resolve these dependencies:

      Upgrade the following packages:                                                                     
1)      libstdc++6 [5.4.0-6ubuntu1~16.04.12 (now, xenial-security, xenial-updates) -> 9.3.0-10ubuntu2~16.0

Наконец, теперь конфликт разрешен, попробуйте снова установить build-essentials .

$ sudo aptitude -f install build-essential
0
ответ дан 5 January 2021 в 23:32

Я пробовал все методы, упомянутые на этой странице. У меня как-то не получилось.

Вот как я исправил: Отследите поврежденный пакет и переустановите его.

Вот пример:

Я пытаюсь установить aptitude .

sudo apt install aptitude

sudo apt install aptitude

Не удалось установить libcwidget3v5

sudo apt install libcwidget3v5

sudo apt install libcwidget3v5

Попробуйте установить libncursesw5

sudo apt install libncursesw5

sudo apt install libncursesw5

Попробуйте установить libtinfo5

sudo apt install libtinfo5

sudo apt install libtinfo5

Бинго, виноват этот парень 11113738] libtinfo5 , он уже там, удалите и переустановите.

Удалите или очистите libtinfo5 .

apt purge libtinof5 было бы лучше, поскольку он также удаляет файлы конфигурации.

sudo apt remove libtinfo5

sudo apt install libtinfo5

Переустановите libtinfo5 снова

sudo apt install libtinfo5

reinstall libtinfo5

Теперь попробуйте установить aptitude

sudo apt install aptitude

aptitude install success

5
ответ дан 5 January 2021 в 23:32

Другие вопросы по тегам:

Похожие вопросы: