apt пытается обновить пакет postgresql при попытке обновить openssl.

Вопрос или проблема

$ sudo apt update
Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [128 kB]
Hit:2 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu focal InRelease
Get:3 https://esm.ubuntu.com/infra/ubuntu focal-infra-security InRelease [7450 B]
Get:4 https://esm.ubuntu.com/infra/ubuntu focal-infra-updates InRelease [7449 B]
Hit:5 http://us.archive.ubuntu.com/ubuntu focal InRelease
Hit:6 http://repo.percona.com/percona/apt focal InRelease
Get:7 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease [128 kB]
Hit:8 http://repo.percona.com/prel/apt focal InRelease
Get:9 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease [128 kB]
Get:10 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [3692 kB]
Get:11 http://us.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [1237 kB]
Получено 5328 kB за 4s (1195 kB/s)
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
360 пакетов могут быть обновлены. Выполните 'apt list --upgradable', чтобы увидеть их.
$ sudo apt install --only-upgrade openssl
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Следующие пакеты были установлены автоматически и больше не требуются:
  libicu60 postgresql-client-10 postgresql-client-13 postgresql-doc-10
Используйте 'sudo apt autoremove', чтобы удалить их.
E: Невозможно найти источник для загрузки версии '12.11-0ubuntu0.20.04.1' пакета 'postgresql-12:amd64'
$ apt-cache policy postgresql-12
postgresql-12:
  Установлено: 12.11-0ubuntu0.20.04.1
  Кандидат: 12.20-0ubuntu0.20.04.1
  Таблица версий:
     12.20-0ubuntu0.20.04.1 500
        500 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
 *** 12.11-0ubuntu0.20.04.1 100
        100 /var/lib/dpkg/status
     12.2-4 500
        500 http://us.archive.ubuntu.com/ubuntu focal/main amd64 Packages

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

Ответ или решение

Проблема, с которой вы столкнулись, связана с поведением инструмента управления пакетами APT (Advanced Package Tool) в Ubuntu, который пытается обновить пакет PostgreSQL при попытке обновить OpenSSL. Давайте рассмотрим ключевые моменты вашей ситуации и предложим решение.

Объяснение поведения APT

Когда вы выполняете команду sudo apt install --only-upgrade openssl, APT определяется с тем, какие пакеты необходимо обновить, и начинает проверять зависимости. В вашем случае, в процессе обновления OpenSSL, система пытается убедиться, что все связанные пакеты, включая PostgreSQL, находятся в корректных версиях. Поскольку у вас установлена версия пакета PostgreSQL 12.11, а новая доступная версия — 12.20, APT пытается обновить его.

Однако, проблема возникает, когда APT не может найти источник для загрузки новой версии пакета PostgreSQL, что обозначается сообщением:

E: Can't find a source to download version '12.11-0ubuntu0.20.04.1' of 'postgresql-12:amd64'

Причины возникновения проблемы

  1. Источники пакетов: Возможно, в вашем списке источников пакетов отсутствуют репозитории, содержащие нужные версии PostgreSQL. Это может произойти, если репозиторий был отключен, перемещен или поврежден.

  2. Кэш пакетов: Если кэш пакетов устарел или поврежден, APT может не видеть актуальные версии пакетов.

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

Рекомендации по решению проблемы

Чтобы исправить ситуацию, выполните следующие шаги:

  1. Обновление списка пакетов: Убедитесь, что ваша система имеет актуальный список пакетов. Выполните:

    sudo apt update
  2. Проверка источников пакетов: Откройте файл /etc/apt/sources.list и другие файлы в /etc/apt/sources.list.d/ и убедитесь, что у вас есть необходимые репозитории для PostgreSQL. Добавьте их, если это необходимо.

    Например, для PostgreSQL 12 можно добавить следующий репозиторий:

    echo "deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
  3. Очистка кэша: Очистите кэш пакетов, чтобы устранить проблемы с устаревшими данными:

    sudo apt clean
  4. Автоудаление ненужных пакетов: Удалите лишние пакеты, если они больше не нужны:

    sudo apt autoremove
  5. Установка обновлений: Попробуйте снова установить обновление OpenSSL:

    sudo apt install --only-upgrade openssl
  6. Проверка зависимостей: Если проблема сохраняется, выполните sudo apt install -f для исправления зависимостей.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...