2012-06-29 16 views
8

Quiero agregar un proyecto local a los proyectos conocidos por asdf, pero debido al hecho de que asdf fue instalado y configurado por quicklisp y el *central-registry* apunta a "# P/inicio/usuario/quicklisp/quicklisp/", que contiene archivos .lisp. No sé cómo hacerlo ya que el manual explica que un enlace simbólico en el directorio lo haría, pero no quiero perder el tiempo dentro de quicklisp. (¡Sin embargo, funciona como una revisión!)Cómo agregar un proyecto local a asdf configurado por quicklisp

Por lo tanto: ¿Cómo agregar un proyecto local a asdf (NO QUICKLISP) que fue instalado y configurado por quicklisp?

Respuesta

13

Si utiliza Quicklisp puede usar el directorio dedicado ~/quicklisp/local-projects/ que se escanea antes que los demás directorios . Para usarlo, simplemente ponga su proyecto o un enlace simbólico.

(quickproject:make-project "~/quicklisp/local-projects/my-new-website/" 
    :depends-on '(restas parenscrit cl-who)) 

(quickproject:make-project "~/src/lisp/my-cool-gui/" 
    :depends-on '(qt)) 

$ ln -s ~/src/lisp/my-cool-gui ~/quicklisp/local-projects/my-cool-gui 

Sin embargo, si realmente desea configurar ASDF no como se explica en el documentation.

Por ejemplo, usted puede poner esto:

(:directory "~/src/lisp/my-project-XYZ/") 

en su ~/.config/common-lisp/source-registry.conf.d/my-asdf.conf a añadir un directorio o

(:tree "~/src/lisp/") 

si desea que todos los subdirectorios que deben analizarse.

5

Como asdf:*central-registry* no es solo una ruta, es una lista de nombres de ruta. Simplemente puede hacer: (push "/path-to-your-project/" asdf:*central-registry*). Si usa SBCL, puede agregar esta línea a ~/.sbclrc.

+5

En el manual ASDF se describe * central-registry * como obsoleto: "Este estilo antiguo para configurar ASDF no se recomienda para usuarios nuevos, pero es compatible para usuarios antiguos" – postfuturist

3

El manual ASDF tiene en Section 3:

Desde ASDF 2, la forma preferida para configurar donde ASDF encuentra sus sistemas es el dispositivo de origen-registro, se describe completamente en su propia capítulo de este manual. Ver Controlling where ASDF searches for systems.

artículo 7 en Controlling where ASDF searches for systems es

El registro de origen se configura a partir de /etc/common-lisp/source-registry.conf.d/ directorio de configuración del sistema si existe.

Esta ubicación está disponible en Debian y es lo que uso. De forma predeterminada, Debian coloca las fuentes de las bibliotecas de CL descargadas en /usr/share/common-lisp/source. Sin embargo, no sé (aunque he intentado averiguarlo) cómo se da a conocer esta ubicación a ASDF. Por lo tanto, puede agregar archivos con nombres de rutas a esta ubicación, para que ASDF conozca esas rutas. He añadido un archivo, /etc/common-lisp/source-registry.conf.d/04-local.conf, que contiene

(: #p árbol "/ usr/local/share/common-lisp/fuente /")

y ahora puedo poner las fuentes de bibliotecas descargado localmente CL en /usr/local/share/common-lisp/source/ y serán visibles para ASDL. La sintaxis :tree se describe en Configuring ASDF to find your systems.

asdf: * central-registry * ahora está depreciado. Ver Subsection 3.2: Configuring ASDF to find your systems — old style.

Cuestiones relacionadas