Descargar un paquete completo o un árbol de bibliotecas

9

A veces quiero llamar unload-featurepara descargar una biblioteca ... y una biblioteca depende de ella ... y otra biblioteca depende de esa biblioteca ...

¿Cómo puedo descargar una biblioteca y todas las bibliotecas que dependen de ella, sin tener que recorrer el árbol de dependencias manualmente?

Un caso de uso común es descargar todas las bibliotecas de un paquete (por ejemplo, al actualizar o desinstalar), por lo que si hay una manera de hacerlo, sería lo suficientemente bueno.

Gilles 'SO- deja de ser malvado'
fuente

Respuestas:

2

No hay una forma integrada de hacer esto: consulte Descarga en el manual de Elisp.

unload-featuretoma un forceargumento que permite la descarga forzada Pincluso si otros paquetes dependen de P; ¿Es eso suficiente para tus necesidades?

Si no, puede intentar crear una versión recursiva de unload-featurecontener:

(let* ((file (feature-file feature))
       (dependents (delete file (copy-sequence (file-dependents file))))) 
  (when dependents
    (mapc #'unload-feature-recursive (mapcan #'file-provides dependents))))
Tianxiang Xiong
fuente
Gracias, arreglé el error en la pregunta. Escribir una versión recursiva de unload-featureera el punto de la pregunta.
Gilles 'SO- deja de ser malvado'