Next: シェル向けの設定の構文(ソースレジストリ), Previous: ソースレジストリを設定するDSL, Up: ASDFがシステムを探す場所を設定する [Contents][Index]
設定ディレクトリ内の.confファイルのDSLは、ソースレジストリを設定するDSLと少し異なります。まず、ディレクティブを(:source-registry ...)
で囲む必要はありません。また、継承ディレクティブ:inherit-configuration
、:ignore-inherited-configuration
は使えず、ディレクティブのリストの末尾に暗黙に:inherit-configuration
が加わります。これらに反した設定ファイルを読み込むと、ASDFはuiop:invalid-configuration
エラーを通知するでしょう。なお、ディレクトリ中の設定ファイルは、そのネームストリングに従ってstring<
の順で読み込まれ、ディレクティブもこの順番で結合されます。
Common Lispソフトウェアのディストリビューションは、自身の設定ファイル(例えば10-foo.conf)を設置する際、すべてのユーザーに対する設定は/etc/common-lisp/source-registry.conf.d/10-foo.confを、ユーザー単位の設定は~/.config/common-lisp/source-registry.conf.d/10-foo.confを使うことができます。そうすれば、インストールされるソフトウェアの設定情報を、容易かつモジュール化された形で登録できるでしょう。例えばDebianのパッケージや、将来のバージョンのclbuild
がそうなることでしょう。37
設定ディレクトリ内の設定ファイル名は、上で挙げたように2つの数字から始めるのが慣習です。こうすることで、設定が読み込まれる順番を決めることができます。また、ファイル形式は.confでなければなりません。この仕様のメリットは、単に実装が簡単であるだけでなく、設定ファイルを無効にするにはただファイル形式を変えればよい、という点にもあります。
設定ファイル内で別の設定ディレクトリをインクルードしたい場合は、ディレクトリのパス名か文字列を:include
ディレクティブに指定してください:
(:include "/foo/bar/")
例として、前のセクションの~/.config/common-lisp/source-registry.confと同じ設定を、設定ディレクトリで行ってみましょう。ファイル~/.config/common-lisp/source-registry.conf.d/33-home-fare-cl.confを次の内容で作ります38:
(:tree "/home/fare/cl/")
• :here ディレクティブ |