Назад | Перейти на главную страницу

Пакеты Virtuell сохраняются при обновлении

тот или иной мог видеть это сообщение при работе с apt:

The following packages have been kept back:
    some-package

Обычное решение этого проблема заключается в установке пакета вручную:

apt-get install some-package

Но почему apt вообще сдерживает данный пакет?

В моем текущем случае мне удалось воспроизвести это сообщение: Если какой-то пакет является виртуальным пакетом (поэтому он не содержит никаких данных, кроме управляющего файла с зависимостями), это происходит каждый раз, когда к виртуальному пакету добавляется зависимость. Пример: some-package - это виртуальный пакет версии 1.0.0, зависящий от package-A и package-B.

При установке some-package 1.0.0 также будут установлены пакеты A и B. Если я сейчас создам новую версию some-package 1.1.0, которая зависит от package-A, package-B и package-C, и попробую

apt-get update && apt-get upgrade

Результатом является вышеупомянутое сообщение:

The following packages have been kept back:
    some-package

Кто-нибудь знает, почему apt сдерживает такие пакеты?

По умолчанию apt-get upgrade обновляет только те пакеты, в зависимостях которых не было изменений. Таким образом, гарантируется, что никакие другие пакеты не будут установлены или, что более важно, удалены, от которых могло зависеть другое программное обеспечение, не контролируемое apt. Другими словами, apt пытается обеспечить максимальную стабильность вашей системы.

Чтобы обновить эти дополнительные пакеты, запустите

apt-get dist-upgrade

Это прежде всего отобразит все изменения, которые будут сделаны. Затем вы можете прервать это и использовать список отображаемых пакетов, чтобы выяснить, будут ли эти изменения безопасными в вашей системе. Убедившись, что с изменениями все в порядке, запустите dist-upgrade навсегда.