¿Es seguro eliminar manualmente el contenido / var / cache / apt?

21

En un sistema embebido con un espacio en disco muy limitado, tengo la carpeta /var/cache/aptllena con unos 700 MB srcpkgcache.bin.*y un par de *.binarchivos grandes .

Actuar sudo apt-get cleanno hizo una diferencia visible.

¿Es seguro eliminar manualmente estos *.bin*archivos?

ysap
fuente
66
A partir de Ubuntu 14.04, es perfectamente seguro eliminar los *.binarchivos en dicha carpeta, suponiendo que actualmente no se esté ejecutando ningún proceso relacionado con apt. El siguiente apt-get updateregenerará los *.binarchivos. Esta pregunta definitivamente no se trata de los archivos /var/cache/apt/archives, sino de los archivos /var/cache/apt/*.bin. Gran diferencia. El primero se puede limpiar emitiendo apt-get clean, el último debe eliminarse manualmente. Claramente, aquellos que votaron para cerrar la pregunta no la han leído correctamente. Lamentablemente, no puedo votar para reabrir después de otorgar algunos de mis representantes en recompensas.
0xC0000022L
3
Esto no es un duplicado. La respuesta vinculada es sobre el subdirectorio archivesdentro /var/cache/apt/, este es sobre los *.bin*archivos.
Olaf Dietsche
1
Posible duplicado de Eliminar archivos de / var / cache / apt (NO archivos)
Eliah Kagan

Respuestas:

11

Realmente no. Esos archivos ayudan a su sistema a determinar qué está disponible y qué no. Vaciar ese directorio dará como resultado un sistema apt-get roto. Aquí hay un par de consejos.

Primero, limpieza automática

Agrega un

DPkg::Post-Invoke { "apt-get clean"; };

hasta el final de /etc/apt/apt.conf. Hará que los procesos apt y dpkg tarden más, pero lo hará para que su directorio de caché esté siempre limpio.

A continuación, eliminar archivos

Comience eliminando y deshabilitando todos los archivos fuente (que no está usando). En un sistema integrado, es probable que no los necesite. Luego, elimine todos los archivos que no están en uso. Puede ejecutar apt-cache policypara averiguar de qué repositorio proviene un paquete si no está seguro.

Más eliminación de archivos

Algunos PPA son horribles por tener una gran cantidad de paquetes en ellos cuando solo necesita 1 o 2. Intente deshabilitar esos PPA e instalar los archivos deb manualmente. Ahorra espacio en esos casos, pero pierde la actualización automática. Tenga en cuenta que dpkg manejará las dependencias, por lo que aún puede instalar thing-with-tons-of-deps.deb y luego ejecutar apt-get -f installpara buscar las dependencias.

Respuesta totalmente extrema 1

Debido a que estamos hablando de un sistema integrado, el 90% de los repositorios principales no te harán ningún bien. Para manejar esto, puede ejecutar su propio servidor apt-get repo. Vea este enlace . No es fácil, y es un PIA para una sola máquina. Pero si tiene varias de estas máquinas, vale la pena. (Su servidor de repositorios apto puede alojar solo un subconjunto de paquetes que realmente utiliza. No necesita duplicar todo)

Respuesta Totalmente Extrema 2

Si el espacio es realmente un problema tan grande, puede deshabilitar apt todo junto y volver a la instalación manual a través de dpkg. He tenido que hacer esto en varios sistemas integrados. Funciona, pero es una pesadilla administrativa.

coteyr
fuente
Esta es una gran respuesta (especialmente las totalmente extremas) pero /etc/apt/apt.conf ya no existe en Ubuntu 14.04. ¿Cuál es la mejor práctica actual?
zachaysan
1
JUst haga el archivo si no existe. Todavía se leerá.
coteyr
55
Por favor, ¿por qué escribes que no es seguro eliminar los *.binarchivos? Cualquier ejecución de apt-get updateregenerará esos archivos desde cero (probado). Por ejemplo, mi caso de uso es que quiero crear plantillas de contenedor LXC y quiero eliminar el archivo tanto como sea posible. No veo ninguna razón para que sea inseguro. Y su respuesta no indica una razón, solo indica que no es segura. Probado que es perfectamente seguro en Ubuntu 14.04.
0xC0000022L
1
Estás diciendo que incluir apt-cache cleanuna llamada dpkg dará como resultado un caché más limpio, pero el usuario dice apt-cache cleanque no limpió nada para ellos. Además, su respuesta es totalmente incorrecta porque dpkg no usa /var/cache/apt/*contenido para informarse sobre la estadística del paquete.
Anwar
1
La página de manual de apt-get describe claramente la función de cleancomo * clean borra el repositorio local de los archivos de paquetes recuperados. Elimina todo menos el archivo de bloqueo de / var / cache / apt / archives / y /var/cache/apt/archives/partial/.* Si es peligroso, no habría tal función para limpiar.
Anwar
3

Por supuesto, puede eliminar pkgcache.biny srcpkgcache.binno pasa nada. Solo corre apt-get updatepara recrearlos.

Tomás M
fuente
... y esto es cierto independientemente de la eliminación de los .debarchivos?
einpoklum - reinstalar a Mónica el
1

Mantenga el pkgcache.biny srcpkgcache.bin, puede eliminar con seguridad los otros. ¡No toques los directorios!

Frantique
fuente
Vale gracias. Moví temporalmente los *bin.*archivos a una carpeta de respaldo. Sin embargo, ¿por qué apt-get gestiona el caché dentro del caché? Un directorio de caché debe ser un almacenamiento temporal por naturaleza.
ysap
Este problema ya se ha informado de errores. :) Ver aquí
Frantique
Por supuesto, puede eliminar pkgcache.bin y srcpkgcache.bin, no pasa nada. apt-get update los recrea.
Tomas M
0

Por supuesto, puede crear un NFS-share (sistema de archivos de red) para esto. Deje estos archivos en un servidor y monte el recurso compartido solo cuando desee actualizar / instalar paquetes. En entornos integrados, la instalación generalmente será relativamente estática de todos modos.

sshfs es otra buena opción, es mucho más fácil de configurar (básicamente solo requiere SSH, que es estándar), pero tiene más sobrecarga (más lenta).

jippie
fuente
Esto debería funcionar técnicamente, excepto que no tienes control total de cuándo se ejecuta apt. Si usa algo como esto, debe asegurarse de deshabilitar las tareas "automatizadas" como trabajos cron que ejecutan apt-get update.
coteyr