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

Я пишу это, потому что я очень озадачен установкой 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/), и у меня были дублированные репозитории, но я удалил их и добавил новый, но еще эта ошибка.

6 ответов

Решение

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

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

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

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

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

Во-вторых, мне удается отыскать это сообщение на официальной странице 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

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

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

sudo apt-get update

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

sudo apt-get install packagename

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

sudo apt-get install -f

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

Я знаю, что немного опоздал, но ни одно из вышеперечисленных решений не помогло мне. Что действительно решило мою проблему, так это использовать 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)

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

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

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

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

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

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

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

sudo apt-get --purge remove shashlik

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

sudo apt install autoconf

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

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

      The following packages have unmet dependencies:
 libpython3.9 : Depends: libpython3.9-stdlib (= 3.9.5-3~20.04.1) but 3.9.4-1+bionic1 is to be installed

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

Чтобы получить список файлов, которые вы можете запустить

      sudo ls –l /var/lib/dpkg/info | grep -i libpython3.9-dev

Заменять libpython3.9-devс вашим собственным именем пакета.

Выход

      libpython3.9-dev:amd64.list
libpython3.9-dev:amd64.md5sums

Теперь вы можете удалить эти файлы.

      sudo rm /var/lib/dpkg/info/python3.9-dev*

Проделайте те же операции с остальными пакетами.

Как только это будет сделано, вы можете запустить

      sudo apt --fix-broken install

На этот раз приведенная выше команда должна работать нормально.

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

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

sudo apt-get install postgresql-9.3 postgresql-contrib-9.3
Другие вопросы по тегам