Jestem nowicjuszem w cl, i nauczyłem się instalować pakiety przy użyciu asdf-install, ale nie wiem jak to działa, zastanawiam się, jak można pakiet zainstalowany ręcznie, dzięki czemu mógłbym zrozumieć wykorzystanie plików w katalogu głównym kodu źródłowego, dziękuję.Jak instalować nowe pakiety dla zwykłego seplepu bez asdf-install
Odpowiedz
Krótka odpowiedź: po prostu użyj quicklisp.
Długa odpowiedź: jeśli chcesz zrozumieć, w jaki sposób pakiet, lub - dokładniej - system ASDF, jest gotowy, to dobry pomysł. Właściwie nie ma w tym nic trudnego.
Każdy system ASDF powinien mieć plik definicji systemu z rozszerzeniem .asd
. Ten plik określa inny plik systemu ze ścieżkami w stosunku do pliku .asd, ich typami (domyślnie: kod źródłowy septa) i zależnościami. Twój Lisp powinien wiedzieć, gdzie znaleźć plik definicji systemu. W ASDF są 2 sposoby informowania Lispa o tym: dodawanie katalogu, w którym przechowujesz plik lub dowiązanie symboliczne do niego, do listy asdf:*central-registry*
lub konfigurowanie specjalnych plików konfiguracyjnych (nazywanych rejestrem źródłowym - więcej o tym w ASDF manual).
Teraz, jeśli chcesz zainstalować system ręcznie, wystarczy pobrać swoje źródła, wyodrębnić je do jakiegoś katalogu (tak jak w /home/user/lib/lisp/
- możesz dostać /home/user/lib/lisp/cl-ppcre-2.3.1/
, wewnątrz którego istnieje cl-ppcre.asd
). Aby pozwolić twojemu Lispowi dowiedzieć się o tym tylko (push "/home/user/lib/lisp/cl-ppcre-2.3.1/" asdf:*central-registry*)
(i nie zapomnij o końcowym ukośniku - jest to wymagane), a następnie możesz załadować system za pomocą (asdf:oos 'asdf:load-op :cl-ppcre)
.
Zobacz także konfiguracja specjalny dir, gdzie będziesz podlinkowujemy istniejących systemów, jak /home/user/.lisp/
i dodać go do *central-registry*
w Lisp typu startowym (na przykład w .sbclrc
). Teraz, jeśli chcesz tymczasowo przesłonić część systemu połączonego w tym katalogu, powiedzmy, z nowszą wersją, nie musisz rozłączać niczego - po prostu popchnij ścieżkę do alternatywnego systemu do *central-registry*
.
Quicklisp robi to wszystko dla Ciebie i nie tylko ...