mirror of
https://github.com/dimitri/pgloader.git
synced 2026-03-14 08:31:41 +01:00
Various Linux distributions provide SBCL without core-compression enabled. On the other hand, Mac OSX (at least via `homebrew`) SBCL with core-compression enabled. To make installation easier, teach the make process to detect core-compression, and use it if possible.
104 lines
3.1 KiB
Markdown
104 lines
3.1 KiB
Markdown
# Installing pgloader
|
|
|
|
pgloader version 3.x is written in Common Lisp.
|
|
|
|
## The lisp parts
|
|
|
|
The steps depend on the OS you are currently using.
|
|
|
|
### debian
|
|
|
|
If you're using debian, it's quite simple actually, see the file
|
|
`bootstrap-debian.sh` within the main pgloader distribution to get yourself
|
|
started.
|
|
|
|
You will note in particular:
|
|
|
|
sudo apt-get install -y sbcl \
|
|
git curl patch unzip \
|
|
devscripts pandoc \
|
|
libsqlite3-dev \
|
|
freetds-dev
|
|
|
|
We need a recent enough [SBCL](http://sbcl.org/) version and that means
|
|
backporting the one found in `sid` rather than using the very old one found
|
|
in current *stable* debian release. See `bootstrap-debian.sh` for details
|
|
about how to backport a recent enough SBCL here (1.1.14 or newer).
|
|
|
|
### Mac OS X
|
|
|
|
We suppose you already have `git` and `make` available, if that's not the
|
|
case now is the time to install those tools. The SQLite lib that comes in
|
|
MacOSX is fine, no need for extra software here.
|
|
|
|
You will need to install either SBCL or CCL separately, and when using
|
|
[brew](http://brew.sh/) it's as simple as:
|
|
|
|
brew install sbcl
|
|
brew install clozure-cl
|
|
|
|
NOTE: Make sure you installed the universal binaries of Freetds, so that
|
|
they can be loaded correctly.
|
|
|
|
brew install freetds --universal --build-from-source
|
|
|
|
### Compiling SBCL by yourself
|
|
|
|
If you ended up building SBCL yourself or you just want to do that, you can
|
|
download the source from http://www.sbcl.org/ .
|
|
|
|
You will need to build SBCL with the following command and options:
|
|
|
|
sh make.sh --with-sb-core-compression --with-sb-thread
|
|
|
|
NOTE: You could also remove the --compress-core option.
|
|
|
|
|
|
## Building pgloader
|
|
|
|
Now that the dependences are installed, just type make.
|
|
|
|
make
|
|
|
|
If your `SBCL` supports core compression, the make process will use it
|
|
to generate a smaller binary. To force disabling core compression, you
|
|
may use:
|
|
|
|
make COMPRESS_CORE=no
|
|
|
|
Then you will have a new tool to play with:
|
|
|
|
./build/bin/pgloader --help
|
|
|
|
This command should spit out the *usage* information on which parameters are
|
|
accepted in the command line actually.
|
|
|
|
|
|
## Building pgloader with CCL
|
|
|
|
It's possible to pick [ccl](http://ccl.clozure.com/) rather than SBCL when
|
|
compiling pgloader:
|
|
|
|
make CL=ccl
|
|
|
|
## Building pgloader for use in low RAM environments
|
|
|
|
It's possible to tweak the size of RAM pgloader will use in its binary
|
|
image, at compile time. This defaults to 4 GB.
|
|
|
|
make DYNSIZE=1024
|
|
|
|
Now the `./build/bin/pgloader` that you get only uses 1GB.
|
|
|
|
## Building a docker image
|
|
|
|
A `Dockerfile` is provided, to use it:
|
|
|
|
docker build -t pgloader:debian .
|
|
docker run --rm --name pgloader pgloader:debian bash -c "pgloader --version"
|
|
|
|
The `build` step install build dependencies in a debian jessie container,
|
|
then `git clone` and build `pgloader` in `/opt/src/pgloader` and finally
|
|
copy the resulting binary image in `/usr/local/bin/pgloader` so that it's
|
|
easily available.
|