Как Добавить локальный проект в asdf, настроенный quicklisp

Я хочу добавить локальный проект к известным проектам asdf, но из - за того, что asdf был установлен и настроен quicklisp и *central-registry* указывает на "#P/home/user/quicklisp/quicklisp/", который содержит .Лисп файлы. Я не знаю, как это сделать как руководство объясняет, что символическая ссылка в каталог сделает это, но я не хочу возиться внутри quicklisp. (Он работает как исправление, хотя!)

поэтому: как Добавить локальный проект asdf (не QUICKLISP), который был установлен и настроен quicklisp?

3 ответов


если вы используете Quicklisp, вы можете использовать выделенный каталог ~/quicklisp/local-projects/, который сканируется перед другим справочники. Чтобы использовать его, просто поместите свой проект или символическую ссылку.

(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  

однако, если вы действительно хотите настроить ASDF сделайте как объяснено в документация .

например, вы можете поставить этот:

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

в своем ~/.config/common-lisp/source-registry.conf.d/my-asdf.conf для добавьте каталог или

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

если вы хотите, чтобы все поддиректории будут отсканированный.


As asdf:*central-registry* Это не просто один путь, это список путей. Вы можете просто сделать: (push "/path-to-your-project/" asdf:*central-registry*). Если вы используете SBCL, вы можете добавить эту строку в ~/.sbclrc.


руководство ASDF имеет в 3:

начиная с ASDF 2, предпочтительный способ настроить, где ASDF находит ваш системы-это средство регистрации источников, полностью описанное в своем собственном глава этого руководства. См.управление, где ASDF ищет системы.

пункт 7 в управление, где ASDF ищет системы is

исходный реестр будет настроен из системы каталог конфигурации / etc/common-lisp / source-registry.conf.д/ если он существует.

это расположение доступно в Debian и является тем, что я использую. По умолчанию Debian помещает источники загруженных библиотек CL в /usr/share/common-lisp/source. Однако я не знаю (хотя и пытался выяснить), как это место стало известно ASDF. Таким образом, вы можете добавить файлы с именами путей к этому местоположению, чтобы сделать эти имена путей известными ASDF. Я добавил файл, /etc/common-lisp/source-registry.conf.d/04-local.conf С

(:дерево #p " / usr / local / share/common-lisp / source/")

и теперь я могу поместить источники локально загруженных библиотек CL в /usr/local/share/common-lisp/source/ и они будут видны ASDL. The :tree синтаксис описан в настройка ASDF для поиска ваших систем.

asdf:* central-registry * теперь амортизируется. См.подраздел 3.2: настройка ASDF для поиска ваших систем-old style.