Примітка про можливий дублікат:
AFAIK, це не дублікат того, як я можу вирішити незадовільні залежності після додавання PPA? інакше будь ласка, доведіть це, вирішивши тестову проблему, яку я згадую нижче, використовуючи будь-яку відповідь звідти.
Фон:
Я зіткнувся з цією проблемою раніше, як виправити встановлення вина на Ubuntu 14.04.3LTS 64 біт . Це було вирішено ручним / людським оглядом усіх рекурсивних залежностей цільового пакету ( wine
).
Відтворити проблему (тестовий випадок):
Давайте створимо таку ж ситуацію тихою спрощеною лише з 1 пакетом проблем.
- Встановіть свіжий Ubuntu 14.04 на VirtualBox.
- Відкрийте
software-properties-gtk
та увімкнітьbackports
сховище. Отримати останній список пакетів
sudo apt-get update
Виконати,
apt-get -s install wine
щоб підтвердити, щоwine
можна встановити.Встановіть тривожний пакет
libcgmanager0
із заднього списку$ apt-cache policy libcgmanager0 libcgmanager0: Installed: 0.24-0ubuntu5 Candidate: 0.24-0ubuntu7.5 Version table: 0.39-2ubuntu2~ubuntu14.04.1 0 100 http://dz.archive.ubuntu.com/ubuntu/ trusty-backports/main amd64 Packages 0.24-0ubuntu7.5 0 500 http://dz.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages 0.24-0ubuntu7.1 0 500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages *** 0.24-0ubuntu5 0 500 http://dz.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages 100 /var/lib/dpkg/status
Змусити
apt
встановитиlibcgmanager0
версію0.39-2ubuntu2~ubuntu14.04.1
sudo apt-get install libcgmanager0=0.39-2ubuntu2~ubuntu14.04.1
Тепер ми опиняємось у тій же ситуації з користувачем із зазначеного питання на задньому плані, установка вина не спрацьовує з невиконаною залежністю, показуючи лише пакети залежності першого рівня.
apt-get -s install wine
Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: wine : Depends: wine1.6 but it is not going to be installed E: Unable to correct problems, you have held broken packages.
apt-get -s install wine1.6
Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: wine1.6 : Depends: wine1.6-i386 (= 1:1.6.2-0ubuntu4) E: Unable to correct problems, you have held broken packages.
apt-get -s install wine1.6-i386
Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: wine1.6-i386:i386 : Depends: libglu1-mesa:i386 but it is not going to be installed or libglu1:i386 Depends: libgphoto2-6:i386 (>= 2.5.2) but it is not going to be installed Depends: libgphoto2-port10:i386 (>= 2.5.2) but it is not going to be installed Recommends: libsane:i386 but it is not going to be installed E: Unable to correct problems, you have held broken packages.
Дотримуватися залежностей apt-get install
одна за одною не практично .
Ідеальне рішення:
Справжнє питання тут
apt
не вдалося встановитиlibcgmanager0:i386
версію,0.39-2ubuntu2~ubuntu14.04.1
оскільки сховище резервного списку має нижчий пріоритет,100
менший за версію0.24-0ubuntu7.5
зupdates
сховища500
apt
не вдалося встановитиlibcgmanager0:i386
версію,0.24-0ubuntu7.5
оскількиlibcgmanager0:amd64
встановлена інша версія0.39-2ubuntu2~ubuntu14.04.1
Найшвидший виправлення полягає в тому, щоб змусити встановити ту ж версію i386 із заднього списку
sudo apt-get install libcgmanager0:i386=0.39-2ubuntu2~ubuntu14.04.1
або зменшити його (amd64) до будь-якої версії із звичайних сховищ
sudo apt-get install libcgmanager0=0.24-0ubuntu7.5
Способи / інструменти, які я спробував:
- Вимкнення PPA не має ніякого відношення до проблеми.
- Використання
aptitude
в інтерактивному режимі приносить лише рішення з багатьма видаленнями ( > 200 !!! ). - Використовуйте
apt-get install
вручну, керуючись деревом залежності. Непрактично, оскільки залежності першого та другого рівнів не викликали змістовного повідомлення про конфлікт. debfoster
може генерувати рекурсивні залежності, але лише для вже встановленого пакету. Однакwine
ще не встановлено.
Тема / Мої інтереси:
Скажімо, я хочу встановити вино, не знаючи про проблему libcgmanager0
упаковки (або саме libcgmanager0:amd64=0.39-2ubuntu2~ubuntu14.04.1
того , що вже встановлено).
Я шукаю метод налагодження або спосіб дізнатися назву тривожного пакету і швидко зрозуміти, що відбувається.
Як налагодити проблеми, що не задовольняються, в цілому?
Можливо, є нові параметри в
dpkg
/apt
/,aptitude
які простежують внутрішню залежність рішення. Що можна показатиlibcgmanager0
у своєму результаті.Якщо на це немає ніякої канонічної відповіді, невже хто-небудь може показати мені кращий спосіб генерувати рекурсивний список залежностей або моделювати вирішувач залежності з більш детальною інформацією, яка може допомогти виправити проблему?
Чому всі залежності? Тому що я хочу перевірити вихід випущених нижче команд для всіх пакетів одночасно.
apt-cache policy <all-dependencies>
apt-get -s install <all-dependencies>
libcgmanager
, а в залежності? Ви згадали про рекурсивний перелік залежностей. Ви пробували apt-rdepends
?
wine
(або інший пакунок, що впливає) на -o Debug::pkgProblemResolver=yes
?
backports
версія?