2

SBCLのパッケージ管理ツールとしてquicklispを使用しています。

ただし、現在のユーザーのHOMEディレクトリに。でパッケージをインストールするのはあまり便利ではない場合がありますql:quickload。(たとえば、(ql:quickload "xmls")xmlのインストールに使用する場合、他のユーザーはそれを使用できません。)

さらに悪いことに、私はlispコードをスクリプトとして実行したいと思います。したがって、quicklispによってインストールされたパッケージを使用する場合、次のように、そのパッケージの絶対パスを不快に追加する必要があります。

#!/usr/bin/sbcl --script
(require 'xmls "..../quicklisp/dists/quicklisp/software/xmls-1.4/xmls")

を使用すると、オプション(require 'xmls)を使用するとそのパッケージが見つからないため、コンパイラは機能しません--script

誰かが問題を解決して、同時に(絶対パスを追加する必要がない)--script使用できるようにする方法を知っていますか?require

4

2 に答える 2

4

この問題の良い解決策がわかりません。私が使用する解決策は、Common Lisp でスクリプトを書かないことです。私は通常、CL セッションからインタラクティブに使用するアプリケーションを作成します。コマンドラインから何かを実行したい場合は、buildappql:write-asdf-manifest-fileを使用し、buildappに渡すファイルを作成するために使用します--manifest-file

より良い解決策があればいいのにと思うこともありますが、おそらく誰か(私ではないことを願っています)による作業が必要になるでしょう。

于 2012-05-10T19:20:26.197 に答える
0

こうするだけでsudo sbcl、この方法で PC のすべてのユーザーにインストールされます。問題ありません。これは自宅の PC であり、危険はありません。

私が考えることができる1つのことは、qlが物をインストールするディレクトリを、 $HOME/packages -> .../quicklisp/software などのように、アクセスしやすいものにシンボリックリンクすることでしょうか?

于 2012-05-10T21:55:33.410 に答える