¿Cómo puedes eliminar completamente un paquete?

188

Estoy tratando de hacer una instalación limpia del octave3.2paquete.

Para hacer esto, lo eliminé, luego intenté reinstalarlo.

Cuando reinstalé, ocurrió un error. Podría ser un error en el paquete, pero quiero asegurarme de que tengo todo eliminado para poder hacer una instalación limpia.

¿Es suficiente hacer esto?

sudo apt-get --purge remove octave3.2
usuario1012451
fuente
¿Podría uno reinstalar el paquete y prestar atención a la lista de dependencias O paquete?
user309924
Recomendado para visitar esto
Pandya

Respuestas:

186

Esta es una respuesta muy general a la pregunta sobre los efectos de la purga de paquetes. Para obtener consejos específicos para su situación, tendrá que editar su pregunta para incluir información adicional, en particular, el texto completo y exacto del mensaje de error que está recibiendo.

La eliminación de paquetes con o los eliminará y todos sus archivos de configuración global (es decir, en todo el sistema). Esto suele ser lo que las personas quieren decir cuando hablan de eliminar completamente un paquete.sudo apt purge ...sudo apt --purge remove ...

Pero eso no significa que su sistema sea el mismo que era antes de instalar el paquete. En particular:

  • Esto no elimina los paquetes que se instalaron como dependencias, cuando instaló el paquete que ahora está eliminando. Suponiendo que esos paquetes no son dependencias de otros paquetes, y que no los ha marcado como instalados manualmente, puede eliminar las dependencias con sudo apt autoremoveo (si también desea eliminar sus archivos de configuración de todo el sistema) sudo apt --purge autoremove.

  • Esto no elimina los archivos de configuración que no son de todo el sistema. Específicamente, no elimina la configuración específica del usuario:

    • No elimina los archivos y directorios de configuración ubicados en los directorios principales de los usuarios (o en el .configsubdirectorio de sus directorios principales), creados por el software que proporciona el paquete.

      • Si estos archivos / carpetas no están almacenados .config, generalmente comienzan con un archivo .. De cualquier manera, puede verlos con lsel indicador -ao -A, y puede verlos en Nautilus y en la mayoría de los navegadores / administradores de archivos presionando Ctrl+ Ho yendo a Ver > Mostrar archivos ocultos .
    • No revierte los cambios realizados en los archivos de configuración específicos del usuario existentes.

    • No elimina nueva gconfo dconfllaves, o anular gconfo dconfcambios de configuración.

  • El uso purgeo --purge removeen lugar de removeno revertir los cambios en los archivos de configuración de todo el sistema existentes proporcionados por otros paquetes o creados manualmente por el usuario. Sin embargo, a veces estos cambios se deshacen al desinstalar el paquete (ya sea que sea o no purgeun remove).

Eliah Kagan
fuente
61

Usa el comando:

sudo apt-get purge --auto-remove packagename

Purgará los paquetes necesarios junto con las dependencias que están instaladas con esos paquetes. La --auto-removeopción funciona de forma similar a sudo apt-get autoremove.

pl_rock
fuente
1
esto resolvió mi problema, especialmente con certbot
T.Todua
7

Primero verifica el nombre del paquete que desea eliminar:

dpkg --list

Luego retire el paquete dado

sudo apt-get remove package_name

Purgue cualquier código relacionado

sudo apt-get purge package_name

Entonces Autoremove

sudo apt-get autoremove

Finalmente, realice una limpieza para verificar que todo se haya eliminado correctamente

sudo apt-get clean

Le gustaría comprobar en la lista de paquetes si el que desea eliminar ya no figura, pero es opcional.

Que tengas un buen día,

usuario2777677
fuente
4

Es mejor realizar un seguimiento de los paquetes de dependencia adicionales instalados mientras instala uno.

The following extra packages will be installed: 
    libgssglue1 libnfsidmap2 libtirpc1 nfs-common rpcbind

Si solo elimina el paquete original, el paquete de dependencia puede permanecer.

Por lo tanto, debe eliminar manualmente cada uno utilizando

apt-get purge package_name
Harikrishnan
fuente
1
¿Cómo puedo obtener una lista de estos paquetes si mi consola no se desplaza lo suficiente?
Luke Taylor
@LukeTaylor apt-get install package_name > output Luego, less output para ver toda la salida con desplazamiento.
Harikrishnan
2

En lugar de eliminar manualmente los paquetes dependientes instalados automáticamente, use lo siguiente en su lugar:

 zanfilip @ zanfilip-VPCEB3L0E: ~ / jp / eclipse $ sudo apt-get --purge autoremove
    Leyendo listas de paquetes ... Hecho
    Construyendo árbol de dependencia       
    Leyendo información del estado ... Hecho
    Los siguientes paquetes serán eliminados
      libupstart1 * linux-headers-3.16.0-30 * linux-headers-3.16.0-30-generic *
      linux-image-3.16.0-30-generic * linux-image-extra-3.16.0-30-generic *
    0 para actualizar, 0 para instalar nuevamente, 5 para eliminar y 23 para no actualizar.
    Después de esta operación, se liberarán 279 MB de espacio en disco.
    ¿Quieres continuar? [S / n]

zanfilip
fuente
2

Si desea eliminar algunos paquetes específicos, puede usar estos comandos:

dpkg --get-selections | grep PACKAGE_NAME | awk '{ print $1}'| xargs apt-get -y --purge autoremove

no olvide el modificador "-y" porque de lo contrario apt-get seguiría preguntando acerca de la eliminación de los paquetes individuales y no eliminará nada.

Kerem Ersoy
fuente
2
Esto podría ser útil pero también podría ser destructivo: ¡podría coincidir fácilmente con un paquete que realmente no desea eliminar y eliminar su configuración sin confirmación! Afortunadamente ya nombres de los paquetes no contienen un espacio, podemos darle la vuelta y dejar caer el -y: apt-get --purge autoremove $(dpkg --get-selections | grep PACKAGE_NAME | awk '{ print $1}'). Eso sería algo más seguro.
joeytwiddle
Puede ser más seguro ejecutar el comando como: dpkg --get-selections | grep PACKAGE_NAME | awk '{print $ 1}' Primero y luego ejecutarlo con xargs es una mejor práctica para que el usuario vea lo que se eliminaría como resultado del comando.
Kerem Ersoy
0

Otra opción que tienes es usar el debfosterpaquete. Esto buscará y sugerirá interactivamente paquetes para eliminar (y purgar) junto con paquetes dependientes.

sudo apt install debfoster
sudo debfoster
# and optionally remove debfoster too
sudo purge debfoster
MacroMan
fuente