Я хотел бы установить самую последнюю версию boto , которую я делаю черезpython setup.py install
Тем не менее, когда я пытаюсь удалить старую версию, следующие пакеты также удаляются:
apt-get remove python-boto
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
cloud-init cloud-utils euca2ools python-boto
Как я могу сказать менеджеру пакетов удалить boto, и они помечают его как установленный снаружи (или что-то в этом роде), чтобы apt не пыталась исправить отсутствующую зависимость?
Спасибо,
Максим.
Ответы:
Вы можете создать фиктивный пакет .deb с помощью
equivs
утилиты, которая обеспечит зависимость без установки каких-либо файлов. Затем просто замените установленный пакет на фиктивную версию, используяdpkg -i fake.deb
.источник
Используйте dpkg напрямую, а не apt-get или aptitude:
источник
Я знаю, что это старый пост, но, поскольку у меня недавно была похожая проблема, я хотел бы поделиться своим решением в надежде, что кто-то в будущем найдет его полезным.
Если вы установили пакет через aptitude, он автоматически присваивает флаги зависимостям (auto), и при повторной попытке удаления пакета он пытается удалить все свои зависимости, для которых все еще установлен флаг auto.
Как вы можете видеть в моем случае, это zabbix, который я хочу удалить:
И если мы посмотрим на пакет Apache, он выглядит так
первый флаг «i» говорит нам, что Apache установлен
. Следующий флаг «A» означает автоматически установленный.
Поэтому, чтобы исправить это и не удалять apache, mysql и php, мы можем просто удалить флаг auto с помощью aptitude, например:
Теперь при удалении пакета zabbix это выглядит так:
Пожалуйста, проверьте man-страницу для aptitude для более подробной информации
источник
Это именно то
apt-mark hold
, для чего.apt-mark hold package_name
Из документации:
Чтобы открыть пакет:
apt-mark unhold package_name
источник
The following packages have unmet dependencies: mysql-server-5.7 : Depends: apparmor (>= 2.10) but it is not going to be installed E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
AFAIK нет способа удалить пакет с помощью APT, не удаляя также те пакеты, которые зависят от него.
Ссылка: http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.en.html
источник
Чтобы завершить ответ Жоау Пинту, вы можете использовать мой маленький скрипт для исправления поврежденного пакета, этот скрипт создаст фиктивный пакет с эквивалентами и установит его. Вы можете найти статью в моем блоге на французском языке .
Или непосредственно по основному коду .
Чтобы использовать это:
источник