Os seguintes pacotes foram retidos

Os seguintes pacotes foram retidos

Estou executando o Debian Wheezy de 64 bits. Recentemente, quando o faço, apt-get upgraderecebo isto:

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

Está me deixando louco. Eu apenas removi o samba porque não o uso de qualquer maneira, mas algum gênio fez o Gnome depender dele:

# 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

Como faço para atualizar esses pacotes com segurança?

Não há muito material personalizado instalado:

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

[ATUALIZAR]

O que eu tentei:

  1. apt-get dist-upgrade- o resultado é o mesmo (os pacotes foram retidos).
  2. usado aptitude, mas tudo o que sugere é remover o gnome e alguns outros pacotes relacionados ao gnome e instalar muitos pacotes i386 (parece apenas libs).
  3. apt-get install libsmbclientlibsmbclient : Depends: samba-libs (= 2:4.1.9+dfsg-1~bpo70+1) but it is not going to be installed
  4. apt-get install libtevent0libtevent0 : Depends: libtalloc2 (>= 2.1.0) but 2.0.7+git20120207-1 is to be installed.
  5. apt-get install samba-libssamba-libs : Depends: samba-dsdb-modules (= 2:4.1.9+dfsg-1~bpo70+1) but it is not going to be installed

[ATUALIZAÇÃO 2]

Parece que a origem deste problema está em algum lugar no repositório backports. Eu estava experimentando o Bumblebee e também algumas coisas de extração de DVD uma vez e lembro que tive que instalar algo de backports. Eu não preciso mais disso. O Bumblebee falhou de qualquer maneira no meu hardware e o DVD foi copiado no Windows no final :(

Agora eu fiz aptitude search '~S ~i ~Abackports'e consegui isso:

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

Acho que devo fazer o downgrade desses pacotes e tudo ficará bem. Estou certo? Como devo fazer isso?

[ATUALIZAÇÃO 3]

Tentei remover ou fazer downgrade desses pacotes do repositório backports e consegui fazer isso apenas parcialmente.

Quando quis fazer o downgrade, libntdb1percebi que ele não existe no repositório estável. Quando tentei removê-lo - novamente, o apt também queria remover o gnome. Quando fiz apt-cache rdepends libntdb1isso, descobri que apenas a dependência reversa é samba-libs. Também não há samba-libsrepositório estável E também não consigo removê-lo porque, mais uma vez, ele tenta remover o gnome e um monte de coisas. Que diabos está acontecendo aqui? Observe que samba-libsnão está listado quando eu faço isso aptitude search '~S ~i ~Abackports'. Como se livrar dessa coisa?

Além disso, quando tentei fazer o downgrade libldb1e libwbclient0não consegui porque aptqueria remover o gnome em ambos os casos. Por que?

Então agora acabei com três pacotes do repositório backports listados com 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

E samba-libsisso aparentemente também vem de backports, mas não está listado comaptitude search '~S ~i ~Abackports'

Responder1

É possível fazer downgrade de pacotes deb para um repositório específico usando apt:

# apt-get install libsmbclient/wheezy libtevent0/wheezy samba/wheezy
  • A construção "[pacote]/wheezy" significa que o usuário deseja o pacote do repositório wheezyapenase não o mais novo.
  • É importante especificartodospacotes desejados de uma só vez, para que aptpossa resolver as dependências corretamente e extrair outros pacotes wheezy.

Se aptnão for solicitado a exclusão de pacotes importantes que você deseja manter, pronto. Haverá alguns avisos sobre problemas de dependência, mas você pode ignorar esses avisos, desde que não sejam fatais.

Após o downgrade ser bem-sucedido, bibliotecas como libtevent0, libldb1 etc. não serão mais necessárias. Você pode usar apt-get --purge autoremovee/ou deborphan(se estiver instalado) para localizar e limpar pacotes órfãos não úteis no sistema.

(Minha resposta anterior será invalidada, será excluída em breve, está incorreta de qualquer maneira - é possível fazer o downgrade com apt)

Responder2

Eu uso o solucionador de pacotes interativo do aptitude:

correr sudo aptitude. Em seguida, digite U(você maiúsculo) para dizer que deseja atualizar tudo. Ele lhe dirá que há conflitos e fará uma proposta para resolvê-los. use epara entrar no solucionador interativo e, em seguida, .(ponto) e ,(vírgula) para iterar sobre as diferentes soluções que encontrará e, em seguida, !para aceitar uma das soluções.

Você também pode tentar ajudá-lo a encontrar uma solução melhor (para você) indo para uma parte da solução (onde, por exemplo, propõe remover o gnome) e dizendo que deseja aceitar (com A) ou recusar (com R) isso isso acontece.

Responder3

Solução mais rápida e fácil:

Você deve instalar cada pacote individualmente.

Veja issoSuperusuáriosolução: pacotes apt mantidos solução

Aviso: Não corra sudo apt-get dist-upgradeaté que você tenha instalado completamente os pacotes necessários. DEPOIS, e SOMENTE DEPOIS disso, você pode executar sudo apt-get update&sudo apt-get dist-upgrade

Responder4

Abra um Terminal e digite:

apt-cache rdepends packagename

e substituanome do pacotecom o pacote que você deseja remover e listará os pacotes que precisam do pacote que você está tentando remover, remova esses pacotes primeiro e depois tente remover o pacote real.

informação relacionada