emerge reclama sobre pacotes bloqueados: o que eu faço?

5

Temos um antigo servidor de desenvolvimento executando o Gentoo no trabalho. Eu gostaria de atualizar esse sistema, mas continuo tendo problemas com o sistema de empacotamento. Para mim, parece que há dependências em várias versões de vários pacotes e não consigo ver como corrigi-lo.

O maior problema provavelmente está relacionado ao Python e ao Portage. Eu preciso de um novo portage, mas parece que há dependências cíclicas acontecendo.

Eu tentei várias soluções, mas não tenho certeza de ir a partir daqui. Alguma pista que possa me ajudar a consertá-lo?

Mais informações

A seguir, a saída (bit relevante da) da execução de emerge --update --newuse --deep @world

(lots of normal output ....)
[ebuild     U ] app-misc/mc-4.7.0.3 [4.6.1-r4] USE="edit%* -slang*" 
....
[blocks B     ] >=dev-lang/python-2.6.6 (">=dev-lang/python-2.6.6" is blocking sys-apps/portage-2.1.6.7)
[blocks B     ] <sys-apps/portage-2.1.7.16 ("<sys-apps/portage-2.1.7.16" is blocking app-shells/bash-4.1_p9)
[blocks B     ] <sys-apps/portage-2.1.9 ("<sys-apps/portage-2.1.9" is blocking dev-lang/python-2.7.1-r1)

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

  (dev-lang/python-2.7.1-r1, ebuild scheduled for merge) pulled in by
    =dev-lang/python-2* required by (dev-vcs/mercurial-1.7, ebuild scheduled for merge)
    =dev-lang/python-2*[threads] required by (dev-vcs/mercurial-1.7, ebuild scheduled for merge)
    =dev-lang/python-2* required by (dev-libs/glib-2.28.6, ebuild scheduled for merge)
    (and 1 more)

  (app-shells/bash-4.1_p9, ebuild scheduled for merge) pulled in by
    >=app-shells/bash-3.2_p17 required by (sys-apps/portage-2.1.9.42, ebuild scheduled for merge)
    app-shells/bash required by (sys-block/di-4.18, ebuild scheduled for merge)
    app-shells/bash required by (app-admin/perl-cleaner-2.7, ebuild scheduled for merge)
    (and 2 more)

  (dev-lang/python-3.1.3-r1, ebuild scheduled for merge) pulled in by
    dev-lang/python required by (app-admin/python-updater-0.9, ebuild scheduled for merge)
    >=dev-lang/python-3 required by (sys-apps/portage-2.1.9.42, ebuild scheduled for merge)
    =dev-lang/python-3.1* required by (dev-java/java-config-2.1.11-r3, ebuild scheduled for merge)

Este é o bit relevante da saída ao executar emerge --pretend --depclean

Calculating dependencies... done!
 * Dependencies could not be completely resolved due to
 * the following required packages not being installed:
 * 
 *   >=dev-lang/python-2.4 pulled in by:
 *     sys-apps/portage-2.1.6.7
 * 
 *   dev-lang/python pulled in by:
 *     dev-java/java-config-2.1.7
 * 
 *   dev-lang/python pulled in by:
 *     dev-libs/libxml2-2.6.31
 * 
 *   <dev-lang/python-2.6.6 pulled in by:
 *     sys-apps/portage-2.1.6.7
 * 
 *   >=dev-lang/python-2.2 pulled in by:
 *     dev-libs/beecrypt-4.1.2-r1
 * 
 *   virtual/python pulled in by:
 *     dev-python/pycrypto-2.0.1-r6
 * 
 *   >=dev-lang/python-2.3 pulled in by:
 *     dev-vcs/mercurial-1.0.2
 * 
 *   >=dev-java/java-config-2.1.9-r1 pulled in by:
 *     dev-libs/beecrypt-4.1.2-r1
 * 
 *   virtual/python pulled in by:
 *     dev-lang/swig-1.3.34
 * 
 *   dev-lang/python pulled in by:
 *     net-fs/samba-3.0.28a-r1
 * 
 *   >=dev-lang/python-2.2 pulled in by:
 *     app-arch/rpm-4.4.6-r6
 * 
 *   >=virtual/python-2.2.1 pulled in by:
 *     sys-libs/libcap-1.10-r11
 * 
 *   dev-lang/python pulled in by:
 *     sys-libs/cracklib-2.8.9-r1
 * 
    
por oligofren 28.06.2011 / 15:31

2 respostas

3

Eu enfrentei o mesmo problema há poucos dias. Eu não tenho uma maneira exata de como fazer isso, mas aqui está a maneira genérica:

Primeiro, dê uma olhada em /var/lib/portage/world . Faça um backup e desmonte os pacotes para os que precisam do seu sistema para inicializar. Aqui está algum conteúdo para você ir:

app-admin/syslog-ng
net-firewall/iptables
net-misc/dhcpcd
sys-apps/pciutils
sys-apps/slocate
sys-apps/usbutils
sys-boot/grub
sys-kernel/gentoo-sources
sys-power/acpid
sys-process/vixie-cron
virtual/inetd

Todo o resto será atualizado mais tarde.

A parte mais crítica é obter o portage e o python para versões recentes, então vamos nos concentrar nisso.

  1. Emerja seu diretório do portage:

    emerge --sync
    

    ou:

    emerge-webrsync
    
  2. Defina um perfil válido

    eselect profile list
    eselect profile set <x>
    
  3. Atualize o python / portage passo a passo.

    Dê uma olhada na sua versão atual do portage instalado. Atualize o portage para a próxima versão maior que a atual (mesmo que seja mascarada por ~ x86), e faça o mesmo para python. Após uma atualização python, certifique-se de executar python-updater .

    Faça isso passo a passo até que o python / portage esteja atualizado. (Você pode pular alguns dos upgrades de versão secundária. Você verá por si mesmo quais versões resultam em erros de compilação e quais são.)

  4. Assim que eles trabalharem, tente criar outros pacotes, pois eles podem ajudá-lo em sua tarefa.

    app-portage/ufed
    app-portage/autounmask
    app-portage/gentoolkit
    
  5. Quando o python / portage estiver atualizado, você poderá restaurar o seu arquivo antigo e atualizar o sistema.

    emerge -pvauDN world
    

    Você pode precisar ligar:

    emerge ...
    emerge --depclean
    revdep-rebuild
    

    várias vezes durante o processo de criação.

por 28.07.2011 / 17:14
0

Se o problema em python, em seguida, tente executar python-updater Note que você pode selecionar a versão atual do python pelo comando eselect

    
por 06.02.2013 / 22:43