Limpieza del software MacPorts: / opt / local / var / macports / software

7

El directorio de MacPorts /opt/local/var/macports/software está realmente lleno de "cosas":

¿Se pueden eliminar todos los archivos .tbz2 ?

Me estoy quedando sin espacio en el SSD.

    
pregunta Robottinosino 15.09.2012 - 15:30

3 respuestas

7

Sí, todos los archivos de esa carpeta ubicados en ${prefix}/var/macports/software/ se pueden eliminar. Esos son los paquetes de instalación para los programas que instaló usando MacPorts. MacPorts volverá a descargarlos según sea necesario cuando se ejecute la instalación o, presumiblemente, el comando de actualización también para un programa determinado, etc.

La descripción del propósito del directorio ... se indica en Guía de MacPorts en Archivos binarios .

  

3.4.1. Archivos Binarios

     

Los archivos binarios solo se pueden usar en un sistema de destino que ejecute MacPorts. Los archivos binarios permiten a las utilidades de MacPorts comenzar la instalación después de la fase de destrucción e instalar y activar un puerto en el sistema de destino. Los archivos binarios se crean cada vez que se instala un puerto y también se pueden descargar desde un servidor.

     

...

     

Los archivos binarios se colocan en $ {prefix} / var / macports / software /. El tipo de archivo de almacenamiento se establece en el archivo macports.conf. El formato predeterminado es .tbz2; otras opciones son: tar, tbz, tbz2, tgz, tlz, txz, xar, zip, cpgz, cpio.

    
respondido por el MrDaniel 15.09.2012 - 16:20
0

Antes de eliminar los archivos manualmente en el directorio "software", sugeriría ejecutar el comando sudo port uninstall inactive . El comando eliminará todos los archivos inactivos del "software". Si elimina los archivos manualmente del "software" después de eso, eliminará los archivos activos. No estoy seguro de que haya mucho daño en hacer eso, pero tampoco estoy seguro de que sea inofensivo.

El comando de "instalación" de MacPorts pasa por varias fases , las dos últimas son la fase de "instalación" y la fase de "activación":

  

instalar : archiva los archivos destruidos de un puerto en ${prefix}/var/macports/software . […]

     

activar : extraiga los archivos del puerto desde el archivo en ${prefix}/var/macports/software a sus ubicaciones finales instaladas, generalmente dentro de ${prefix} .

El directorio de "software" puede contener archivos que no están activos, en particular versiones anteriores de los puertos que ha actualizado, porque el comando "actualizar" no elimina las versiones antiguas de forma predeterminada :

  

upgrade no desinstala la versión anterior de un puerto. En su lugar, lo desactiva [...] Esto le permite volver a la versión anterior en caso de que haya un problema con la versión actualizada. [...] Si no desea mantener las versiones anteriores durante la actualización, puede pasar -u al actualizar: [...] Sin embargo, recomendamos mantener las versiones anteriores durante un tiempo y ejecutar sudo port uninstall inactive una vez en una mientras.

Las preguntas frecuentes de MacPorts solo sugieren el uso del comando "desinstalar" para deshacerse de los archivos no deseados en "software":

  

¿Para qué sirven las carpetas en ${prefix}/var/macports/ y por qué ocupan tanto espacio?
  […]
  software: contiene los archivos comprimidos del software instalado. Si se activa un puerto, sus archivos se extraen a las carpetas ${prefix} de los archivos comprimidos aquí. port uninstall <port> <version>+<variant> lo eliminaría de aquí, pero este puerto ya no se puede usar.

No parece haber un cambio para el comando "desinstalar" para desinstalar un archivo de "software" sin desactivarlo también primero si es el archivo activo. Entonces, asumo que no es una buena idea eliminar manualmente los archivos activos del "software".

    
respondido por el Rinzwind 05.03.2016 - 14:40
0

Como dijo Rinzwind, puedes desinstalar (es decir, eliminar) cualquier versión inactiva de los puertos dejados por las actualizaciones:

port uninstall inactive

Si instala un puerto, todas sus dependencias están instaladas. Si desinstala un puerto, sus dependencias no se desinstalarán. Puede desinstalarlos usando la utilidad cutleaves:

port install port_cutleaves
port_cutleaves

Esto solo elimina una capa de dependencias obsoletas a la vez; para eliminarlos todos, uso un pipy hacky:

while ! yes u | port_cutleaves -b | grep 'There are no new leaves to process.'; do : ; done

Puede eliminar todos los archivos relacionados con la compilación (archivos de trabajo, archivos de distribución, archivos temporales y registros) para los puertos desinstalados:

port clean --all uninstalled

Para eliminar solo los archivos de trabajo de los puertos instalados:

port clean installed

La limpieza parece tocar todos los puertos del árbol. No sé qué está pasando allí.

    
respondido por el Tom Anderson 03.01.2017 - 01:41

Lea otras preguntas en las etiquetas