Как устранить ошибку «E: Unmet dependencies.»? [дубликат]

Иногда, когда я устанавливаю что-то, я получаю следующее сообщение об ошибке:

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 package1 : Depends: package2 (>= 1.8) but 1.7.5-1ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.

Как я могу решить эту проблему?

617
задан 23 October 2014 в 19:43

14 ответов

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

Решения:

Всегда рекомендуется создавать резервные копии файлов конфигурации, например /etc/apt/sources.list , чтобы при необходимости можно было отменить изменения.

  • Если ошибка показывает что-то вроде этого:

    : Зависит: (= version), но эта версия должна быть установлена ​​

    Затем убедитесь, что ограничен и репозитории юниверса включены. Нажмите Alt + F2 , введите software-properties-gtk и нажмите Enter .

    В разделе Ubuntu Software ], включите все репозитории.

  • Одной из возможных причин неудовлетворенных зависимостей может быть поврежденная база данных пакетов и / или некоторые пакеты не были установлены должным образом. Чтобы решить эту проблему,нажмите Alt + Ctrl + T , чтобы открыть терминал, и попробуйте выполнить одну из следующих команд:

     sudo apt-get clean 

    или,

     sudo apt-get autoclean 

    apt-get clean очищает локальный репозиторий от полученных файлов пакета (файлы .deb). Он удаляет все, кроме файла блокировки, из / var / cache / apt / archives / и / var / cache / apt / archives / partial /. apt-get autoclean очищает локальный репозиторий от извлеченных файлов пакетов, но в отличие от apt-get clean , он удаляет только файлы пакетов, которые больше не могут быть загружены, и которые в основном бесполезны.

  • Одно из основных исправлений для решения проблем с зависимостями - запустить:

     sudo apt-get -f install 

    -f здесь означает «исправление сломано». Apt попытается исправить нарушенные зависимости. Если вы вручную установили пакет с неудовлетворенными зависимостями, apt-get установит эти зависимости, если это возможно, в противном случае он может просто удалить установленный вами пакет для решения проблемы.

    Затем запустите :

     sudo dpkg --configure -a 

    Затем запустите это еще раз:

     sudo apt-get -f install 

    Если вывод:

    0 обновлено, 0 установлено заново, 0 удалено и 1 не обновлен.

    Это означает, что произошел сбой.

  • Следующее решение - запустить:

     sudo apt-get -u dist-upgrade 

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

     sudo apt-get -o Debug :: pkgProblemResolver = yes dist-upgrade 

    Если не удается исправить конфликты, он выйдет с:

    0 обновлено, 0 недавно установлен, 0 для удаления и 6.

    Удаляйте удерживаемые пакеты один за другим, каждый раз выполняя dist-upgrade , пока не останутся все удерживаемые пакеты. Затем переустановите все необходимые пакеты. Обязательно используйте параметр - dry-run , чтобы вы были полностью осведомлены о последствиях:

     sudo apt-get remove --dry-run имя-пакета 

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

Наконец, если все остальное не помогает, вы можете попытаться удовлетворить зависимости самостоятельно, либо найдя и установив необходимые пакеты, либо установив их из исходного кода, а затем создав для них пакеты « deb ».

Отключить / удалить / очистить PPA:

PPA (личный архив пакетов) - это репозитории, размещенные на Launchpad . Вы можете использовать PPA для установки или обновления пакетов, которые недоступны в официальных репозиториях Ubuntu.

Одной из наиболее частых причин неудовлетворенных зависимостей являются PPA, особенно когда они используются для обновления существующего пакета в репозиториях Ubuntu. Для решения проблемы у вас есть три варианта: отключить, очистить (вернуться к исходному пакету в репозиториях Ubuntu) или удалить PPA.

  • Отключить:

    Отключение PPA означает, что больше не будет обновлений для пакетов, установленных из этого PPA. Чтобы отключить PPA: Откройте Центр программного обеспечения> Правка> Источники программного обеспечения или

    Нажмите Alt + F2 и запустите software-properties-gtk .

    Щелкните вкладку Другое программное обеспечение , вы увидите, что каждый PPA имеет здесь две строки, одну для скомпилированных пакетов и одну для источника, Снимите флажок обе строки для отключения PPA. Здесь вы также можете добавлять и удалять PPA.

  • Purge:

    Очистка PPA означает понижение версии пакетов в выбранном PPA до версии в официальных репозиториях Ubuntu и отключение этого PPA. PPA Purge делает именно это. Чтобы установить PPA Purge, выполните следующую команду:

     sudo apt-get install ppa-purge 

Но, учитывая, что вопрос apt не работает, вышеуказанная команда завершится ошибкой. Поэтому используйте эту команду

mkdir ppa-purge && cd ppa-purge && wget http://mirror.pnl.gov/ubuntu/pool/universe/p/ppa-purge/ppa-purge_0.2.8+bzr56_all.deb && wget http://mirror.pnl.gov/ubuntu//pool/main/a/aptitude/aptitude_0.6.6-1ubuntu1_i386.deb && sudo dpkg -i ./*.deb

Чтобы использовать PPA Purge:

sudo ppa-purge ppa:someppa/ppa

Если команда 'ppa-purge' по какой-то причине завершилась неудачно, вы не сможете снова запустить 'ppa-purge', пока не снова включите PPA (чтобы включить PPA выполните те же действия, что и при отключении PPA, и проверьте обе строки конкретного PPA, чтобы включить его).

Примечание: Очистка PPA не удаляет PPA ( может быть в будущем ), поэтому вам придется вручную удалить PPA.

  • Удалить:

    Если пакет, установленный из PPA, не существует в официальных репозиториях Ubuntu, используйте PPA Purge не рекомендуется, потому что нечего понижать, и PPA Purge также не удалит его. Чтобы удалить PPA и установленные пакеты, выполните следующие команды: (Игнорируйте первую команду, если вы не хотите удалять установленные пакеты)

     sudo apt-get autoremove --purge package-name
    sudo add-apt-repository --remove ppa: someppa / ppa
    sudo apt-получить авточистку
     

