[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Apt: conflito estranho



Rodrigo, nao sei se vc já resolveu isso, mas aqui vao mais alguns
comentários... sem apagar nada, pra ajudar a lembrar.

Rodrigo Baroni wrote:

On Tue, 22 Feb 2005 21:55:28 -0300, Marcos Vinicius Lazarini
<lazarini@nics.unicamp.br> wrote:

Rodrigo Baroni wrote:

  Estou tentando instalar o gaim da versão instável, mas não sei o
por quê que ele quer remover o aspell-pt-br e aspell-pt-common:

gnu:/home/baroni# apt-get -o Debug::pkgProblemResolver=yes install
gaim -t unstable
Lendo Lista de Pacotes... Pronto
Construindo Árvore de Dependências... Pronto
Starting
Starting 2
Investigating aspell
Package aspell has broken dep on aspell-en
 Considering aspell-en 1 as a solution to aspell 1
 Re-Instated aspell-en
 Re-Instated aspell
Done
Os pacotes extra a seguir serão instalados:
 aspell aspell-en gaim-data libaspell-dev libaspell15 libstartup-notification0
Pacotes sugeridos :
 gnome-panel kicker evolution-data-server libzephyr3
Os pacotes a seguir serão REMOVIDOS:
 aspell-pt-br aspell-pt-common

> Os pacotes a seguir serão atualizados :
>   aspell aspell-en gaim gaim-data libaspell-dev libaspell15
> libstartup-notification0
> 7 pacotes atualizados, 0 pacotes novos instalados, 2 a serem removidos
> e 617 não atualizados.

Vendo aqui na net, o gaim depende do libaspell15 (>= 0.60), que por sua
vez recomenda o aspell-en ou aspell-dictionary (que é um virutal
package). Porem, esse comportamento é só do unstable, e se vc já tinha o
aspell-pt-br do testing, ele pode não ter sido esperto o suficiente pra
notar isso e dar um upgrade.


  A libaspell15 está atualizada. O gaim está dependendo da libaspell15

= 0.60 que é da unstable - aí está o problema: (embora dependências

de bibliotecas NUNCA deveria ser um problema segundo o esquema
utilizado em sistemas UNIX:
http://www-106.ibm.com/developerworks/linux/library/l-shlibs.html?ca=dgr-lnxw82SharedLib)

----------------apt-show-versions libaspell15----------------------------
gnu:/home/baroni# apt-show-versions  libaspell15
libaspell15/testing uptodate 0.50.5-5
gnu:/home/baroni# apt-show-versions  -a libaspell15
libaspell15     0.50.5-5        install ok installed
No stable version
libaspell15     0.50.5-5        testing
libaspell15     0.60.2-2        unstable
libaspell15/testing uptodate 0.50.5-5
gnu:/home/baroni# ----------------------------------------------------------------------------------

    E se eu mando instalar ela, ela tenta (também!) remover o aspell-pt-br:

-----------------apt-get install -t unstable libaspell15 ------------------
gnu:/home/baroni# apt-get install -t unstable libaspell15
Lendo Lista de Pacotes... Pronto
Construindo Árvore de Dependências... Pronto
Os pacotes extra a seguir serão instalados:
  libaspell-dev

Opa, perai - pq ele quer instalar o libaspell-dev? Não achei essa
dependencia na web.... vc queria compilar? Nao captei aqui...

Os pacotes a seguir serão REMOVIDOS:
  aspell aspell-en aspell-pt-br aspell-pt-common sgml-spell-checker

isso eu acho q é pq ele vai instalar o libaspell-dev do unstable, q pede
 libaspell15 (= 0.60.2+20050121-1) para arquitetura not hurd-i386. Por
algum motivo, ele achou q deveria tirar esses pacotes, e não
atualiza-los. Talvez pq nem todos estivessem disponíveis, e ai ele
resolveu remover.
Aqui pela web eu nao consegui achar uma justificativa (nao aparece os conflitos)... vi que o aspell depende do dictionary-common, que depende do perl. Acho improvável, mas será q ele tentou atualizar o perl, nao conseguiu e ai resolver remover? Alem disso, o aspell-pt-br está dentro de um virutal package, o q pode enbananar o apt... outra coisa é que o aspell-en aparece tanto fora como dentro do virtual package.

Os pacotes a seguir serão atualizados :
  libaspell-dev libaspell15

Hummm... perai, esse libaspell-dev vai ser instalado ou atualizado? nao entendi...

2 pacotes atualizados, 0 pacotes novos instalados, 5 a serem removidos
e 671 não atualizados.
É preciso fazer o download de 688kB de arquivos.
Depois de desempacotar, 16,2MB de espaço em disco serão liberados.
Quer continuar? [S/n]
------------------------------------------------------------------------------------

  E vendo as dependencias dela não há o porquê de ela querer remover o
aspell-pt-br:

-------------------apt-cache show libaspell15-------------------------------
gnu:/home/baroni# apt-cache show libaspell15 (da unstable)
[...]
Version: 0.60.2-2
Replaces: libaspell0, libaspell1, libaspell2, libaspell3, libaspell4,
libaspell5, libaspell6, libaspell8, libaspell10, libas
pell11, libpspell2, libpspell4, libpspell15, aspell-bin (<< 0.50.3-4),
aspell-bg (<= 3.0-1)
Provides: libaspell11
Depends: libc6 (>= 2.3.2.ds1-4), libgcc1 (>= 1:3.4.1-3), libstdc++5
(>= 1:3.3.4-1)
Recommends: aspell-en | aspell6-dictionary
Suggests: aspell-bin
Conflicts: libaspell0, libaspell1, libaspell2, libaspell3, libaspell4,
libaspell5, libaspell6, libaspell8, libaspell10, libaspell11,
libpspell2, libpspell4, libpspell4c102, aspell-en (<< 0.50), aspell-da
(<= 1.4.22-2.3), aspell-de (<= 0.1-3-3), aspell-es (<= 0.0-3-3),
aspell-fo (<= 0.1.16-2.3), aspell-fr (<= 0.1-3-4), aspell-nl (<=
1:0.1e-26), aspell-no (<= 2.0-9), aspell-pt (<= 0.0-3-4), aspell-bg
(<= 2.0-2.2), aspell-dictionary
------------------------------------------------------------------------

  As dependências estão ok:

------------Verificando as versões das dependências------
gnu:/home/baroni# apt-show-versions libc6
libc6/testing uptodate 2.3.2.ds1-20
gnu:/home/baroni# apt-show-versions libgcc1
libgcc1/testing uptodate 1:3.4.3-6
gnu:/home/baroni# apt-show-versions libstdc++5
libstdc++5/testing upgradeable from 1:3.3.5-5 to 1:3.3.5-8
gnu:/home/baroni#
------------------------------------------------------------------------

  Os conflitos também - nenhum pacote pertencente as versões que
possuem  conflito:

--------------------dpkg -l | grep aspell---------------------------
gnu:/home/baroni# dpkg -l | grep aspell
ii  aspell         0.60.2-2       GNU Aspell spell-checker
ii  aspell-bin     0.50.5-5       GNU Aspell standalone spell-check utilities
ii  aspell-doc     0.50.5-5       Documentation for GNU Aspell spell-checker
ii  aspell-en      0.51-1-1       English dictionary for GNU Aspell
ii aspell-pt-br 2.4.really.3.0 The Brazilian Portuguese dictionary for GNU ii aspell-pt-comm 0.50-2-3 The Portuguese dictionary for GNU Aspell (co ii libaspell-dev 0.50.5-5 Development files for applications with GNU ii libaspell15 0.50.5-5 The GNU Aspell spell-checker runtime toolkit
gnu:/home/baroni#
------------------------------------------------------------

  .. com exceção do meta pacote aspell-dictionary  que está na lista
de conflitos, e que o aspell-pt-br pertence:

-----verificando os pacotes pertencentes ao meta pacote aspell-dicionary---
gnu:/home/baroni# apt-get install aspell-dictionary Lendo Lista de Pacotes... Pronto
Construindo Árvore de Dependências... Pronto
O pacote aspell-dictionary é um pacote virtual provido por:
[...]
  aspell-pt-br 2.4.really.3.0.beta4-7
[...]
Você deve selecionar um explicitamente para instalar.
E: O pacote aspell-dictionary não tem candidato para instalação
gnu:/home/baroni# ----------------------------------------------------------

 Será se esse é o problema? Se sim, por quê esse conflito, sendo que a
versão testing trabalha com ele normalmente e que se eu forço a
instalação do libaspell15 > 0.60 (que será instalada como dependência
do gaim) junto com a aspell-pt-br da unstable ele procede normalmente
como eu disse:

Bom, ao que parece a dependencia virtual parece não estar funcionando direito... Eu acho que é isso mesmo.

 Mas então quando eu mando instalar o (já instalado e atualizado)
aspell-pt-br e aspell-pt-common ele processe normalmente:

----------Executando apt-get install gaim aspell-pt-br,
aspell-pt-common--------------
gnu:/home/baroni# apt-get -o Debug::pkgProblemResolver=yes install
gaim aspell-pt-br aspell-pt-common  -t unstable

Aqui deve estar o problema: vc disse explicitamente pra pegar do
unstable - e se vc colocar como testing? será q ele vai dar conflito com
alguma coisa? Nesse caso, acho que a sequencia q vc fez na instalação
foi importante...

    Tentei então seguindo a sugestão do Marcos instalar a versão
testing do gaim, e... as dependências estão quebradas! :

----------apt-get install gaim (-t testing não precisa já que testing
é a de maior prioridade em /etc/apt/preferences)----------
gnu:/home/baroni# apt-get install gaim
Lendo Lista de Pacotes... Pronto
Construindo Árvore de Dependências... Pronto
Alguns pacotes não puderam ser instalados. Isso pode significar que
você solicitou uma situação impossível ou se você está usando a
distribuição instável, que alguns pacotes requeridos não foram criados ainda ou foram tirados do Incoming.

Já que você solicitou uma única operação é bem provável que o pacote
esteja simplesmente não instalável e um relato de erro sobre esse
pacotes deve ser enviado.
A informação a seguir pode ajudar a resolver a situação:

Os pacotes a seguir têm dependências desencontradas:
  gaim: Depende: libaspell15 (>= 0.60) mas 0.50.5-5 está para ser instalado
E: Pacotes quebrados
-----------------------------------------------------------------------------------

Isso, a meu ver, é um problema que o PIM (que vc explica abaixo) não conseguiu resolver. Supostamente, ele deveria cuidar disso, nao?

[...]

  Embora agora tente remover o aspell-en. Se coloco para instalar ele
também ele prossegue normalmente sem remover então nenhum pacote.
Alguém sabe o por quê que ele está insistindo em remover o
aspell-pt-{br,common} ?

Bom, as minhas sugestões estão acima... veja se estou enganado, e depois
mande a sua posição para a lista! :-)

   Fiz isso Marcos, novamente obrigado pela atenção nesse problema que
começa a parecer um bug no dpkg/apt... Alguém tem alguma idéia?

Ainda não tenho certeza.... o problema de dependencias é que elas vão entrando repositório a dentro e o correto seria chegar uma por uma na mão, pra ver onde surge alguma inconsistência...

  Estou usando um Debian Sarge como principal mas com acréscimo de
pacotes stable e unstable:

---------------Conteúdo do
/etc/apt/preferences-------------------------------------------
gnu:/home/baroni# cat /etc/apt/preferences
Package: *
Pin: release a=stable
Pin-Priority: 600

Package: *
Pin: release a=testing
Pin-Priority: 900

Package: *
Pin: release a=unstable
Pin-Priority: 800

gnu:/home/baroni#
--------------------------------------------------------------------------------------------

   Essas configurações de prioridade indicam para instalar sempre
pacotes da testing quando não indicado explicitamente qual tipo e
instalar pacotes unstable ou stable quando indicado com -t
testing|stable.

Eu nunca consegui usar direito os tres repositórios ao mesmo tempo;
sempre fiquei com stable/testing e testing/unstable. Esse negócio de pin
sempre me deu dor de cabeça e nao funcionava direito. Acabei criando um
apt.conf com a diretiva 'APT::Default-Release "stable";' e uso dois
repositórios apenas no sources.list.


-------Segundo as explicações de man 5 apt_preferences:------------
 500 < P <=990 : faz  com  que  uma  versão  seja  instalada a menos
que exista uma versão disponível pertencente a versão alvo ou a versão
instalada seja mais recente.
---------------------------------------------------------------------------------------

      Então utilizando o /etc/apt/preferences com prioridades nessa
faixa de valores (conforme eu postei - com a prioridade maior nessa
ordem: testing, unstable e stable), quaisquer dos comandos a seguir
farão com que o APT atualize para a(s) última(s) versão(ões) testing.

       apt‐get install nome‐pacote
       apt‐get upgrade
       apt‐get dist‐upgrade

      E para instalar uma versão específica da unstable ou stable (e
atualizar o pacote - caso ele já esteja instalado em uma destas
versões)

       apt‐get install pacote/unstable (ou pacote/stable)

     Com o comando apt‐get upgrade atualizando o pacote para a versão
testing mais recente caso essa  versão seja  mais  recente  que  a
versão instalada. Caso não seja, o pacote será atualizado para a
versão unstable mais recente caso a mesma seja mais recente que a
versão instalada.

      Ou seja, se você ficar um bom tempo sem atualizar um pacote da
unstable de modo que a versão dele vá para a testing, quando vc fizer
um "apt-get upgrade" ele irá então acompanhar o  pacote na versão
testing.

Agora quanto ao conflito, ainda não sei o que se passa :(. Idéias?

Bom, eu acho que se tiver algum furo, é nesse esquema de PIM! :-)
Apenas um palpite... achei bem complicado a resolução que ele faz.


--
Marcos



Reply to: