Next: ASDFがシステムを見つけられるように設定する(古いスタイル), Previous: ASDFを設定する, Up: ASDFを設定する [Contents][Index]
システムをコンパイル、ロードするためには、システム定義の書かれた.asdファイルをASDFが見つけられるように設定しなければなりません。これには簡単なものから複雑なものまで、多数のやり方があります:
のことです。これらの場所にソフトウェアをインストールするなら特に追加設定は必要ないので、4 次のセクションに進んでかまいません。(→ システムをロードする)
source-registry
機能を使って、ASDFがシステムを探すパスを設定するのがもっともよい方法です。この機能は1つの章を充てて(ASDFがシステムを探す場所を設定する)網羅的に解説しますので、ここでは簡単な使い方を説明するにとどめます。
まず初めに~/.config/common-lisp/source-registry.conf.d/ディレクトリ
5
を作り、このディレクトリに拡張子が.conf
6
のファイルを作ります。例えば50-luser-lisp.confという名前のファイルを作ったとしましょう。このファイルに
(:tree "/home/luser/lisp/")
という記述を加えると、ASDFは/home/luser/lisp/以下のディレクトリを再帰的にスキャンして、すべての.asdファイルを見つけるようになります。
これで完了です。/home/luser/lisp/はソースコードをインストールしたい場所に自由に置き換えてください。ASDF 3.1.2以降で~/common-lisp/を使う限り、このような設定は必要ありませんが、それ以前のASDF 3を使っている場合、最近のASDFを~/common-lisp/asdf/に置いた上で、ブートストラップのために.confファイルに(:tree (:home "common-lisp/"))
を加える、というようなテクニックが必要かもしれません、
別のやり方として、1つのディレクトリに.asdファイルへのリンクを集める方式もあります。この方式は上記の再帰的なスキャンに比べると速いですが、管理は大変になります。リンクを集めるディレクトリを/home/luser/.asd-link-farm/としましょう。この場合は、ソースレジストリディレクトリに例えば42-asd-link-farm.confファイルを作り、(:directory "/home/luser/.asd-link-farm/")
という行を加えれば有効になります。
ASDFは初めてシステムを探すときに自動的に.confファイルを読み込みますが、必要であれば、
(asdf:clear-source-registry)
でソースレジストリの設定をリセットすることができます。(→ ソースレジストリのAPI)
asdf:*central-registry*
を使って設定されていました。詳細については次のセクション(ASDFがシステムを見つけられるように設定する(古いスタイル))を参照してください。これについて知る必要がなければ、飛ばしてASDFがオブジェクトファイルを保持する場所を設定するに進みましょう。
なお、あなたのOSディストリビューションやシステム管理者が、既にシステム全体のライブラリ管理を設定しているというケースもあることに注意してください。
~/common-lisp/がデフォルトのパスに含まれるのはASDF 3.1.2以降です。それ以前のASDFを使っている場合は、後述のように、このパスを使うことを明示的に設定する必要があるかもしれません。
[訳注] また、Windowsの場合、後者は%LOCALAPPDATA%/common-lisp/source/または%APPDATA%/Local/common-lisp/source/に相当することが多いでしょう。詳細についてはASDFがシステムを探す場所を設定するを参照するべきですが、特に必要でなければ~/common-lisp/を使うことを推奨します。
Windowsの場合、ASDF 3.1.5以降では、%LOCALAPPDATA%以下にconfig/common-lisp/source-registry.conf.d/ディレクトリを作りましょう。%LOCALAPPDATA%は通常なら~/AppData/Local/を指していますが、実際の値はCMD.EXE
上でecho %LOCALAPPDATA%
を実行することで確かめることができます。
拡張子が.confでないファイルは無視されるので、これを利用して特定の設定ファイルを無効にすることができます。例えば、エディタのバックアップなどのファイルは同じディレクトリにあっても読み込まれないでしょう。
また、ASDFは.で始まるファイル名も無視します。
慣習では、これらの設定ファイル名は2つの数字から始まります。こうすることで設定ディレクトリ内の.confファイルの並びが決まり、設定が読み込まれる順番をコントロールすることができます。