В качестве альтернативы вы можете использовать Y PPA Manager , чтобы отключить / удалить / очистить PPA (подробности в конце ответа).

Превентивные меры:

Итак, как мы можем избежать этого в первое место?

  • Держите Ubuntu в актуальном состоянии. Ubuntu автоматически уведомляет о наличии обновлений. Вы также можете проверить наличие доступных обновлений, щелкнув Индикатор сеанса на панели Unity:

    Или нажмите Alt + Ctrl ] + T , чтобы открыть терминал и выполнить следующие команды:

     sudo apt-get update
    sudo apt-get upgrade 

    Обновление: синхронизирует список доступных пакетов с серверами в исходных репозиториях. Обновление: загружает и устанавливает любые более новые версии установленных пакетов.

  • Если вы решите добавить другие репозитории в sources.list, убедитесь, что репозиторий предназначен для работы (и заведомо работает) с Ubuntu. Репозитории, которые не предназначены для работы с вашей версией Ubuntu, могут привести к несогласованности в вашей системе и вынудить вас переустановить. Кроме того, убедитесь, что вам действительно нужно добавить внешние репозитории, поскольку программные пакеты, которые вы ищете, возможно, уже были включены в официальные репозитории! Источник
  • Удалите повторяющиеся PPA. Y PPA Manager (руководство по установке в конце ответа) может легко сканировать и удалять повторяющиеся PPA.

    • Нажмите Alt + F2 и запустите y-ppa-manager , чтобы открыть Y PPA Manager.
    • После открытия дважды щелкните или нажмите Введите в Advanced .
    • В появившемся окне выберите Отсканируйте и удалите повторяющиеся PPA и нажмите OK.

enter image description here

Получение справки:

При запросе помощи на Askubuntu или любом другом справочном форуме вы должны включить вывод следующих команд в свой вопрос:

  • Вывод фактической ошибки:

     sudo apt-get install имя-пакета 
  • Это покажет ваш sources.list:

     cat /etc/apt/sources.list
  • Это покажет список PPA (если есть):

     cat /etc/apt/sources.list.d/*

Дополнительные источники:


Y Менеджер PPA : Y PPA Manager - это универсальный магазин для всех ваших потребностей PPA.

y ppa manager

Вот некоторые из его функций:

  • поиск пакетов во всех списках PPA Launchpad
  • и загрузка пакетов в PPA
  • добавить / удалить / очистить PPA
  • резервное копирование и восстановление источников PPA
  • удалить повторяющиеся источники PPA

Чтобы установить Y PPA Manager , откройте терминал, нажав Alt + Ctrl + T и выполните следующие команды:

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager

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

sudo su

и

32 Bit:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_i386.deb && dpkg -i ./*.deb

] 64 Bit:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_amd64.deb && dpkg -i ./*.deb
606
ответ дан 5 January 2021 в 23:56

В большинстве случаев, установка пакета через aptitude разрешит неудовлетворенные зависимости. По умолчанию пакет aptitude не был установлен на вашем компьютере, поэтому сначала установите его запуском,

sudo apt-get update
sudo apt-get install aptitude

затем,

sudo aptitude install packagename

Например,

    
avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo apt-get install ubuntu-sdk
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 ubuntu-sdk : Depends: qtcreator-plugin-ubuntu but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Установка пакета через aptitude

avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo aptitude install ubuntu-sdk
The following NEW packages will be installed:
  apparmor-easyprof{a} apparmor-easyprof-ubuntu{a} at{a} build-essential{a} 
  click{a} click-apparmor{a} click-dev{a} click-doc{a} cordova-ubuntu-2.8 
  cordova-ubuntu-2.8-examples{a} debhelper{a} devscripts{a} dh-apparmor{a} 
  dh-make{a} distro-info-data{a} dpkg-dev{a} dput{a} g++{a} g++-4.8{a} 
  geoclue-gypsy{a} libalgorithm-diff-perl{a} libalgorithm-diff-xs-perl{a} 
  libalgorithm-merge-perl{a} libboost-filesystem1.53.0{a} 
  libboost-program-options1.53.0{a} libboost-regex1.53.0{a} 
  libbotan-1.10-0{a} libdee-qt5-3{a} libdistro-info-perl{a} 
  libexporter-lite-perl{a} libglib2.0-dev{a} 
  libgstreamer-plugins-base1.0-dev{a} libgstreamer1.0-dev{a} libgypsy0{a} 
  libhud2{a} libio-stringy-perl{a} libjs-jquery{a} libjs-sphinxdoc{a} 
  libjs-underscore{a} liblockdev1{a} libmail-sendmail-perl{a} 
  libparse-debcontrol-perl{a} libpcre3-dev{a} libpcrecpp0{a} 
  libpoppler-qt5-1{a} libqdjango-db0{a} libqgsttools-p1{a} 
  libqt5clucene5{a} libqt5contacts5{a} libqt5declarative5{a} 
  libqt5designer5{a} libqt5designercomponents5{a} libqt5feedback5{a} 
  libqt5help5{a} libqt5location5-plugins{a} libqt5multimedia5{a} 
  libqt5multimedia5-plugins libqt5multimediaquick-p5{a} 
  libqt5multimediawidgets5{a} libqt5organizer5{a} 
  libqt5qml-graphicaleffects{a} libqt5script5 libqt5scripttools5{a} 
  libqt5svg5{a} libqt5svg5-dev libqt5systeminfo5{a} libqt5v8-5-dev 
  libqt5versit5{a} libqt5versitorganizer5{a} libqt5webkit5-dev 
  libqt5webkit5-qmlwebkitplugin{a} libqt5xmlpatterns5{a} 
  libqt5xmlpatterns5-dev libstdc++-4.8-dev{a} libsys-hostname-long-perl{a} 
  libthumbnailer0{a} libu1db-qt5-3{a} libunity-action-qt1{a} 
  libupstart-app-launch1{a} libusermetricsinput1{a} libxml2-dev{a} 
  libxslt1-dev{a} po-debconf{a} python3-apparmor-click{a} python3-click{a} 
  python3-magic{a} qmlscene qt3d5-dev qtbase5-doc{a} qtcreator{a} 
  qtcreator-doc{a} qtcreator-plugin-ubuntu{a} 
  qtcreator-plugin-ubuntu-common{a} qtdeclarative5-accounts-plugin 
  qtdeclarative5-cordova-2.8-plugin{a} qtdeclarative5-dev-tools 
  qtdeclarative5-doc-html{a} qtdeclarative5-folderlistmodel-plugin 
  qtdeclarative5-friends0.2 qtdeclarative5-localstorage-plugin 
  qtdeclarative5-particles-plugin qtdeclarative5-poppler1.0 
  qtdeclarative5-qtaudioengine-plugin qtdeclarative5-qtfeedback-plugin{a} 
  qtdeclarative5-qtlocation-plugin qtdeclarative5-qtmultimedia-plugin{a} 
  qtdeclarative5-qtorganizer-plugin qtdeclarative5-qtquick2-plugin{a} 
  qtdeclarative5-qtsensors-plugin qtdeclarative5-u1db1.0 
  qtdeclarative5-ubuntu-ui-extras-browser-plugin{a} 
  qtdeclarative5-ubuntu-ui-extras-browser-plugin-assets{a} 
  qtdeclarative5-ubuntu-ui-toolkit-plugin{a} 
  qtdeclarative5-unity-action-plugin{a} qtdeclarative5-usermetrics0.1 
  qtdeclarative5-window-plugin{a} qtdeclarative5-xmllistmodel-plugin 
  qtgraphicaleffects5-doc{a} qtlocation5-dev{a} qtmultimedia5-dev 
  qtmultimedia5-doc{a} qtmultimedia5-doc-html{a} qtscript5-dev 
  qtscript5-doc{a} qtscript5-doc-html{a} qtsensors5-dev{a} qtsvg5-doc{a} 
  qtsvg5-doc-html{a} qttools5-dev qttools5-dev-tools qttools5-doc{a} 
  qtwebkit5-doc-html{a} schroot{a} schroot-common{a} sqlite3{a} 
  ubuntu-html5-container ubuntu-html5-sdk{ab} ubuntu-html5-theme{a} 
  ubuntu-html5-theme-examples ubuntu-sdk ubuntu-sdk-libs 
  ubuntu-sdk-libs-dev{a} ubuntu-ui-toolkit-doc{a} 
  ubuntu-ui-toolkit-examples{a} ubuntu-ui-toolkit-theme{a} 
  unity-action-doc{a} upstart-app-launch{a} upstart-app-launch-tools{a} 
  usermetricsservice{a} wdiff{a} zlib1g-dev{a} 
The following packages will be upgraded:
  cpp-4.8 gcc-4.8 gcc-4.8-base hud libasan0 libatomic1 libgcc-4.8-dev 
  libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 
  libstdc++6 libtsan0 
15 packages upgraded, 151 newly installed, 0 to remove and 293 not upgraded.
Need to get 108 MB/126 MB of archives. After unpacking 273 MB will be used.
The following packages have unmet dependencies:
 ubuntu-html5-sdk : Depends: qtdeclarative5-ubuntu-webapps-api which is a virtual package.
                    Depends: ubuntu-html5-ui-toolkit but it is not going to be installed.
The following actions will resolve these dependencies:

     Keep the following packages at their current version:              
1)     qtcreator-plugin-ubuntu [Not Installed]                          
2)     ubuntu-html5-sdk [Not Installed]                                 
3)     ubuntu-sdk [Not Installed]                                       

     Leave the following dependencies unresolved:                       
4)     libhud-client2 recommends hud (= 13.10.1+13.10.20131014-0ubuntu1)
5)     qtcreator-plugin-ubuntu-common recommends qtcreator-plugin-ubuntu


Accept this solution? [Y/n/q/?] y
The following NEW packages will be installed:
  apparmor-easyprof{a} apparmor-easyprof-ubuntu{a} build-essential{a} 
  click{a} click-apparmor{a} cordova-ubuntu-2.8 debhelper{a} dh-apparmor{a} 
  dh-make{a} dpkg-dev{a} g++{a} g++-4.8{a} geoclue-gypsy{a} 
  libalgorithm-diff-perl{a} libalgorithm-diff-xs-perl{a} 
  libalgorithm-merge-perl{a} libdee-qt5-3{a} libglib2.0-dev{a} 
  libgstreamer-plugins-base1.0-dev{a} libgstreamer1.0-dev{a} libgypsy0{a} 
  libhud2{a} libjs-jquery{a} libmail-sendmail-perl{a} libpcre3-dev{a} 
  libpcrecpp0{a} libpoppler-qt5-1{a} libqdjango-db0{a} libqgsttools-p1{a} 
  libqt5clucene5{a} libqt5contacts5{a} libqt5designer5{a} 
  libqt5designercomponents5{a} libqt5feedback5{a} libqt5help5{a} 
  libqt5location5-plugins{a} libqt5multimedia5{a} libqt5multimedia5-plugins 
  libqt5multimediaquick-p5{a} libqt5multimediawidgets5{a} 
  libqt5organizer5{a} libqt5qml-graphicaleffects{a} libqt5script5 
  libqt5scripttools5{a} libqt5svg5{a} libqt5svg5-dev libqt5systeminfo5{a} 
  libqt5v8-5-dev libqt5versit5{a} libqt5versitorganizer5{a} 
  libqt5webkit5-dev libqt5webkit5-qmlwebkitplugin{a} libqt5xmlpatterns5{a} 
  libqt5xmlpatterns5-dev libstdc++-4.8-dev{a} libsys-hostname-long-perl{a} 
  libthumbnailer0{a} libu1db-qt5-3{a} libunity-action-qt1{a} 
  libupstart-app-launch1{a} libusermetricsinput1{a} libxml2-dev{a} 
  libxslt1-dev{a} po-debconf{a} python3-apparmor-click{a} python3-click{a} 
  qmlscene qt3d5-dev qtdeclarative5-accounts-plugin 
  qtdeclarative5-cordova-2.8-plugin{a} qtdeclarative5-dev-tools 
  qtdeclarative5-folderlistmodel-plugin qtdeclarative5-friends0.2 
  qtdeclarative5-localstorage-plugin qtdeclarative5-particles-plugin 
  qtdeclarative5-poppler1.0 qtdeclarative5-qtaudioengine-plugin 
  qtdeclarative5-qtfeedback-plugin{a} qtdeclarative5-qtlocation-plugin 
  qtdeclarative5-qtmultimedia-plugin{a} qtdeclarative5-qtorganizer-plugin 
  qtdeclarative5-qtquick2-plugin{a} qtdeclarative5-qtsensors-plugin 
  qtdeclarative5-u1db1.0 qtdeclarative5-ubuntu-ui-extras-browser-plugin{a} 
  qtdeclarative5-ubuntu-ui-extras-browser-plugin-assets{a} 
  qtdeclarative5-ubuntu-ui-toolkit-plugin{a} 
  qtdeclarative5-unity-action-plugin{a} qtdeclarative5-usermetrics0.1 
  qtdeclarative5-window-plugin{a} qtdeclarative5-xmllistmodel-plugin 
  qtlocation5-dev{a} qtmultimedia5-dev qtscript5-dev qtsensors5-dev{a} 
  qttools5-dev qttools5-dev-tools sqlite3{a} ubuntu-html5-container 
  ubuntu-html5-theme{a} ubuntu-html5-theme-examples ubuntu-sdk-libs 
  ubuntu-ui-toolkit-theme{a} upstart-app-launch{a} 
  upstart-app-launch-tools{a} usermetricsservice{a} wdiff{a} zlib1g-dev{a} 
The following packages will be upgraded:
  cpp-4.8 gcc-4.8 gcc-4.8-base hud libasan0 libatomic1 libgcc-4.8-dev 
  libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 
  libstdc++6 libtsan0 
15 packages upgraded, 108 newly installed, 0 to remove and 293 not upgraded.
Need to get 27.1 MB/45.8 MB of archives. After unpacking 104 MB will be used.
Do you want to continue? [Y/n/?] 
17
ответ дан 5 January 2021 в 23:56

Если вы получаете такую ​​ошибку:
enter image description here

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

sudo apt-get -f install

(Эта команда должна автоматически установить неудовлетворенные зависимости.)

или что-то вроде этого (с соответствующими пакетами) :

sudo apt-get install click curl dpkg-dev python-lzma python-requests imagemagick ubuntu-dev-tools

Но если вы получите такую ​​ошибку: cannot install package/package not available/no installation candidate etc

Затем вы можете найти способы их установки здесь или здесь .
В приведенном выше примере вы сможете найти страницу типа this , а затем использовать PPA , или установить .deb для 32-битной , или .deb для 64-битной .

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

... не забывайте о `build-dep`

В дополнение к этим ответам выше - я должен признать, что удивлен, что никто не упомянул этот подход, который я всегда использовались в качестве «серебряной пули» в любое время, когда я сталкивался с конфликтами apt-get или неразрешенными пакетами (или даже если система упряма .... ха!).

EDITED: using sudo dpkg - r [package] приветствуется, так как он имеет довольно мощную функцию удаления. Поскольку apt-get работает вместе с dpkg , это означает, что apt-get будет подчиняться функции dpkg .

  sudo dpkg -r [package]
  sudo apt-get build-dep [package]  
  ## pre-install all deps for the package

Вы вызываете apt- получить, чтобы очистить неудачный пакет, который вы пытались установить в системе, а затем вы вызываете команду build-dep, которая apt-get получит и установит зависимости, индивидуально принадлежащие этому пакету, таким образом, они удовлетворили бы пакет заранее. Затем, наконец, вызовите apt-get install:

sudo apt-get install [package]

.... 'Ух! Давайте крутим вам руку, пока не закричите «Дядя!»

Это редко случалось за мои долгие годы использования Linux, но я обнаружил, что редко использую этот подход, и мне это удалось. Это пример недавней борьбы, которую я имел ранее месяц назад с пакетами mysql-client / mysql-server . После дюжины неудачных попыток сбросить мой пароль root с помощью mysql-server (даже с помощью --skip-grant-tables techqiue, но все же безуспешно), мне, наконец, удалось «повернуть Linux руку, пока он не закричал« Дядя! »»:

sudo dpkg -r mysql-server mysql-client
sudo apt-get autoclean  
## this dumps any copy of existing package to prevent apt-get from "re-using" it.
sudo apt-get build-dep mysql-client   
 ## one package at a time, starting with client first
sudo apt-get install mysql-client
sudo apt-get build-dep mysql-server
sudo apt-get install mysql-server

apt-get autoclean является ключевым в этом решении

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

Во время установки пакетов i386 в 64-битных системах Multiarch Ubuntu

Если вы пытаетесь установить пакет, который зависит от многих пакетов i386 , указанная выше ошибка зависимости также будет вызвана, если вы не сможете добавить архитектуру i386, запустив команду sudo dpkg --add-architecure i386 .

Пример:

avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo apt-get install skype
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 skype : Depends: skype-bin but it is not installable
E: Unable to correct problems, you have held broken packages.
avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo dpkg --add-architecture i386
avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo apt-get install skype
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  gcc-4.8-base:i386 gcc-4.9-base:i386 libasound2:i386 libasound2-plugins:i386
  libasyncns0:i386 libaudio2:i386 libavahi-client3:i386
  libavahi-common-data:i386 libavahi-common3:i386 libc6:i386
  libcgmanager0:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386
  libdbusmenu-qt2:i386 libdrm-intel1:i386 libdrm-nouveau2:i386
  libdrm-radeon1:i386 libdrm2:i386 libelf1:i386 libexpat1:i386 libffi6:i386
  libflac8:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386
  libgcrypt11:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386
  libglapi-mesa:i386 libglib2.0-0:i386 libgnutls26:i386 libgpg-error0:i386
  libgssapi-krb5-2:i386 libgstreamer-plugins-base1.0-0:i386
  libgstreamer1.0-0:i386 libice6:i386 libjack-jackd2-0:i386 libjbig0:i386
  libjpeg-turbo8:i386 libjpeg8:i386 libjson-c2:i386 libk5crypto3:i386
  libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 libllvm3.4:i386
  liblzma5:i386 libmysqlclient18:i386 libnih-dbus1:i386 libnih1:i386
  libogg0:i386 liborc-0.4-0:i386 libp11-kit0:i386 libpciaccess0:i386
  libpcre3:i386 libpng12-0:i386 libpulse0:i386 libqt4-dbus:i386
  libqt4-declarative:i386 libqt4-network:i386 libqt4-opengl:i386
  libqt4-script:i386 libqt4-sql:i386 libqt4-sql-mysql:i386 libqt4-xml:i386
  libqt4-xmlpatterns:i386 libqtcore4:i386 libqtdbus4:i386 libqtgui4:i386
  libqtwebkit4:i386 libsamplerate0:i386 libselinux1:i386 libsm6:i386
  libsndfile1:i386 libspeexdsp1:i386 libsqlite3-0:i386 libssl1.0.0:i386
  libstdc++6:i386 libtasn1-6:i386 libtiff5:i386 libtinfo5:i386
  libtxc-dxtn-s2tc0:i386 libudev1:i386 libuuid1:i386 libvorbis0a:i386
  libvorbisenc2:i386 libwrap0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386
  libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386
  libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386
  libxfixes3:i386 libxi6:i386 libxml2:i386 libxrender1:i386 libxshmfence1:i386
  libxslt1.1:i386 libxss1:i386 libxt6:i386 libxv1:i386 libxxf86vm1:i386
  mysql-common skype-bin:i386 sni-qt:i386 zlib1g:i386
Suggested packages:
  nas:i386 glibc-doc:i386 locales:i386 rng-tools:i386 libglide3:i386
  gnutls-bin:i386 krb5-doc:i386 krb5-user:i386 libvisual-0.4-plugins:i386
  gstreamer-codec-install:i386 gnome-codec-install:i386
  gstreamer1.0-tools:i386 gstreamer1.0-plugins-base:i386 jackd2:i386
  pulseaudio:i386 libqt4-declarative-folderlistmodel:i386
  libqt4-declarative-gestures:i386 libqt4-declarative-particles:i386
  libqt4-declarative-shaders:i386 qt4-qmlviewer:i386 libqt4-dev:i386
  libicu48:i386 libthai0:i386 qt4-qtconfig:i386
Recommended packages:
  xml-core:i386
The following NEW packages will be installed:
  gcc-4.8-base:i386 gcc-4.9-base:i386 libasound2:i386 libasound2-plugins:i386
  libasyncns0:i386 libaudio2:i386 libavahi-client3:i386
  libavahi-common-data:i386 libavahi-common3:i386 libc6:i386
  libcgmanager0:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386
  libdbusmenu-qt2:i386 libdrm-intel1:i386 libdrm-nouveau2:i386
  libdrm-radeon1:i386 libdrm2:i386 libelf1:i386 libexpat1:i386 libffi6:i386
  libflac8:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386
  libgcrypt11:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386
  libglapi-mesa:i386 libglib2.0-0:i386 libgnutls26:i386 libgpg-error0:i386
  libgssapi-krb5-2:i386 libgstreamer-plugins-base1.0-0:i386
  libgstreamer1.0-0:i386 libice6:i386 libjack-jackd2-0:i386 libjbig0:i386
  libjpeg-turbo8:i386 libjpeg8:i386 libjson-c2:i386 libk5crypto3:i386
  libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 libllvm3.4:i386
  liblzma5:i386 libmysqlclient18:i386 libnih-dbus1:i386 libnih1:i386
  libogg0:i386 liborc-0.4-0:i386 libp11-kit0:i386 libpciaccess0:i386
  libpcre3:i386 libpng12-0:i386 libpulse0:i386 libqt4-dbus:i386
  libqt4-declarative:i386 libqt4-network:i386 libqt4-opengl:i386
  libqt4-script:i386 libqt4-sql:i386 libqt4-sql-mysql:i386 libqt4-xml:i386
  libqt4-xmlpatterns:i386 libqtcore4:i386 libqtdbus4:i386 libqtgui4:i386
  libqtwebkit4:i386 libsamplerate0:i386 libselinux1:i386 libsm6:i386
  libsndfile1:i386 libspeexdsp1:i386 libsqlite3-0:i386 libssl1.0.0:i386
  libstdc++6:i386 libtasn1-6:i386 libtiff5:i386 libtinfo5:i386
  libtxc-dxtn-s2tc0:i386 libudev1:i386 libuuid1:i386 libvorbis0a:i386
  libvorbisenc2:i386 libwrap0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386
  libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386
  libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386
  libxfixes3:i386 libxi6:i386 libxml2:i386 libxrender1:i386 libxshmfence1:i386
  libxslt1.1:i386 libxss1:i386 libxt6:i386 libxv1:i386 libxxf86vm1:i386
  mysql-common skype skype-bin:i386 sni-qt:i386 zlib1g:i386
0 upgraded, 115 newly installed, 0 to remove and 7 not upgraded.
Need to get 63.7 MB of archives.
After this operation, 225 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
3
ответ дан 5 January 2021 в 23:56

У меня сработало переустановка зависимости. Это тот случай, когда установленная версия более новая, чем последняя (что показывает синаптика). Фактически это эквивалентно разрешению synaptic понизить версию пакета зависимостей.

Еще одна вещь, которая сработала, - это использование «aptitude»:

root@arau:~# aptitude install libgfortran3
The following NEW packages will be installed:
  libgfortran3{b} 
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 250 kB of archives. After unpacking 1 230 kB will be used.
The following packages have unmet dependencies:
 libgfortran3 : Depends: gcc-4.8-base (= 4.8.2-19ubuntu1) but 4.8.4-2ubuntu1~14.04 is installed.
Internal error: found 2 (choice -> promotion) mappings for a single choice.
The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     libgfortran3 [Not Installed]                       



Accept this solution? [Y/n/q/?] n
Internal error: found 2 (choice -> promotion) mappings for a single choice.
Internal error: found 2 (choice -> promotion) mappings for a single choice.
The following actions will resolve these dependencies:

      Downgrade the following packages:                                        
1)      cpp-4.8 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
2)      gcc-4.8 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
3)      gcc-4.8-base [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]  
4)      libasan0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      
5)      libatomic1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]    
6)      libgcc-4.8-dev [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]
7)      libgomp1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      
8)      libitm1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
9)      libquadmath0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]  
10)     libstdc++6 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]    
11)     libtsan0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      

Accept this solution? [Y/n/q/?] y
1
ответ дан 5 January 2021 в 23:56

Отличные ответы! Но сегодня мой случай кажется отличным от вашего. Вот мой совет.

Проблема:

Мне не удалось установить apache2 в ubuntu 10.10.

rick@wen-VirtualBox:~$ sudo apt-get install apache2

Reading package lists... Done

Building dependency tree      

Reading state information... Done

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.

The following information may help to resolve the situation:

The following packages have unmet dependencies:

 apache2 : Depends: apache2-mpm-worker (= 2.2.16-1ubuntu3) but it is not going to be installed or

                    apache2-mpm-prefork (= 2.2.16-1ubuntu3) but it is not going to be installed or

                    apache2-mpm-event (= 2.2.16-1ubuntu3) but it is not going to be installed or

                    apache2-mpm-itk (= 2.2.16-1ubuntu3) but it is not going to be installed

           Depends: apache2.2-common (= 2.2.16-1ubuntu3) but it is not going to be installed

E: Broken packages

Решение:

Мой способ - добавить зависимый пакет в список установки.

Если «sudo apt-get install apache2» не удалось, попробуйте « sudo apt-get install apache2 apache2.2-common ».

Видите? apache2.2-common исходит из журнала ошибок предыдущего шага.

Наконец я обнаружил, что есть цепочка зависимостей, подобная этой:

 apache2.2-common <-- apache2.2-bin <-- libaprutil1-ldap <-- libaprutil1

Для первых 3 пакетов журнал apt-get сказал мне, что «не будет устанавливаться» ,

но для последнего пакета он показывает «libaprutil1-ldap: Depends: libaprutil1 (= 1.3.9 + dfsg-3build1), но должен быть установлен 1.3.9 + dfsg-3ubuntu0.10.10.1»

В моей библиотеке есть другая версия, поэтому:

sudo apt-get remove libaprutil1

sudo apt-get install apache2

Теперь все в порядке.

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

После попытки приблизиться ко всем методам, упомянутым в этом потоке (и другие) Я был близок к тому, чтобы сдаться. Я обновил свой Debian Lenny до Squeeze, и я не мог понять, почему PHP5, Apache, MySQL и т. Д. Не хотят устанавливать. В конце концов я попробовал использовать

sudo apt-get purge apache2
sudo apt-get purge php5
sudo apt-get purge mysql-server
sudo apt-get clean
sudo apt-get autoremove
sudo apt-get install apache2 php5 mysql-server

.. и он работал безупречно! ( Остерегайтесь, это может уничтожить ваши файлы конфигурации, поэтому сделайте резервную копию! )

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

Мой ответ аналогичен ответу Рика выше.

Используя apt-get clean , apt-get autoclean , apt-get autoremove , apt-get upgrade , apt-get update , apt-get -u dist-upgrade и т. д. все не работает для

Я наконец решил эту проблему, спустившись в дерево зависимостей с помощью apt-get install , как показано в примере ниже. В моем случае я хотел установить libmagickwand-dev :

apt-get install libmagickwand-dev

Я получил эту ошибку:

The following packages have unmet dependencies:
 libmagickwand-dev : Depends: libmagickcore4-extra (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed
                     Depends: libmagickcore-dev (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed

Итак, я выполнил apt-get install для одной из неисправных зависимостей:

apt-get install libmagickcore-dev

The following packages have unmet dependencies:
 libmagickcore-dev : Depends: libmagickcore4-extra (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed
                     Depends: libgraphviz-dev but it is not going to be installed

Я спустился ниже по дереву:

apt-get install libgraphviz-dev

с другой ошибкой:

The following packages have unmet dependencies:
 libgraphviz-dev : Depends: libgvc5 (= 2.26.3-10ubuntu1) but it is not going to be installed

Еще раз глубже по дереву:

apt-get install libgvc5

По какой-то странной причине это удалось, и я смог установить исходный пакет, который я хотел, с apt-get install libmagickwand-dev :

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libcdt4 libgd2-xpm libgraph4 libpathplan4
Suggested packages:
  libgd-tools
The following NEW packages will be installed:
  libcdt4 libgd2-xpm libgraph4 libgvc5 libpathplan4
0 upgraded, 5 newly installed, 0 to remove and 2 not upgraded.
Need to get 808 kB of archives.
After this operation, 2,320 kB of additional disk space will be used.
Do you want to continue [Y/n]?
11
ответ дан 5 January 2021 в 23:56

package1: Зависит от: package2 (> = 1.8), но необходимо установить 1.7.5-1ubuntu1

Пояснение к сообщению:

  1. Для завершения установки, package1 требуется package2.
  2. package2 должен быть доступен в версии> = 1.8
  3. Диспетчер пакетов проверил все репозитории и обнаружил только версию 1.7.5-1ubuntu1, которую можно было установить, чего не будет, потому что она < 1.8

Исправление

На этот вопрос НЕТ единого правильного ответа и НЕТ простого ответа.

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

Сценарий A:

Все репозитории, к которым у вас есть доступ, не имеют package2 в версии> = 1.8, поэтому вам нужно будет найти репозиторий, в котором есть. Если вы не можете найти репозиторий с версиями> = 1.8, возможно, вам придется собрать и установить package2 из исходного кода. А затем попробуйте установить package1.

Если вы хотите узнать, как собрать пакет из исходного кода, проверьте другие вопросы / ответы или опубликуйте новый.

Сценарий B:

Репозитории действительно включают package2 в версии> = 1.8, но пакет менеджер по-прежнему хочет установить старую версию (1.7.5).

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

Возможно, это вообще невозможно исправить. Вы можете попробовать использовать apt или synaptic и найти все версии package2, доступные в репозиториях, и попытаться установить определенную версию> = 1.8

. Если у вас есть другие несовместимые пакеты, и вы это сделаете, вы получите список аналогичных сообщений об ошибках для всех других пакетов, препятствующих установке package2> = 1.8.

В этом случае у вас более серьезная проблема. Вы хотели установить package1, для которого package2 должен быть> = 1.8, но package2 в версии> = 1.8 требует, чтобы package3 был в версии> = 6.7, а у вас package3 версии 6.3

Дело в том, что диспетчер пакетов (APT) пытается разрешить все эти зависимости автоматически, если это возможно. Когда он говорит, что это невозможно (и выдает сообщение, подобное вопросу), вы должны ему доверять.

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

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

Сценарий C:

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

Сценарий D:

Диспетчер пакетов имеет доступ к устаревшей информации о пакетах и ​​поэтому не может найти решение. Посмотрите другие ответы.

Сценарий E:

Диспетчер пакетов имеет ошибку в коде разрешения зависимостей.

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

...

Сценарий Z:

Возможны и другие сценарии.

Например, разработчики пакета могли ошибаться и не проверяли, что package1 будет работать даже с версией package2 <1.8, а в спецификации они установили неправильные зависимости.

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

что такое неудовлетворенные зависимости Ошибка

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

Возможные причины

1.Computer is not connected to the Internet
2.The repository containing the depandancy package is not enabled
3.Package catalog is not updated
4.The version of the depandancy in the current repository is old
5.Software index is broken
6.The depandancy is not available for ubuntu

Давайте попробуем решить эту проблему

  1. Подключитесь к Интернету: D
  2. Убедитесь, что все репозитории по умолчанию включены

    -> Вы можете легко добавить их в Центр программного обеспечения -> Правка-> Источники программного обеспечения-> Другие источники-> Добавить "

    -> Запустить Центр программного обеспечения .

    ->. На панели перейдите в Редактировать и выберите Источники программного обеспечения .

    edit-software-sources

    -> Убедитесь, что все репозитории проверены enter image description here

  3. Обновить каталог программного обеспечения

    щелкните значок в правом верхнем углу и выберите запись с доступным обновлением в меню
    enter image description here

и нажмите кнопку проверки enter image description here

4. введите ctrl + alt + t , чтобы открыть терминал, и введите sudo apt-get install -f

5. Очистите недавно добавленный ppa с помощью ppa-purge ppa-purge Install ppa-purge

Эта программа отключает PPA из ваших источников программного обеспечения и возвращает верните вашу систему к официальным пакетам Ubuntu. Вы можете использовать это для верните вашу систему в нормальное состояние после тестирования новой версии из PPA.

Синтаксис

sudo ppa-purge ppa:<repository-name>/<subdirectory>

Пример

sudo ppa-purge ppa:ubuntu-mozilla-daily/ppa
  1. откройте центр программного обеспечения и попробуйте установить любое программное обеспечение. Если появится следующее диалоговое окно, нажмите кнопку восстановления и подождите

enter image description here

Иначе введите ctrl + alt + t , чтобы открыть терминал, и введите sudo apt-get install -f и следуйте инструкциям на экране

Если по-прежнему возникает ошибка, не стесняйтесь спросить ее в askbuntu

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

Этим методам необходимо следовать всякий раз, когда вы получаете сообщение об ошибке Unmet Dependencies

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

1 . Прежде чем пробовать любую новую команду или добавлять новый ppa, попробуйте следующее

Очистка кеша apt:

sudo apt-get clean

Очистка всех неиспользуемых зависимостей:

sudo apt-get autoremove

Обновление кеша apt

sudo apt-get update

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

2 . Попробуйте sudo apt-get install -f .

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

3 . Измените сервер загрузки из Источники программного обеспечения Потому что иногда файлы на сервере повреждаются.

enter image description here
enter image description here
enter image description here

4 . Это также происходит, если вы ранее добавляли внешний ppa для неработающей зависимости. Попробуйте удалить этот ppa с помощью

  • либо набрав sudo add-apt-repository --remove ppa: someppa / ppa , а затем вручную удалите файл ppa установленные файлы / библиотеки

или

  • очистка ppa (при этом также удаляются установленные файлы)

     sudo apt-get install ppa-purge #a одноразовая установка
    sudo ppa-purge ppa: someppa / ppa
     

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

6 . Всегда добавляйте стабильную версию репозитория / PPA.

enter image description here

7 Также убедитесь, что у вас включены все официальные репозитории (в Источники программного обеспечения )

enter image description here

Не включайте Предлагаемые обновления , поскольку они предназначены для тестирования /Разработчики.

enter image description here


Как сказал Дуг:

Обычно лучший первый шаг к решению этой проблемы - это определить источник & .

Кроме того, нет. Отмечено, что во многих, если не в большинстве случаев, «<что-либо> должно быть установлено» на самом деле означает «<все> установлено», и его следует попытаться удалить, если ничего не работает (как в пункте 5).


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

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

Примечание. Все команды, которые запрашиваются для выполнения, должны запускаться в терминале, который можно открыть с помощью Ctrl + Alt + T или поиск терминала в тире.

Он действительно сломан?

Попробуйте выполнить следующую команду и попробуйте переустановить программное обеспечение, которое вы пытались установить

sudo apt-get update

Предварительные действия

Резервное копирование

Создайте резервную копию следующих файлов:

  • / etc / apt / sources. list
  • / var / lib / dpkg / status

Для этого используйте эти команды

sudo cp /etc/apt/sources.list /etc/apt/sources.list.original

и

sudo cp /var/lib/dpkg/status /var/lib/dpkg/status.original

Очистка вашего apt-cache

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

Теперь, чтобы очистить его, у вас есть два варианта

sudo apt-get clean 

. Это удалит все кэшированные пакеты, принадлежащие папке / var / cache / apt / archives / и / var / cache / apt / archives / partial , кроме файлов .lock.Это рекомендуется

sudo apt-get autoclean

. Это сканирует папки / var / cache / apt / archives / и / var / cache / apt / archives / partial и проверяет, находится ли пакет в репозиториев и удаляет те, которые не


Исправление зависимостей

Использование режима исправления ошибок apt

sudo apt-get -f install

Это заставит apt сканировать отсутствующие зависимости и исправлять их из репозиториев

Если в выходных данных указано, что ничего нового не было установлено или обновлено, это не удалось.


Проверка, все ли необходимые источники включены

Введите gksu software-properties-gtk , и вы получите это окно

Убедитесь, что все источники включены.

Затем перейдите на вкладку Другое программное обеспечение и проверьте, есть ли там необходимые PPA для устанавливаемого программного обеспечения и включены ли они. Также попробуйте отключить некоторые PPA, в которых могут быть поврежденные пакеты

, запустите sudo apt-get update

Попробуйте установить программное обеспечение сейчас

Выберите лучший сервер для загрузки с

Введите ] gksu software-properties-gtk , и вы увидите это окно

Щелкните Загрузить в раскрывающемся списке и выберите другой

Щелкните Выберите лучший сервер

Выполните sudo apt-get update

Попробуйте также установить программное обеспечение

, попробуйте использовать sudo apt-get install -f


PPA Purge

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

Чтобы установить его, запустите

sudo apt-get install ppa-purge

Но, учитывая вопрос, apt не работает, поэтому приведенная выше команда завершится ошибкой. Итак, используйте эту команду

mkdir ppa-purge && cd ppa-purge && wget http://mirror.pnl.gov/ubuntu/pool/universe/p/ppa-purge/ppa-purge_0.2.8+bzr56_all.deb && wget http://mirror.pnl.gov/ubuntu//pool/main/a/aptitude/aptitude_0.6.6-1ubuntu1_i386.deb && sudo dpkg -i ./*.deb

Теперь используйте ppa purge

sudo ppa-purge ppa:someppa/ppa  

Y-PPA Manager

Y-PPA Manager - это приложение с графическим интерфейсом, которое помогает вам управлять PPA и различными связанными с ним проблемами

Чтобы установить его

sudo add-apt-repository ppa:webupd8team/y-ppa-manager

и

sudo apt-get update

и

sudo apt-get install y-ppa-manager

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

sudo su

и

32 Bit:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_i386.deb && dpkg -i ./*.deb

64 Bit:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_amd64.deb && dpkg -i ./*.deb

Теперь введите y-ppa-manager

Вам будет представлено это окно

Дважды щелкните на Advanced, и вы получите это окно

Выполните следующие задачи, выделенные черным цветом


Профилактика лучше, чем лечение

Лучше предотвратить, чем искать этот вопрос в AskUbuntu: D

Итак, вот рекомендации по обеспечению вашей безопасности

Поддерживайте свою систему в актуальном состоянии

всегда выполняйте следующую команду регулярно

sudo apt-get update&&sudo apt-get upgrade

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

gksu update-manager

Использование только доверенных PPA

Используйте только PPA, предназначенные для использования и в Ubuntu, используйте только PPA с надежными источниками. Фактически, пакет может уже быть в репозиториях ubuntu

Резервное копирование, когда все в порядке, и его восстановление позже

Для этого вам понадобится Y-PPA-Manager. Шаги по его установке приведены выше.

Запустите эту команду, чтобы открыть Y-PPA-Manager

y-ppa-manager

Вам будет представлено это окно

Дважды щелкните «Дополнительно», и вы получите это окно

] Запустите это:

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

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

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


Все еще не работает?

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

Если выполнение всех шагов, приведенных для исправления ошибки, не работает для вас, вы всегда можете спросить на Спросите Ubuntu

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

sudo apt-get install packagename

,

cat /etc/apt/sources.list

и

cat /etc/apt/sources.list.d/*

(Спасибо Basharat Sial )

Есть также другие файлы / команды, которые вам нужны вывод может быть связан с ошибкой, и пользователи, вероятно, предложат вам в комментариях опубликовать файл / команду.

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

Эти ответы пока сосредоточены на том, как помочь системе автоматически решить такую ​​проблему, в основном в надежде, что проблема разрешится сама собой, но не сосредоточены на понимании того, как исследовать зависимости. Важно сначала убедиться, что ваши списки пакетов обновлены; Прежде чем копать глубже, всегда убедитесь, что простое обновление или очистка кеша не решает проблему. Однако, если все за кулисами работает должным образом, важно понимать зависимости. Иногда уровни зависимостей могут показаться непреодолимыми, но концепция проста и ключ к пониманию того, как программное обеспечение устанавливается / удаляется в системе Ubuntu.

Я настоятельно рекомендую aptitude всем, кто использует систему на основе .deb. , например Debian, Kali, Ubuntu или любые его производные. Он предоставляет интерфейс для просмотра уровней зависимостей, включая рекомендуемые и предлагаемые пакеты. Это бесценный инструмент, когда apt-get не предлагает решения конфликта, а также для визуализации зависимостей в целом. ( Synaptic также доступен в Ubuntu.)

Средство разрешения конфликтов Aptitude проведет вас через возможные комбинации установленных / удаленных / обновленных / других пакетов, которые удовлетворяют ваши запрошенные действия без конфликтов. Часто это может быть успешным, даже если apt не может найти решение. Как пользователь Ubuntu, обычно не возникают ситуации, требующие от вас выяснить, почему тот или иной пакет устанавливается или вызывает конфликт, но это почти неизбежно по мере того, как вы больше пользуетесь системой.

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

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

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