私はSBCLのパッケージ管理ツールとしてquicklispを使用しています。QuickLispでSBCLのシステムディレクトリにインストールパッケージを使用するには?
しかし、現在のユーザーのホームディレクトリにパッケージをインストールすることは、ql:quickload
であまり便利ではないことがあります。たとえば、xmlsのインストールに(ql:quickload "xmls")
を使用すると、他のユーザーは使用できません。
さらに悪いことに、スクリプトとしてlispコードを実行したいと思います。私ならば、それはそのパッケージを見つけることができないので、私は(require 'xmls)
を使用する場合、コンパイラは動作しません
#!/usr/bin/sbcl --script
(require 'xmls "..../quicklisp/dists/quicklisp/software/xmls-1.4/xmls")
:私はquicklispによってインストールされたパッケージを使用するときに、私のような、不快にそのパッケージの絶対パスを追加する必要があります--script
オプションを使用してください。
は、誰もが、私は同時に--script
とrequire
(絶対パスを追加する必要はありません)を使用することができるように問題を解決する方法を知っている?
私は 'save-lisp-and-die'を見ることをお勧めします。スクリプティングに必要なすべてのパッケージで新しいコアを構築し、sbclを起動するときにそのコアを使用するだけです。コアの中にすでにロードされているトップb/cの所要量は必要ありません。私はこれをコメントとして書いていますが、タイトルの質問には本当に答えません。しかし、それは私がlispスクリプトを書くときに使った別のアプローチです。ああ、試してみて!/ usr/bin/env sbcl --script;それはもう少し移植性があります –