Sono nuovo a cl, e ho appena imparato a installare pacchetti usando asdf-install, ma non so come funzioni, mi chiedo come possa essere il pacchetto installato manully, quindi ho potuto capire l'uso dei file nella directory root del codice sorgente, grazie.Come installare nuovi pacchetti per Common Lisp senza asdf-install
risposta
Risposta breve: utilizzare solo quicklisp.
Risposta lunga: se vuoi capire come è strutturato il pacchetto o, più precisamente, il sistema ASDF, è una buona idea. In realtà, non c'è niente di difficile.
Ogni sistema ASDF deve avere un file di definizione del sistema con estensione .asd
. Questo file identifica altri file del sistema con i relativi percorsi relativi al file .asd, i loro tipi (per impostazione predefinita: codice sorgente lisp) e le dipendenze. Il tuo Lisp dovrebbe sapere dove trovare il file di definizione del sistema. In ASDF ci sono 2 modi per informare Lisp al riguardo: aggiungendo la directory, in cui si memorizza il file o il link simbolico ad esso, alla lista asdf:*central-registry*
o alla configurazione di file di configurazione speciali (chiamati source-registry - più su quello in ASDF manual).
Ora, se si desidera installare il sistema a mano, basta scaricare le sue fonti, estrarli in una directory (come in /home/user/lib/lisp/
- si può ottenere /home/user/lib/lisp/cl-ppcre-2.3.1/
, all'interno del quale c'è cl-ppcre.asd
). Per consentire al tuo Lisp di scoprirlo a questo proposito, solo (push "/home/user/lib/lisp/cl-ppcre-2.3.1/" asdf:*central-registry*)
(e non dimenticare la barra finale - è necessario), e quindi puoi caricare il sistema con (asdf:oos 'asdf:load-op :cl-ppcre)
.
Si potrebbe anche impostare una directory speciale, dove si link simbolico i sistemi esistenti, come /home/user/.lisp/
e aggiungerlo al *central-registry*
all'avvio tipo Lisp (ad esempio in .sbclrc
). Ora, se si desidera sovrascrivere temporaneamente parte del sistema collegato in questa directory, ad esempio, con una versione più recente, non è necessario scollegare nulla: basta spingere il percorso su un sistema alternativo su *central-registry*
.
Quicklisp fa tutto questo per voi e altro ...