Installation » History » Version 8

Jeremy Gow, 2012-10-03 12:06 PM
More on clsql:connect

1 7 Jeremy Gow
h1. Installing IDyOM
2 1 Marcus Pearce
3 1 Marcus Pearce
h2. Prerequisites
4 1 Marcus Pearce
5 2 Marcus Pearce
* "Steel Bank Common Lisp [SBCL]":http://www.sbcl.org/platform-table.html
6 7 Jeremy Gow
* "Quicklisp":http://www.quicklisp.org/beta/ is a library manager for Common Lisp.  Just download "<code>quicklisp.lisp</code>":http://beta.quicklisp.org/quicklisp.lisp
7 7 Jeremy Gow
* An SQL database.  I would recommend  "SQLite":http://www.sqlite.org/ 
8 1 Marcus Pearce
9 7 Jeremy Gow
Many people find "Emacs":http://www.gnu.org/software/emacs/ with "Slime":http://common-lisp.net/project/slime/ useful for Common Lisp development.  Package management systems can simplify the installation of these prerequisites, e.g. "Fink":http://www.finkproject.org/ or "Macports":http://www.macports.org/ for OS X.
10 2 Marcus Pearce
11 7 Jeremy Gow
See the "CLSQL Manual":http://clsql.b9.com/manual/ for information on other database systems you can use and how to access them from Common Lisp.  If you prefer not to use Quicklisp, you will need to install the following Lisp libraries: "UFFI":http://uffi.bi.com, "CLSQL":http://clsql.b9.com, "CL-PPCRE":http://www.weitz.de/cl-ppcre/, "PS-Graph":http://www.cliki.net/psgraph, "Midi":http://www.cliki.net/midi
12 1 Marcus Pearce
13 7 Jeremy Gow
h2. Install Quicklisp
14 1 Marcus Pearce
15 7 Jeremy Gow
To install Quicklisp to a directory <code>DIR</code>, you need to load "<code>quicklisp.lisp</code>":http://beta.quicklisp.org/quicklisp.lisp in Lisp:
16 1 Marcus Pearce
17 1 Marcus Pearce
<pre>
18 7 Jeremy Gow
(load "quicklisp.lisp")
19 7 Jeremy Gow
(quicklisp-quickstart:install :path "DIR/quicklisp/")
20 7 Jeremy Gow
(ql:add-to-init-file)
21 1 Marcus Pearce
</pre>
22 1 Marcus Pearce
23 7 Jeremy Gow
h2. Download IDyOM
24 1 Marcus Pearce
25 7 Jeremy Gow
Download the following zip files and unpack them into <code>DIR/quicklisp/local-projects/</code>
26 1 Marcus Pearce
27 2 Marcus Pearce
* "MIPS":https://code.soundsoftware.ac.uk/hg/mips/archive/tip.zip
28 1 Marcus Pearce
* "AMuSE":https://code.soundsoftware.ac.uk/hg/amuse/archive/tip.zip
29 2 Marcus Pearce
* "amuse-viewpoints":https://code.soundsoftware.ac.uk/hg/amuse-viewpoints/archive/tip.zip
30 1 Marcus Pearce
* "mtp-admin":https://code.soundsoftware.ac.uk/hg/mtp-admin/archive/tip.zip
31 1 Marcus Pearce
* "ppm-star":https://code.soundsoftware.ac.uk/hg/ppm-star/archive/tip.zip
32 1 Marcus Pearce
* "idyom":https://code.soundsoftware.ac.uk/hg/idyom/archive/tip.zip
33 1 Marcus Pearce
34 8 Jeremy Gow
h2. Install IDyOM
35 1 Marcus Pearce
36 7 Jeremy Gow
You can now use Quicklisp to load IDyOM, and install the external Lisp libraries it depends on:
37 1 Marcus Pearce
38 5 Marcus Pearce
<pre>
39 7 Jeremy Gow
(ql:quickload "idyom")
40 5 Marcus Pearce
</pre>
41 8 Jeremy Gow
The first time IDyOM is loaded, you may get an error which brings up the debugger.  Press 2 [ACCEPT] and the installation should complete.
42 1 Marcus Pearce
43 7 Jeremy Gow
h2. Create a database
44 1 Marcus Pearce
45 7 Jeremy Gow
IDyOM is now installed, but you will need a database in order to use it.  To create an SQLite database in directory <code>DIR</code>:
46 5 Marcus Pearce
47 1 Marcus Pearce
<pre>
48 1 Marcus Pearce
(clsql:connect '("DIR/example.db") :if-exists :old :database-type :sqlite3)
49 8 Jeremy Gow
</pre>
50 8 Jeremy Gow
Alternatively, to connect to an existing local MySQL database:
51 8 Jeremy Gow
<pre>
52 8 Jeremy Gow
(clsql:connect '("localhost" "example-database" "username" "password") :if-exists :old :database-type :mysql)
53 8 Jeremy Gow
</pre>
54 8 Jeremy Gow
See the "CLSQL documentation":http://clsql.b9.com/manual/ for more on "connect":http://clsql.b9.com/manual/connect.html and "supported databases":http://clsql.b9.com/manual/prerequisites.html#idp8251808.
55 8 Jeremy Gow
56 8 Jeremy Gow
Finally, for a new database: 
57 8 Jeremy Gow
<pre>
58 7 Jeremy Gow
(mtp-admin:initialise-database)
59 7 Jeremy Gow
</pre>
60 1 Marcus Pearce
61 1 Marcus Pearce
You may now proceed to the [[tutorial]].
62 8 Jeremy Gow
63 8 Jeremy Gow
h3. Problems loading foreign libraries
64 8 Jeremy Gow
65 8 Jeremy Gow
Depending on how your system is configured, <code>clsql:connect</code> may give a "Couldn't load foreign libraries" error.  In this case, you
66 8 Jeremy Gow
need to "tell CLSQL where it can find these libraries":http://clsql.b9.com/manual/appendix.html#foreignlibs, e.g.
67 8 Jeremy Gow
<pre>
68 8 Jeremy Gow
(clsql:push-library-path "/usr/local/mysql/lib/")
69 8 Jeremy Gow
</pre>
70 8 Jeremy Gow
The exact path will depend on your system.  Note that, for some database installations these libraries may not have been installed, and you should consult the database documentation
71 8 Jeremy Gow
to resolve the problem.