Estoy tratando de encontrar una manera de obtener una lista de los paquetes que ya no están disponibles en los repositorios que he habilitado. Esta estación de trabajo ha pasado por varias versiones de Ubuntu y ha agregado y eliminado muchos repositorios de terceros. Me gustaría obtener una lista de software que tengo de estos repositorios eliminados, para poder limpiarlo o volver a agregar los repositorios apropiados.
package-management
Sean
fuente
fuente
apt-show-versions | grep "newer than version in archive"
Para obtener una lista de aplicaciones que no están en un repositorio registrado o PPA, haga lo siguiente:
Eso debería generar texto como este:
Para mí, esto funcionó y mostró tres aplicaciones que instalé usando paquetes DEB y no estaban disponibles en un Repo o PPA.
Sin embargo, recuerde que es imposible verificar todos los programas, solo los que pasaron
dpkg
. Por ejemplo, algunas aplicaciones se instalan simplemente extrayéndolas en las carpetas correctas, u otras usan un bin o script de instalación independiente. Entonces, la mejor manera es que usted mismo mantenga una lista de aplicaciones que instaló a través de cualquier método que no sea APT.fuente
dpkg
paquetes locales instalados. Una excepción Enumeraskype-bin
, mientrasapt-cache policy skype-bin
que muestra claramente el repositorio de socios canónicos. No estoy seguro de lo que está pasando. Problema multiarch? Todavía +1 paraapt-show-versions
!Si tiene aptitude instalado, use
o su forma corta
Aquí hay una muestra de salida
El primer carácter de cada línea indica el estado actual del paquete. Los estados más comunes son:
El segundo carácter indica la acción almacenada que se realizará en el paquete, si corresponde, de lo contrario se muestra un espacio en blanco. Las acciones más comunes son:
Si el tercer carácter es A, el paquete se instaló automáticamente.
Para obtener una lista completa de los posibles indicadores de estado y acción, consulte la sección Acceso a la información del paquete en la guía de referencia de aptitudes.
fuente
aptitude search ?obsolete
puede funcionar en bash, pero deberías usaraptitude search '?obsolete'
A partir de Ubuntu 19.10 también es posible ejecutar
para obtener la lista de paquetes obsoletos.
Para cualquier versión, puede usar el siguiente one-liner de Bash:
No es necesario instalar paquetes adicionales para esto, además, esto es relativamente rápido. Esto también encontrará paquetes parcialmente instalados (pero no encontrará aquellos que solo tienen archivos de configuración restantes; sin embargo, eso podría cambiarse fácilmente). Nota: esto no importa de qué arquitectura son los paquetes.
Si desea incluir paquetes que tengan instalada una versión diferente de la que está disponible en los repositorios, puede realizar una de las siguientes acciones:
Use apt moderno:
Otra opción es correr
y lea los nombres de los paquetes en la sección "Ya no se puede descargar:".
fuente
Más información para investigar.
... ubuntu-support-status y apt-mark pueden requerir instalación.
fuente
sudo
conapt-mark showmanual
.ubuntu-support-status
enumera la cantidad de paquetes obsoletos, pero no los nombres de los paquetes.ubuntu-support-status --help
Puede haber una forma más limpia, pero desde la parte superior de mi cabeza puedes hacer
Limpie las primeras líneas del
installed
archivo: tendrá encabezados.Bono si alguien puede arreglar mi resaltado de sintaxis ...
fuente
dpkg -l
para obtener una lista de paquetes instalados, debe limitar los resultados a líneas con 'i' en la segunda columna, ya que dpkg también enumerará los paquetes que no están instalados (quizás eliminados pero no purgados) . como ejemplo, alterar su primer comando paradpkg -l | grep '^.[^i]' | cut -f 3 -d ' '
que devuelva una lista de paquetes, que NO están instalados. (pero una vez fueron)apt-cache search someinstalledpackage
devolverá algo incluso si el paquete no está disponible en un repositorio, por lo que no creo que esto funcione en absoluto.dpkg -l | grep '^.[^i]' | cut -f 3 -d ' '
también imprime algunas líneas de encabezado.apt-cache search
para cada paquete por separado.Como se mencionó, apt-get search no es un buen método para verificar si un paquete aún está disponible. Adicional he agregado todo a una sola línea:
fuente
grep '^i'
man dpkg-query
para más información.apt-cache show
No es bueno para comprobar si el paquete está disponible. Si deshabilita el repositorio respectivo, y ningún otro repositorio habilitado lo tiene, aún muestra el paquete.