Some terminology first

In the Common Lisp world, a package is a way of grouping symbols
together and of providing encapsulation. It is similar to a C++
namespace, a Python module or a Java package.

A system is a collection of CL source files bundled with an .asd
file which tells how to compile and load them. There is often a
one-to-one relationship between systems and packages, but this is in
no way mandatory. A system may declare a dependency on other
systems. Systems are managed by ASDF (Another System Definition
Facility), which offers functionalities similar to those of make and
ld.so, and has become a de facto standard.

A Common Lisp library or project typically consists of one or
several ASDF systems (and is distributed as one Quicklisp project).

Install Quicklisp

Quicklisp is more than a package
manager, it is also a central repository (a dist) that ensures that
all libraries build together. This involves some manual work (like
reporting errors to package authors), so this is why Quicklisp
releases its dist updates once a month (but fear not, we have other
tools).

It provides its own dist but it is also possible to build our own.

To install it, we can either:

1- run this command, anywhere:

curl -O https://beta.quicklisp.org/quicklisp.lisp

and enter a Lisp REPL and load this file:

sbcl --load quicklisp.lisp

or

2- install the Debian package:

apt-get install cl-quicklisp

and load it, from a REPL:

(load "/usr/share/cl-quicklisp/quicklisp.lisp")

Then, in both cases, still from the REPL:

(quicklisp-quickstart:install)

This will create the ~/quicklisp/ directory, where Quicklisp will
maintain its state and downloaded projects.

If you want Quicklisp to always be loaded in your Lisp sessions, run
(ql:add-to-init-file): this adds the right stuff to the init file of
your CL implementation. Otherwise, you have to run (load
"~/quicklisp/setup.lisp") in every session if you want to use
Quicklisp or any of the libraries installed through it.