3

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

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

Это сводит меня с ума. Хотя я просто удаляю самбу, так как я все равно ее не использую, но какой-то гений заставил Гнома зависеть от этого:

# 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 (похоже, только на libs).
  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. Однажды я экспериментировал со шмелем, а также с некоторыми материалами для копирования DVD, и я помню, что мне нужно было что-то устанавливать из бэкпортов. Мне это больше не нужно. Шмель все равно не удался, потому что мое оборудование и 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'

6 ответов6

4

С помощью apt можно понизить пакеты deb до определенного репозитория:

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

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

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

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

2

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

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

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

1

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

Вы должны установить каждый пакет отдельно.

Посмотрите это решение Superuser : apt пакеты хранятся обратно решение

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

0

Отключение пакетов, связанных с samba, вручную без apt может решить проблему. Возьмите пакеты deb с зеркала (не забудьте выбрать те из репозиториев wheezy) и установите их с помощью dpkg -i . Если вы сомневаетесь, поищите правильную версию на packages.debian.org.

И не забудьте удалить репозиторий backport из sources.list если он больше не нужен.

(Этот ответ устарел, я выложил другой)

0
sudo -i
apt-get update
apt-get upgrade
apt-get dist-upgrade

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

Сделай это, и я уверен, что это поможет тебе.

0

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

apt-cache rdepends packagename

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .