<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d5591484190086716210\x26blogName\x3d%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D0%BA%D0%B8+ubuntu\x27%D0%B9%D1%86%D0%B0\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dBLUE\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttps://tlanvar.blogspot.com/search\x26blogLocale\x3dru\x26v\x3d2\x26homepageUrl\x3dhttp://tlanvar.blogspot.com/\x26vt\x3d-5598673310917208656', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe", messageHandlersFilter: gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER, messageHandlers: { 'blogger-ping': function() {} } }); } }); </script>

Записки ubuntu'йца

Делюсь вот своими наблюдашками.


Разрешение конфликтов зависимостей.

воскресенье, мая 06, 2007

Из книги Шредера “Linux. Сборник рецептов”. Все нижесказанное проверено и работает.

Проблема

Программа не устанавливается из-за проблем с зависимостями, или команда apt-get dist-upgrade оставляет пакеты, которые нужно удалить.

Решение

Существует несколько команд, которые могут пригодиться для решения этой задачи; перечислим их в том порядке, в котором их стоит попробовать. Допустим, проблемы возникли с пакетом libpam-modules, который не желает обновляться:

# apt-get install libpam-modules

The following packages have unmet dependencies:
libpam-modules: Depends: Iibdb3 (>=3.2.9-19.1) but 3.2.9-19 is to be installed
E: Broken packages

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

# apt-get install -t stable libpam-modules

Если это не помогает или система не является смешанной, попробуйте воспользоваться системой разрешения конфликтов Debian:

# apt-get -f install

Затем выполните команду:

# dpkg --configure -a

И снова повторите команду:

# apt-get -f install

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

Reading Package Lists… Done
Building Dependency Tree… Done
0 upgraded, 0 newly installed. 0 to remove and 1 not upgraded.

Теперь проверьте, что произойдет при удалении существующего пакета libpam- modules:

# apt-get remove –dry-run libpam-modules

Reading Package Lists… Done
Building Dependency Tree… Done
The following packages will be REMOVED:

adduser adminmenu apache at base-config courier-imap courier-imap-ssl courier-pop courier-pop-ssl cron cupsys cupsys-driver-gimpprint diet-elements dict-foldoc dict-gcide diet-jargon dict-vera dict-wn dictd gdm2…

WARNING: The following essential packages will be removed
This should NOT be done unless you know exactly what you are doing!
login libpam-modules (due to login)

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

Если apt-get -u dist-upgrage отображает какие-либо задержанные (held) пакеты, от них лучше избавиться. Пакеты удерживаются из-за конфликтов зависимостей, которые не удается разрешить apt. Попробуйте воспользоваться следующей командой для поиска и исправления конфликтов:

# apt-get -о Debug::pkgProblemResolver=yes dist-upgrade

Если исправить конфликты не удается, команда завершается с сообщением

0 upgraded. 0 newly installed , 0 to remove and 6 not upgraded.

Удаляйте held-пакеты один за одним, каждый раз запуская dist-upgrade, пока не останется ни одного задержанного пакета. Затем установите заново все необходимые пакеты. Не забудьте использовать ключ –dry-run, чтобы заранее знать обо всех последствиях:

# apt-get remove –dry-run libsdl-perl

Ярлыки: ,


| запостил: banderlog, 09:27 | Ссылка на статью | Комментариев (1) |

AddThis Social Bookmark Button

Коментариев: 1 штук(и)


Познавательно, спасибо. Особенно в свете вышедшего Этча, на который всё равно будут переползать.
откоментировал: Blogger virens, 6 мая 2007 г. в 18:17  


<< На главную... | << Добавить комментарий