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