Не удается установить git на Ubuntu 22.04 – неудовлетворенные зависимости

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

У меня был установлен git на Ubuntu 22.04 LTS, но недавно он каким-то образом был удален. git --version показывает Команда 'git' не найдена, но может быть установлена с помощью: sudo apt install git.

При попытке установить снова я получаю эту ошибку:

Следующие пакеты имеют неудовлетворенные зависимости:
git : Зависит от: git-man (< 1:2.39.1-.) но 1:2.39.2-0ppa1~ubuntu22.04.1 должен быть установлен
E: Невозможно исправить проблемы, у вас есть удерживаемые поврежденные пакеты.

Я выполнил sudo apt update, sudo apt upgrade и убедился, что ничего не удерживается. sudo apt install -f также не сработало.

Правка: apt policy показывает:

Файлы пакетов:
 100 /var/lib/dpkg/status
     релиз a=now
 500 http://packages.microsoft.com/repos/code stable/main armhf Packages
     релиз o=code stable,a=stable,n=stable,l=code stable,c=main,b=armhf
     источник packages.microsoft.com
 500 http://packages.microsoft.com/repos/code stable/main arm64 Packages
     релиз o=code stable,a=stable,n=stable,l=code stable,c=main,b=arm64
     источник packages.microsoft.com
 500 http://packages.microsoft.com/repos/code stable/main amd64 Packages
     релиз o=code stable,a=stable,n=stable,l=code stable,c=main,b=amd64
     источник packages.microsoft.com
 500 https://dl.google.com/linux/chrome/deb stable/main amd64 Packages
     релиз v=1.0,o=Google LLC,a=stable,n=stable,l=Google,c=main,b=amd64
     источник dl.google.com
 500 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy/main i386 Packages
     релиз v=22.04,o=LP-PPA-git-core,a=jammy,n=jammy,l=Git stable releases,c=main,b=i386
     источник ppa.launchpadcontent.net
 500 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy/main amd64 Packages
     релиз v=22.04,o=LP-PPA-git-core,a=jammy,n=jammy,l=Git stable releases,c=main,b=amd64
     источник ppa.launchpadcontent.net
 500 http://security.ubuntu.com/ubuntu jammy-security/multiverse i386 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-security,n=jammy,l=Ubuntu,c=multiverse,b=i386
     источник security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu jammy-security/multiverse amd64 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-security,n=jammy,l=Ubuntu,c=multiverse,b=amd64
     источник security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu jammy-security/universe i386 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-security,n=jammy,l=Ubuntu,c=universe,b=i386
     источник security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-security,n=jammy,l=Ubuntu,c=universe,b=amd64
     источник security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu jammy-security/restricted i386 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-security,n=jammy,l=Ubuntu,c=restricted,b=i386
     источник security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-security,n=jammy,l=Ubuntu,c=restricted,b=amd64
     источник security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu jammy-security/main i386 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-security,n=jammy,l=Ubuntu,c=main,b=i386
     источник security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-security,n=jammy,l=Ubuntu,c=main,b=amd64
     источник security.ubuntu.com
 100 http://us.archive.ubuntu.com/ubuntu jammy-backports/universe i386 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-backports,n=jammy,l=Ubuntu,c=universe,b=i386
     источник us.archive.ubuntu.com
 100 http://us.archive.ubuntu.com/ubuntu jammy-backports/universe amd64 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-backports,n=jammy,l=Ubuntu,c=universe,b=amd64
     источник us.archive.ubuntu.com
 100 http://us.archive.ubuntu.com/ubuntu jammy-backports/main i386 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-backports,n=jammy,l=Ubuntu,c=main,b=i386
     источник us.archive.ubuntu.com
 100 http://us.archive.ubuntu.com/ubuntu jammy-backports/main amd64 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-backports,n=jammy,l=Ubuntu,c=main,b=amd64
     источник us.archive.ubuntu.com
 500 http://us.archive.ubuntu.com/ubuntu jammy-updates/multiverse i386 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-updates,n=jammy,l=Ubuntu,c=multiverse,b=i386
     источник us.archive.ubuntu.com
 500 http://us.archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-updates,n=jammy,l=Ubuntu,c=multiverse,b=amd64
     источник us.archive.ubuntu.com
 500 http://us.archive.ubuntu.com/ubuntu jammy-updates/universe i386 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-updates,n=jammy,l=Ubuntu,c=universe,b=i386
     источник us.archive.ubuntu.com
 500 http://us.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-updates,n=jammy,l=Ubuntu,c=universe,b=amd64
     источник us.archive.ubuntu.com
 500 http://us.archive.ubuntu.com/ubuntu jammy-updates/restricted i386 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-updates,n=jammy,l=Ubuntu,c=restricted,b=i386
     источник us.archive.ubuntu.com
 500 http://us.archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-updates,n=jammy,l=Ubuntu,c=restricted,b=amd64
     источник us.archive.ubuntu.com
 500 http://us.archive.ubuntu.com/ubuntu jammy-updates/main i386 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-updates,n=jammy,l=Ubuntu,c=main,b=i386
     источник us.archive.ubuntu.com
 500 http://us.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
     релиз v=22.04,o=Ubuntu,a=jammy-updates,n=jammy,l=Ubuntu,c=main,b=amd64
     источник us.archive.ubuntu.com
 500 http://us.archive.ubuntu.com/ubuntu jammy/multiverse i386 Packages
     релиз v=22.04,o=Ubuntu,a=jammy,n=jammy,l=Ubuntu,c=multiverse,b=i386
     источник us.archive.ubuntu.com
 500 http://us.archive.ubuntu.com/ubuntu jammy/multiverse amd64 Packages
     релиз v=22.04,o=Ubuntu,a=jammy,n=jammy,l=Ubuntu,c=multiverse,b=amd64
     источник us.archive.ubuntu.com
 500 http://us.archive.ubuntu.com/ubuntu jammy/universe i386 Packages
     релиз v=22.04,o=Ubuntu,a=jammy,n=jammy,l=Ubuntu,c=universe,b=i386
     источник us.archive.ubuntu.com
 500 http://us.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
     релиз v=22.04,o=Ubuntu,a=jammy,n=jammy,l=Ubuntu,c=universe,b=amd64
     источник us.archive.ubuntu.com
 500 http://us.archive.ubuntu.com/ubuntu jammy/restricted i386 Packages
     релиз v=22.04,o=Ubuntu,a=jammy,n=jammy,l=Ubuntu,c=restricted,b=i386
     источник us.archive.ubuntu.com
 500 http://us.archive.ubuntu.com/ubuntu jammy/restricted amd64 Packages
     релиз v=22.04,o=Ubuntu,a=jammy,n=jammy,l=Ubuntu,c=restricted,b=amd64
     источник us.archive.ubuntu.com
 500 http://us.archive.ubuntu.com/ubuntu jammy/main i386 Packages
     релиз v=22.04,o=Ubuntu,a=jammy,n=jammy,l=Ubuntu,c=main,b=i386
     источник us.archive.ubuntu.com
 500 http://us.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
     релиз v=22.04,o=Ubuntu,a=jammy,n=jammy,l=Ubuntu,c=main,b=amd64
     источник us.archive.ubuntu.com
