9

asdfによって既知のプロジェクトにローカルプロジェクトを追加したいのですが、asdfがquicklispによってインストールおよび構成され、*central-registry*.lispファイルを含む「#P / home / user / quicklisp /quicklisp/」を指しているためです。 。ディレクトリへのシンボリックリンクがそれを行うとマニュアルが説明しているので、私はそれを行う方法がわかりませんが、quicklispの内部をいじりたくありません。(ただし、修正プログラムとしては機能します!)

したがって:quicklispによってインストールおよび構成されたasdf(QUICKLISPではない)にローカルプロジェクトを追加するにはどうすればよいですか?

4

4 に答える 4

15

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/")

すべてのサブディレクトリをスキャンする場合。

于 2012-06-29T16:31:49.977 に答える
6

1つのパスだけでなく、asdf:*central-registry*パス名のリストです。あなたは簡単に行うことができます: (push "/path-to-your-project/" asdf:*central-registry*)。SBCLを使用する場合は、この行を〜/.sbclrcに追加できます。

于 2012-06-29T13:27:33.140 に答える
3

ASDFマニュアルのセクション3には次のようなものがあります。

ASDF 2以降、ASDFがシステムを検出する場所を構成するための推奨される方法は、このマニュアルの独自の章で詳しく説明されているソースレジストリ機能です。ASDFがシステムを検索する場所の制御を参照してください。

ASDFがシステムを検索する場所の制御の項目7 は

ソースレジストリは、システム構成ディレクトリ/etc/common-lisp/source-registry.conf.d/(存在する場合)から構成されます。

この場所はDebianで利用可能であり、私が使用している場所です。デフォルトでは、DebianはダウンロードされたCLライブラリのソースをに置きます/usr/share/common-lisp/source。ただし、この場所がASDFにどのように通知されるかはわかりません(調べようとしましたが)。したがって、パス名を含むファイルをこの場所に追加して、それらのパス名をASDFに認識させることができます。/etc/common-lisp/source-registry.conf.d/04-local.confを含むファイルを追加しました

(:tree #p "/ usr / local / share / common-lisp / source /")

これで、ローカルにダウンロードしたCLライブラリのソースを入れる/usr/local/share/common-lisp/source/ことができ、ASDLに表示されます。:tree構文は 、システムを検索するためのASDFの構成で説明されています。

asdf:*center-registry*は現在減価償却されています。サブセクション3.2:システムを検索するためのASDFの構成—古いスタイルを参照してください。

于 2012-06-30T17:57:33.840 に答える
3

置く

(push "~/your/local/lisp/projects/folder/" ql:*local-project-directories*)

で、.sbclrcシンボリックリンクやフォルダの移動なしでプロジェクトをクイックロードできます。

asdfについて質問されたのは知っていますが、実際にquicklispを使用している場合は、asdfをいじりたくないと思います。

于 2019-08-29T08:32:18.327 に答える