
Estoy buscando paquetes que tengan las siguientes situaciones:
- Eliminado pero no purgado
- Instalado pero no configurado
Probé cosas como
aptitude search '~id'
y
aptitude search "~iuA"
pero ninguno funcionó.
¿Algunas ideas?
Actualización: uno de los comandos no funciona.
[$] dpkg-query -Wf '${db:Status-Abbrev} ${Package}\n' | grep ^i[^i]
zsh: no matches found: ^i[^i]
¿Alguna idea si la culpa es de zsh o de algo más?
Respuesta1
Para sus aptitude
intentos, es importante tener en cuenta que eso ~
no significa "buscar las siguientes marcas en el estado de un paquete". ~i
es una abreviatura de ~installed
, y luego eldse interpreta como literald, es decir, paquetes cuyos nombres contienen la letrad. Busqué en la documentación aptitude
( /usr/share/doc/aptitude/html/en/index.html
en mi sistema) un patrón de búsqueda que satisficiera su pregunta, pero no estoy seguro de que sea posible. ~action
Podría llevarte a la mitad del camino, pero no estoy seguro de obtener el estado también.
Una alternativa al uso aptitude
es utilizar dpkg-query
con grep
.
dpkg-query -Wf '${db:Status-Abbrev} ${Package}\n' | grep ^r
Esto buscará paquetes que estén en elremotoestado, pero no purgado.
dpkg-query -Wf '${db:Status-Abbrev} ${Package}\n' | grep ^i[^i]
Esto buscará paquetes que estén marcados para serinstalado, pero no están completamente instalados. Si no desea incluir paquetes pendientes de activadores, puede utilizarlos ^i[ncHUF]
en su lugar.
Para obtener solo la segunda columna de salida (el nombre del paquete), puede usar sed
:
dpkg-query -Wf '${db:Status-Abbrev} ${Package}\n' | sed -n 's/^r.R\?\s*//p'
para encontrar paquetes eliminados, y
dpkg-query -Wf '${db:Status-Abbrev} ${Package}\n' | sed -n 's/^i[^i]R\?\s*//p'
para encontrar paquetes que se instalarán pero que no se instalarán por completo.
Para ampliar un poco esto, los paquetes de Debian tienen dos partes en su 'estado':
Elaccióndestinado a ser realizado en un paquete. Esto puede ser parainstalarun paquete, aeliminarun paquete, asostenerun paquete, o apurgaun paquete.
Elestado del paquete, que describe el estado real del paquete en su sistema.
La invocación anterior dpkg-query
enumera la acción y el estado de un paquete, un carácter cada uno, antes del nombre del paquete al principio de cada línea.
Para encontrar paquetes que se eliminan pero no se eliminan, simplemente buscamos paquetes con la acción 'eliminar': grep ^r
. Para encontrar paquetes que están instalados, o que se pretende instalar, pero que aún no están configurados, buscamos paquetes cuyosacciónesinstalar, pero cuyo estatus es diferente alinstalado: grep ^i[^i]
.
Respuesta2
Eliminado pero no purgado es ~c
( ?config-files
).
Instalado pero no configurado no es rastreado por apt, solo por dpkg. Un paquete tiene dos estados: real y deseado. Apt sólo se preocupa por el estado deseado. El estado deseado de un paquete que está instalado pero no configurado es instalado.
VerLa respuesta de Dylan Fresepara las consultas de dpkg.