Следующие пакеты имеют неудовлетворенные зависимости!

36

Я пишу это, потому что я очень озадачен установкой PostgreSQL 9.3 на мою Ubuntu 14.04. Сначала мне это нужно для разработки на Python / Django, и я столкнулся с проблемой, когда попытался установить его. Теперь у меня есть эта ошибка, и она сводит меня с ума:

The following packages have unmet dependencies:
postgresql-9.3 : Depends: postgresql-client-9.3 but it is not going to be installed
Depends: postgresql-common (>= 142~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

В Интернете я нашел некоторые решения ( Как разрешить неудовлетворенные зависимости после добавления PPA? ), И я сделал все для части «Профилактические меры», потому что у меня была проблема с неработающими пакетами, и снова после того, как эта ошибка снова показалась мне ,

Во-вторых, я следовал официальному руководству по установке PostgreSQL ( http://www.postgresql.org/download/linux/ubuntu/ ), у меня были дублированные репозитории, но я удалил их и добавил новый, но еще эта ошибка.

copser
источник

Ответы:

36

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

убедитесь, что источники репо обновлены

sudo apt-get update

Установить пакет.

sudo apt-get install packagename

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

sudo apt-get install -f

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

heavyguidence
источник
2
Спасибо, я думал, что это означало использовать sudo apt-get install -f packagenameи получал ту же ошибку.
Чарльз Клэйтон
1
Это не работает с python2.7-минимальными ошибками.
Игорь Ганапольский
8

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

Следующие имеют неудовлетворенные зависимости

Шашлык: Зависит: libc6-i386, но не будет установлен

Зависит от: lib32gcc1, но не будет установлен

Зависит от: lib32z1, но не будет установлен

Оказалось, что я попытался установить программу под названием «Шашлык», и установка не удалась. Итак, я запустил код:

sudo apt-get --purge remove shashlik

И тогда я побежал:

sudo apt install autoconf

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

Джоэл Винтертон
источник
как вы определили эту проблему?
Кевинкайакс
5

Позвольте мне поделиться с другими людьми своим опытом установки postgresql-9.3. Прежде всего, я боролся с этим около 4/5 дней, и мне наконец удалось это сделать.

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

Короче говоря, у вас есть очень хороший ответ здесь, как решить неудовлетворенные пакеты:

Как разрешить неудовлетворенные зависимости после добавления PPA?

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

Во-вторых, мне удается отыскать это сообщение на официальной странице PostgreSQL http://www.postgresql.org/message-id/20140327084212.GA12703@msgid.df7cb.de (это ошибка, с которой обычно сталкиваются люди, когда борются с установкой postgresql. ), это привело меня к
https://wiki.postgresql.org/wiki/Apt , это правильный способ добавления пакетов PostgreSQL в вашу систему, просто прочитайте его и делайте это шаг за шагом.

Третий шаг - это серия команд, представленных в посте @vembutech:

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install postgresql-9.3 postgresql-contrib-9.3
copser
источник
5

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

The following actions will resolve these dependencies:

Keep the following packages at their current version:
1)     libyaml-dev [Not Installed]                        

Accept this solution? [Y/n/q/? (n)

The following actions will resolve these dependencies:

Downgrade the following packages:                                
1)     libyaml-0-2 [0.1.4-3ubuntu3.1 (now) -> 0.1.4-3ubuntu3 (trusty)]

Accept this solution? [Y/n/q/?] (Y)

как обсуждено в этом посте .

Габриэль Циглер
источник
3

Попробуйте установить с помощью команды ниже.

sudo apt-get install postgresql-common=151.pgdg12.4+1

sudo apt-get install postgresql-9.3 postgresql-contrib-9.3
vembutech
источник
1
"E: Версия '151.pgdg12.4 + 1' для 'postgresql-common' не найдена", ошибка снова ...
copser
Мне удается это сделать, я запускаю вторую команду и, наконец, я это сделал, @vembutech <3
copser