ASDF-install is OBSOLETE. DO NOT USE ASDF-INSTALL, EVER. DO NOT ASK AROUND ABOUT HOW TO GET IT RUNNING. IT IS O-B-S-O-L-E-T-E. Not working. Not maintained. Please use quicklisp instead. Maybe clbuild for more advanced stuff.

asdf-install used to be a program for downloading and installing lisp packages. You could call it an ASDF-extension. It:

  • used to download lisp libraries (defined by ASDF Systems or mk-defsystem systems) from the net using CLiki :package links and installs them in the local Lisp
  • used to chase dependencies
  • used to use PGP signatures to verify the provenance of the downloaded code (requires GPG)
asdf-install used to rely on *nix utilities to work, therefore didn't work on a different OS (e.g.: Windows). Using ports of the aforementioned utilities did not work.

Please check the ASDF-Install bugs and ASDF-Install enhancement requests pages to add your thoughts about what isn't working and what might work better! You might also want to see the ASDF-Install FAQ.


A tutorial for the "portable" (see below) version can be found at There is also information on GPG for ASDF-Install developers and on ASDF-Install and GPG here on the CLiki.


Depending on how you count there are currently two or three variants of ASDF-INSTALL:

Using asdf-install

* (require 'asdf)
* (require 'asdf-install)  ;; works on SBCL, may require more work on other 
Lisps * (asdf-install:install 'cliki)

Loading a package installed by asdf-install

(asdf:oos 'asdf:load-op :vecto) ;; loads vecto

Making your package downloadable with asdf-install

  1. Make a gzipped tarball of the ASDF system, arranged to unpack into a subdirectory systemname_version.
    tar -cvzf systemname_version.tar.gz systemname_version/
    If your package is called `mail-reader', version 0.1, the tarball would be called mail-reader_0.1.tar.gz and unpack into mail-reader_0.1/. It is OK if there are directories nested below the systemname_version directory but all the *.asd files must reside in the toplevel directory.

  2. Because cCLan download links can be edited by anyone, we require that all packages are accompanied by detached PGP signatures. Using gpg, this can be done with the command
    gpg -b -a mail-reader_0.1.tar.gz
    which will generate mail-reader_0.1.tar.gz.asc. If you need more help with this step, see GPG for ASDF-Install developers.

  3. Upload the package and signature file to a web server.

  4. Create a page on cliki with the same name as the package (in this example, mail-reader) which has a package link containing the url to your download location

    If you want to have the package added to cclan proper (optional, but nice if you want it mirrored or don't have suitable web space), contact a cclan node maintainer using cclan-list to arrange upload. Then you can write the package token as


    and asdf-install will use a user-configurable cclan mirror.

Note that the name of the cliki page must match the system name as known to asdf. The name of the tar file is non-critical, though: for example if you regularly put new versions out and don't want to update cliki every time, you can use a symlink. The .asc file name, however, must correspond with the tar file name - so in that case you'd need two symlinks.

There is a script (asdf-packaging-tools) to automate the packaging process for ASDF-INSTALL.

Downloading ASDF-installable tarballs manually

To download tarballs directly (without using ASDF-Install itself) you can use following shell script (downlads package to file package-name.tar.gz in current directory).


# You can configure your CClan mirror site here.

exec wget \
    --no-cookies --header "Cookie: CCLAN-SITE=$CCLAN" \
    -O $PACKAGE.tar.gz "${@}" \

GnuPG and asdf-install

Users should read ASDF-Install and GPG. Developers should read GPG for ASDF-Install developers.

asdf-installable packages and lisp implementations

(To get an idea of which ASDF-installable packages will work in your Lisp, check here.)

ASDF-install package (obsolete)

ECL asdf-install requires

--- C:/clisp/asdf-install/load-asdf-install.lisp        2006-03-22 01:05:39.000000000 +1000
+++ load-asdf-install.lisp      2006-08-09 15:44:42.671875000 +1000
@@ -55,13 +55,19 @@
                 :host (pathname-host directory)
                 :device (pathname-device directory)
                 :directory (append (pathname-directory directory)
-                                   (list :wild-inferiors))))
+                                   (list :wild-inferiors))
+                :name :wild
+                :type :wild
+                :version :wild))
                 :host (pathname-host directory)
                 :device (pathname-device directory)
                 :directory (append (pathname-directory directory)
-                                   (list :wild-inferiors))))))
+                    (list :wild-inferiors))
+                :name :wild
+                :type :wild
+            ))))