Закрепленные пакеты:

Правка 2: Удаление существующих PPA через Программы и обновления сработало. https://askubuntu.com/questions/140246/how-do-i-resolve-unmet-dependencies-after-adding-a-ppa

У меня была такая же проблема. Я в какой-то момент добавил ppa:git-core/ppa и забыл об этом. У вас тоже есть это в вашей политике apt.

apt policy |grep git

ПРЕДУПРЕЖДЕНИЕ: apt не имеет стабильного интерфейса CLI. Используйте с осторожностью в скриптах.

 500 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy/main i386 Packages
     релиз v=22.04,o=LP-PPA-git-core,a=jammy,n=jammy,l=Git stable releases,c=main,b=i386apt policy |grep git

ПРЕДУПРЕЖДЕНИЕ: apt не имеет стабильного интерфейса CLI. Используйте с осторожностью в скриптах.

 500 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy/main i386 Packages
     релиз v=22.04,o=LP-PPA-git-core,a=jammy,n=jammy,l=Git stable releases,c=main,b=i386

Самое простое решение, которое я нашел, это удалить PPA до тех пор, пока проблему не решит администратор.

sudo apt install ppa-purge
sudo ppa-purge ppa:git-core/ppa
sudo apt update
sudo apt install git

Тем не менее, это оставляет меня с немного более старой версией git. Если кто-то найдет способ решить зависимость, пожалуйста, поделитесь им. Надеюсь, администратор пакета сделает это скоро 🙂

Apt AutoRemove сработал для меня

sudo apt autoremove

Объяснение

Я недавно обновился до более новой версии ubuntu, которая удалил git. После того как apt update/apt upgrade не помогли, я попробовал autoremove, и вы можете видеть из вывода ниже, что он удалил git-man, который был из исходной ошибки:

sudo apt install git

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

Следующие пакеты имеют неудовлетворенные зависимости:
 git : Зависит от: git-man (< 1:2.43.0-.) но 1:2.47.0-0ppa2~ubuntu22.04.1 должен быть установлен
E: Невозможно исправить проблемы, у вас есть удерживаемые поврежденные пакеты.

sudo apt autoremove

Чтение списков пакетов... Готово
Формирование дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Следующие пакеты будут УДАЛЕНЫ:
  git-man mailcap
0 обновлено, 0 новых установлено, 2 к удалению и 0 не обновлено.
После этой операции будет освобождено 2,432 кб дискового пространства.
Вы хотите продолжить? [Y/n] y
(Чтение базы данных ... 210845 файлов и директорий в настоящее время установлено.)
Удаление git-man (1:2.47.0-0ppa2~ubuntu22.04.1) ...
Удаление mailcap (3.70+nmu1ubuntu1) ...
Обработка триггеров для man-db (2.12.0-4build2) ...

sudo apt install git

Чтение списков пакетов... Готово
Формирование дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Следующие дополнительные пакеты будут установлены:
  git-man liberror-perl
Предлагаемые пакеты:
  git-daemon-run | git-daemon-sysvinit git-doc git-email git-gui gitk gitweb git-cvs git-mediawiki git-svn
Следующие НОВЫЕ пакеты будут установлены:
  git git-man liberror-perl
0 обновлено, 3 новых установлено, 0 к удалению и 0 не обновлено.
Необходимо скачать 4,804 кб архивов.
После этой операции будет использовано 24,5 мб дискового пространства.
Вы хотите продолжить? [Y/n] y
Получение:1 http://fr.archive.ubuntu.com/ubuntu noble/main amd64 liberror-perl all 0.17029-2 [25.6 kB]
Получение:2 http://fr.archive.ubuntu.com/ubuntu noble-updates/main amd64 git-man all 1:2.43.0-1ubuntu7.1 [1,100 kB]
Получение:3 http://fr.archive.ubuntu.com/ubuntu noble-updates/main amd64 git amd64 1:2.43.0-1ubuntu7.1 [3,679 kB]
Загружено 4,804 кб за 1с (4,750 кб/с)
Выбор ранее не выбранного пакета liberror-perl.
(Чтение базы данных ... 210630 файлов и директорий в настоящее время установлено.)
Подготовка к распаковке .../liberror-perl_0.17029-2_all.deb ...
Распаковка liberror-perl (0.17029-2) ...
Выбор ранее не выбранного пакета git-man.
Подготовка к распаковке .../git-man_1%3a2.43.0-1ubuntu7.1_all.deb ...
Распаковка git-man (1:2.43.0-1ubuntu7.1) ...
Выбор ранее не выбранного пакета git.
Подготовка к распаковке .../git_1%3a2.43.0-1ubuntu7.1_amd64.deb ...
Распаковка git (1:2.43.0-1ubuntu7.1) ...
Настройка liberror-perl (0.17029-2) ...
Настройка git-man (1:2.43.0-1ubuntu7.1) ...
Настройка git (1:2.43.0-1ubuntu7.1) ...
Обработка триггеров для man-db (2.12.0-4build2) ...

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

Установка Git на Ubuntu 22.04 может столкнуться с проблемами, связанными с неудовлетворенными зависимостями. Рассмотрим ситуации, когда вы пытаетесь установить Git и получаете ошибку, аналогичную следующей:

The following packages have unmet dependencies:
git : Depends: git-man (< 1:2.39.1-) but 1:2.39.2-0ppa1~ubuntu22.04.1 is to be installed
E: Unable to correct problems, you have held broken packages.

Причины проблемы

  1. Неудовлетворенные зависимости: Как указано в сообщении об ошибке, версия git-man, которую вы пытаетесь установить, конфликтует с зависимостями, необходимыми для установки Git. Это может произойти, если вы добавили сторонний PPA, в данном случае ppa:git-core/ppa, который предоставляет более новые или нестабильные версии пакетов, которые не совместимы с основными репозиториями Ubuntu.

  2. Держимые пакеты: Иногда во время установки могут быть пакеты, которые были "удержаны", и это также может вызывать конфликты.

Решение проблемы

Вот пошаговое руководство по разрешению проблем с установкой Git на Ubuntu 22.04:

Шаг 1: Удаление стороннего PPA

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

sudo apt install ppa-purge
sudo ppa-purge ppa:git-core/ppa

Команда ppa-purge вернет пакеты, установленные из этого PPA, к версии из стандартных репозиториев Ubuntu.

Шаг 2: Обновление списков пакетов

После удаления PPA обязательно обновите список пакетов:

sudo apt update

Шаг 3: Очистка системы

Затем выполните команду для очистки системы от ненужных пакетов:

sudo apt autoremove

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

Шаг 4: Установка Git

Теперь попробуйте снова установить Git:

sudo apt install git

Дополнительные шаги

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

  • Проверка информации о пакетах: Используйте команду apt policy, чтобы проверить актуальные версии пакетов и их источники. Убедитесь, что версия git-man подходит для вашей версии Git.
apt policy git git-man
  • Используйте apt install -f: Эта команда попытается исправить любые проблемы с зависимостями. Но в вашем случае, похоже, она уже не помогла.

Заключение

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

Эти шаги должны помочь вам успешно установить Git и продолжить вашу работу.

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

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