Asdf-Installer des bibliothèques à partir de la ligne de commande
-
06-07-2019 - |
Question
Venant d’un contexte Perl, je dois dire que je préfère cpan Foo :: Bar
au fait de devoir démarrer sbcl, (require: asdf-install)
et enfin (asdf-install: install: foo-bar)
. Y a-t-il quelque chose de plus pratique que cela autour?
La solution
Il y a clbuild:
http://common-lisp.net/project/clbuild/
Mais j'ajoute ceci à mon .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)"
}
Autres conseils
Common Lisp peut être bavard; Cependant, la plupart des implémentations (toutes?) prennent en charge un fichier de démarrage Lisp qui définit / charge tout ce que vous voulez pour personnaliser votre environnement de développement.
Vérifiez également les Mudballs .
Vous pouvez consulter http://www.quicklisp.org/ - il est rapide et facile de installer, puis télécharger, installer et charger des systèmes:
(ql:quickload :cxml)
Pour traduire en Perl, cela ressemble à (shell) cpanm cxml
et (à l'intérieur de Perl) utilisez cxml
dans un seul.
Vous pouvez également rechercher des systèmes; par exemple pour lister tous les:
(ql:system-apropos "xml")
Généralement, vous exécuteriez un processus lisp et lui donneriez ces commandes directement, mais si vous préférez effectuer votre installation et ainsi de suite à partir du shell, vous pouvez définir des alias (comme dans la réponse 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)"
}