Следующие пакеты были сохранены

Следующие пакеты были сохранены

Я использую 64-битный Debian Wheezy. В последнее время, когда я это делаю, apt-get upgradeя получаю это:

The following packages have been kept back:
  libsmbclient libtevent0 samba-libs

Это сводит меня с ума. Я думал, что просто удалю samba, так как я ей все равно не пользуюсь, но какой-то гений заставил Gnome зависеть от нее:

# apt-get remove libsmbclient
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  gnome gnome-core gvfs-backends libgnomevfs2-extra libsmbclient mencoder mplayer

Как безопасно обновить эти пакеты?

Не так много дополнительных вещей установлено:

deb http://ftp.pl.debian.org/debian/ wheezy main 
deb-src http://ftp.pl.debian.org/debian/ wheezy main 

deb http://security.debian.org/ wheezy/updates main 
deb-src http://security.debian.org/ wheezy/updates main 

# wheezy-updates, previously known as 'volatile'
deb http://ftp.pl.debian.org/debian/ wheezy-updates main 
deb-src http://ftp.pl.debian.org/debian/ wheezy-updates main 

# wheezy-backports
deb http://ftp.pl.debian.org/debian/ wheezy-backports main contrib non-free

# virtualbox
deb http://download.virtualbox.org/virtualbox/debian/ wheezy contrib

[ОБНОВЛЯТЬ]

Что я пробовал:

  1. apt-get dist-upgrade- результат тот же (пакеты были задержаны).
  2. используется aptitude, но все, что он предлагает, это удалить gnome и несколько других пакетов, связанных с gnome, и установить целую кучу пакетов i386 (похоже, только библиотеки).
  3. apt-get install libsmbclientдаетlibsmbclient : Depends: samba-libs (= 2:4.1.9+dfsg-1~bpo70+1) but it is not going to be installed
  4. apt-get install libtevent0дает libtevent0 : Depends: libtalloc2 (>= 2.1.0) but 2.0.7+git20120207-1 is to be installed.
  5. apt-get install samba-libsдаетsamba-libs : Depends: samba-dsdb-modules (= 2:4.1.9+dfsg-1~bpo70+1) but it is not going to be installed

[ОБНОВЛЕНИЕ 2]

Похоже, что источник этой проблемы находится где-то в репозитории backports. Я как-то экспериментировал с bumblebee и некоторыми DVD-рипперами, и я помню, что мне пришлось установить что-то из backports. Мне это больше не нужно. Bumblebee в любом случае не сработал на моем оборудовании, и DVD в итоге был рипнут на Windows :(

Я так и сделал aptitude search '~S ~i ~Abackports'и вот что получилось:

i   initramfs-tools                   - generic modular initramfs generator
i A libavutil53                       - Libav utility library
i   libldb1                           - LDAP-like embedded database - shared library
i A libnettle4                        - low level cryptographic library (symmetric and one-way cryptos)
i A libntdb1                          - New Trivial Database - shared library
i A libopus0                          - Opus codec runtime library
i   libswscale2                       - Libav video scaling library
i A libtdb1                           - Trivial Database - shared library
i A libwbclient0                      - Samba winbind client library
i A python-talloc                     - hierarchical pool based memory allocator - Python bindings
i   samba-common                      - common files used by both the Samba server and client

Я думаю, что мне следует понизить эти пакеты и все должно быть хорошо. Я прав? Как мне это сделать?

[ОБНОВЛЕНИЕ 3]

Я попытался удалить или понизить версию этих пакетов из репозитория backports, но мне это удалось лишь частично.

Когда я захотел понизить версию, libntdb1я понял, что его нет в стабильном репозитории. Когда я попытался удалить его - снова, apt захотел удалить и gnome. Когда я это сделал, apt-cache rdepends libntdb1оказалось, что есть только обратная зависимость samba-libs. В стабильном репозитории его тоже нет samba-libs, И я не могу его удалить, потому что он снова пытается удалить gnome и кучу всего прочего. Что, черт возьми, здесь происходит? Обратите внимание, что этого samba-libsнет в списке, когда я делаю aptitude search '~S ~i ~Abackports'. Как избавиться от этой штуки?

Также, когда я попытался сделать даунгрейд libldb1и libwbclient0не смог, потому что aptхотел удалить gnome в обоих случаях. Почему?

Итак, теперь у меня есть три пакета из репозитория backports, перечисленных ниже aptitude search '~S ~i ~Abackports':

i   libldb1              - LDAP-like embedded database - shared library
i A libntdb1             - New Trivial Database - shared library
i A libwbclient0         - Samba winbind client library

И samba-libsэто, по-видимому, также происходит из бэкпортов, но не указано в спискеaptitude search '~S ~i ~Abackports'

решение1

Понизить версию deb-пакетов до определенного репозитория можно с помощью apt:

# apt-get install libsmbclient/wheezy libtevent0/wheezy samba/wheezy
  • Конструкция «[package]/wheezy» означает, что пользователю нужен пакет из репозитория wheezy.толькои не самый новый.
  • Важно указатьвсенужные пакеты за один раз, чтобы aptможно было правильно разрешить зависимости и извлечь другие сложные пакеты.

Если aptне появляется запрос на удаление важных пакетов, которые вы хотите сохранить, то все в порядке. Будет несколько предупреждений о проблемах с зависимостями, но вы можете спокойно игнорировать эти предупреждения, пока они не станут фатальными.

После успешного понижения версии библиотеки типа libtevent0, libldb1 и т. д. больше не нужны. Вы можете использовать apt-get --purge autoremoveand/or deborphan(если он установлен) для поиска и очистки бесполезных в системе пакетов-сирот.

(Мой предыдущий ответ будет признан недействительным, скоро удалю, он в любом случае неверен — можно понизить версию с помощью apt)

решение2

Я использую интерактивный решатель пакетов aptitude:

запустить sudo aptitude. Затем введите U(это заглавная буква u), чтобы сказать, что вы хотите обновить все это. Он сообщит вам, что есть конфликт, и сделает предложение по его решению. используйте eдля входа в интерактивный решатель, а затем .(точка) и ,(запятая) для итерации по различным решениям, которые он найдет, затем !для принятия одного из решений.

Вы также можете попытаться помочь ему найти лучшее решение (для вас), перейдя к части решения (где, например, предлагается удалить gnome) и сообщив ему, что вы хотите принять (с помощью A) или отказаться (с помощью R) его действие.

решение3

Самое быстрое и простое решение:

Каждый пакет необходимо устанавливать по отдельности.

Видеть этоСуперпользовательрешение: apt пакеты сдерживали решение

Предупреждение: Не беги sudo apt-get dist-upgradeпока вы полностью не установите пакеты, которые вам нужно установить. ПОСЛЕ и ТОЛЬКО ПОСЛЕ этого вы можете запустить sudo apt-get update&sudo apt-get dist-upgrade

решение4

Откройте Терминал и введите:

apt-cache rdepends packagename

и заменитьимя пакетас пакетом, который вы хотите удалить, и он выведет список пакетов, которым нужен пакет, который вы пытаетесь удалить, сначала удалите эти пакеты, а затем попробуйте удалить сам пакет.

Связанный контент