Visualización de paquetes privativos usando apt-cache, apt-get, aptitude

Project:Trisquel
Component:Programs
Category:bug report
Priority:normal
Assigned:Unassigned
Status:active
Description

Al ejecutar aptitude show tenemos la siguiente salida:

root@libertad:~# aptitude show parangacutirimicuero
E: No se pudo localizar el paquete parangacutirimicuero

Eso está bien, pero si ejecutamos el mismo comando, pero con un paquete que existe, pero ha sido eliminado del repositorio de Trisquel, como es el ejemplo de cualquier paquete privativo la salida es:

root@libertad:~# aptitude show unrar-nonfree
No se encontró ninguna versión reciente o candidata para unrar-nonfree
Paquete: unrar-nonfree
Estado: no es un paquete real

Al parecer es reconocido como un paquete, pero no logra encontrarlo. Mi opinión es que debería tener la misma salida de un paquete inexistente.

Adicionalmente y quizás por la misma razón, al tener activado bash-completion en el terminal y ejecutar por ejemplo:

aptitude install unrar y usar el tabulador tenemos la salida:
unrar unrar-free unrar-nonfree

Es decir, a simple vista pareciera que estos paquetes están disponibles y se pudieran instalar.

Observar el siguiente comando y su salida:

root@libertad:~# apt-cache pkgnames unrar
unrar
unrar-nonfree
unrar-free

En la documentación de apt-cache podemos ver que la opción pkgnames dice:
This command prints the name of each package APT knows. Entonces, ¿por qué APT conoce esos paquetes privativos si no están en el repositorio?

He probado regenerar el cache varias veces y de varias formas, pero todo sigue igual. He revisado manualmente los archivos en /var/lib/apt/lists/ y no existen entradas de paquetes privativos.

Lo único que se me ocurre es que apt busque también (o indexe de alguna manera) los Suggests de cada paquete, que por cierto hay varios que sugieres aplicaciones privativas.

PD: para todas las pruebas usé las cadenas unrar-* y nvidia-*, ambas son raíces de nombres de paquetes privativos, es probable que todo esto funcione para TODOS los paquetes privativos que han sido eliminados de la distribución.

Tue, 08/14/2012 - 04:46
Version:»

Here are my outputs with 5.5:

sirgrant@Trisquel-Grant:~$ aptitude show parangacutirimicuero
E: Unable to locate package parangacutirimicuero
sirgrant@Trisquel-Grant:~$ aptitude show unrar-nonfree
No current or candidate version found for unrar-nonfree
Package: unrar-nonfree
State: not a real package
aptitude install unrar + tab; results in:
aptitude install unrar-free
sirgrant@Trisquel-Grant:~$ apt-cache pkgnames unrar
unrar-free
So as far as I can tell only the first part where if the package is removed and it shows a different message is still valid.

Fri, 10/26/2012 - 01:27
No current or candidate version found for unrar-nonfree
Package: unrar-nonfree
State: not a real package

Which means that another package still refers to it:

$ apt-cache show unrar-free | grep unrar-nonfree
Conflicts: unrar-nonfree (<< 1:3.7.8-1)

The Trisquel packaging for unrar-free could remove this conflict. The same for other relationships with non-free software which is not present in the distribution. The output of “apt-cache show unrar-nonfree” will then be as the first part of your example.

There may be complications with removing such conflicts as the conflicting package can still be installed if it is located from another source (such as Debian non-free archive).