asdf-установка библиотек из командной строки
-
06-07-2019 - |
Вопрос
Исходя из Perl, я должен сказать, что я предпочитаю cpan Foo :: Bar
запускать sbcl, (require: asdf-install)
и, наконец, (asdf-install: install: foo-bar)
. Есть ли что-нибудь более удобное, чем это?
Решение
Существует clbuild:
http://common-lisp.net/project/clbuild/
Но я добавляю это в мой .bashrc:
function asdf_install {
sbcl --eval "(asdf:operate 'asdf:load-op :asdf-install)" --eval "(asdf-install:install :$1)" --eval "(quit)"
}
function asdf_oos {
rlwrap sbcl --eval "(asdf:operate 'asdf:$2 :$1)"
}
Другие советы
Common Lisp может быть многословным; однако большинство (все?) реализации поддерживают файл запуска Lisp, который определяет / загружает все, что вам нравится, для персонализации среды разработки.
Кроме того, ознакомьтесь с шариками .
Вы можете проверить http://www.quicklisp.org/ - это быстро и легко установить, затем загрузить, установить и загрузить системы:
(ql:quickload :cxml)
Чтобы перевести на Perl, это похоже на (shell) cpanm cxml
и (внутри Perl) используйте cxml
все в одном.
Вы также можете искать системы; например, чтобы перечислить все:
(ql:system-apropos "xml")
Обычно вы запускаете процесс lisp и даете ему эти команды напрямую, но если вы предпочитаете выполнять установку и т. д. из оболочки, вы можете определить псевдонимы (как в ответе https://stackoverflow.com/a/427333/17221 ): р>
function ql_install {
sbcl --eval "(ql:quickload :$1)" --eval "(quit)"
}
function ql_apropos {
sbcl --eval "(ql:system-apropos \"$1\")" --eval "(quit)"
}