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

Re: Manejo Dependencias



(Se te fue al privado. Regreso a la lista)

On Sun, Jun 03, 2007 at 05:41:31PM -0600, Mägo de Oz wrote:
> Pero a ver... ustedes le dan la orden de desinstalar a un paquete x con una
> dependencia "y" y les desinstala las dependencias?? Mi Etch no se comporta
> asi... miren esto:

Creo que estamos hablando de otro caso.
 
> #aptitude purge clamav
> ...
> Los siguientes paquetes están ROTOS:
>  klamav
> Se ELIMINARÁN los siguientes paquetes:
>  clamav{p}
> ...
> No se satisfacen las dependencias de los siguientes paquetes:
>  klamav: Depende: clamav pero no es instalable
> Resolving dependencies...
  ^^^^^^^^^^^^^^^^
Hay problemas, así que sugiere:

> Las acciones siguientes resolverán estas dependencias
> 
> Eliminar los paquetes siguientes:
> klamav
> 
> Dejar las siguientes dependencias sin resolver:
> clamav-base recomienda clamav
> La puntuación es -501

quitar klamav, dejar clamav-base

> ... 
> O sea me deja las dependencias.. incumplidas pero las deja

No, no las deja. Si hubieras dejado a aptitude terminar, hubiera
eliminado klamav y dejado clamav-base. Eso es por que klamav *depende*
de clamav, pero clamav-base solo *recomienda* clamav.

Ahora bien, el caso que discutiamos. Paquetes de ejemplo, para fijar ideas:

Package: bonito-desktop
Depends: navegador, cliente-correo

Package: navegador
Depends: plugin

Package: cliente-correo
Recommends: antivirus

Empezamos ejecutando

 $ aptitude install bonito-desktop

aptitude instalará

 bonito-desktop navegador cliente-correo plugin antivirus

y marcará todos (salvo bonito-desktop) como 'instalado
automáticamente'.

Si ejecutaras

 $ aptitude remove antivirus

eliminaría ese paquete y ya. Nada más se elimina, por que nadie
*depende* de antivirus. Pero sí te avisará "cliente-correo recomienda
antivirus, ¿seguro que lo quiere quitar?".

Por otro lado, si ejecutaras

 $ aptitude remove plugin

aptitude necesitaría eliminar navegador (porque Depends: significa
'no funciona sin'). Y al eliminar navegador, tendría que eliminar
bonito-desktop. Una vez que se marca bonito-desktop para eliminar,
cliente-correo queda como 'paquete automático' que no es *requerido*
por ningún otro, así que aptitude lo marca para eliminar. Y entonces
antivirus queda en la misma situación y por lo tanto también se
marca. Resultado final: aptitude marca *todos* para eliminar.

Supón ahora que empiezas con

 $ aptitude install bonito-desktop cliente-correo

La lista de paquetes instalados será la misma. Pero cliente-correo
*no* se marca para eliminar. Si entonces ejecutas
 
 $ aptitude remove plugin

eliminará, como en el ejemplo anterior, a navegador y
bonito-desktop. Pero como cliente-correo está marcado 'manual', no lo
va a quitar aunque ningún otro paquete lo requiera.

¿Se entiende?

Attachment: signature.asc
Description: Digital signature


Reply to: