- Вопрос или проблема
- Apt AutoRemove сработал для меня
- Объяснение
- sudo apt install git
- sudo apt autoremove
- sudo apt install git
- Ответ или решение
- Причины проблемы
- Решение проблемы
- Шаг 1: Удаление стороннего PPA
- Шаг 2: Обновление списков пакетов
- Шаг 3: Очистка системы
- Шаг 4: Установка Git
- Дополнительные шаги
- Заключение
Вопрос или проблема
У меня был установлен 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.
Причины проблемы
-
Неудовлетворенные зависимости: Как указано в сообщении об ошибке, версия
git-man
, которую вы пытаетесь установить, конфликтует с зависимостями, необходимыми для установки Git. Это может произойти, если вы добавили сторонний PPA, в данном случаеppa:git-core/ppa
, который предоставляет более новые или нестабильные версии пакетов, которые не совместимы с основными репозиториями Ubuntu. -
Держимые пакеты: Иногда во время установки могут быть пакеты, которые были "удержаны", и это также может вызывать конфликты.
Решение проблемы
Вот пошаговое руководство по разрешению проблем с установкой 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 и продолжить вашу работу.