Quicklisp 常見問題 FAQ

作者:Lisp Taiwan Lisp Taiwan

如何提交一個項目給 Quicklisp?

  1. 項目必須可以透過 HTTP, CVS, git 等,公開的方式取用。
  2. Quicklisp GitHub Repository 提出申請,附上相關訊息(在哪找到此項目)

Quicklisp 與 ASDF 差在哪?

ASDF 用來編譯及加載項目與依賴關係。想想 make ,Quicklisp => Linux 包管理工具,想想 apt-get

可以用代理伺服器嗎?

可以。

在加載 quicklisp.lisp 之後,可以使用 :proxy 選項:

1
(quicklisp-quickstart:install :proxy "http://myproxy.site.com:8080/")

目前不支持 SSL 及 Proxy 驗證。

換個代理伺服器?

1
(setf (ql-config:config-value "proxy-url") "http://proxy.value.here")

這在不同的 Quicklisp 會話階段會保存下來。

Quciklisp 可不可以安裝在別的路徑?

可以。

在加載 quicklisp.lisp 之後,使用 :path 選項:

1
(quicklisp-quickstart:install :path ".quicklisp/")

你也可以在安裝 Quicklisp 之後,將 ~/quicklisp 目錄,改成別的名字來自訂路徑。

Emacs 使用 quicklisp-slime-helper 碰到錯誤?

錯誤內容:

Searching for program: no such file or directory, lisp

這表示你沒告訴 slime 你用的是哪個 Lisp 實現,如果你使用的是 SBCL,可以添加這一行到 .emacs 文件裡:

1
(setq inferior-lisp-program "/usr/local/bin/sbcl")

其它的 SLIME 設定請參考 SLIME 使用手冊

“Quicklisp 已經安裝”錯誤?

錯誤內容:

I got this error: Quicklisp has already been installed.

如果你在初次安裝後又加載 quicklisp.lisp 便會看到此錯誤。Quicklisp 安裝之後無需再加載 quicklisp.lisp 一次。要加載 Quciklisp 到你的 Lisp 環境,可以這麼做:

1
(load (merge-pathnames "quicklisp/setup.lisp" (user-homedir-pathname)))

啟動時加載 Quicklisp?

1
(ql:add-to-init-file)

要是想使用的項目,不在 Quicklisp 的項目列表裡怎麼辦?

參考 Quicklisp 項目列表

將該項目放至 ~/quicklisp/local-projects 目錄:

1
2
$ cd ~/quicklisp/local-projects/
$ git clone git://github.com/xach/format-time.git

現在這個項目便可用 (ql:quickload "format-time") 來加載了。

另一點要說明的是,可以透過 ASDF 的 source registry system 加載的系統文件,也可以用 (ql:quickload "system-name") 來加載。舉個例子,如果你有一個系統文件 my-awesome-project.asd ,放在 ~/projects/my-awesome-project/ ,則可以這麼做:

1
2
(push #p"~/projects/my-awesome-project/" asdf:*central-registry*)
(ql:quickload "my-awesome-project")

如果 my-awesome-project 系統依賴任何尚未安裝但可透過 Quicklisp 安裝的系統,Quicklisp 會自動替你安裝。

可以加載一個不同於 Quicklisp 項目列表版本的項目嗎?

可以。

任何可在 local-projects 或 ASDF 的 source registry system 找到的系統文件,加載時的優先權高於 Quicklisp 的遠端項目列表。

不同 Lisp 實現要分別裝 Quicklisp 嗎?

不用。

多實現之間可用相同的 Quicklisp,只要他們加載的是相同的 setup.lisp 即可。多 Lisp 之間會共享 metadata 與 系統文件。