This is an old revision of the document!
Questa ricetta serve a compilare la libreria GDAL/OGR con il supporto ad Oracle Spatial (Oracle Instantclient) su una Debian Lenny. I passaggo sono i seguenti:
Scaricare dalla pagina Oracle i seguenti archivi rpm:
Si tratta della libreria OCI vera e propria e dei file header per compilare programmi contro questa libreria.
Con alien
(pacchetto da installare) convertire i pacchetti .rpm in .deb, quindi installare i pacchetti .deb (per eseguire alien
come utente non privilegiato è possibile utilizzare fakeroot
):
alien oracle-instantclient11.1-basiclite-*.rpm alien oracle-instantclient11.1-devel-*.rpm dpkg -i oracle-instantclient11.1-*.deb
Con dpkg -L pacchetto
si scopre il percorso di installazione di libreria e header.
Aggiungere il path della libreria Oracle alla configurazione di ldconfig
e aggiornare la cache di ldconfig
:
echo /usr/lib/oracle/11.1/client/lib > /etc/ld.so.conf.d/oci.conf ldconfig
La conversione da rpm a deb non suggerisce le dipendenze, bisogna installare manualmente il pacchetto Debian libaio1:
apt-get install libaio1
Installare i pacchetti di sviluppo Debian, una selezione minima potrebbe essere:
Scaricare i sorgenti della libreria GDAL:
mkdir -p /usr/local/src/gdal cd /usr/local/src/gdal apt-get source gdal cd gdal-1.5.2
Modificare il file debian/rules
, in modo da includere nella fase di configure
anche le librerie OCI, in pratica oltre ai vari --with-mysql
, --with-pg
, --with-sqlite
si deve aggiungere due righe (attenzione a mettere anche il backslash a fine riga):
--with-oci-include=/usr/include/oracle/11.1/client \ --with-oci-lib=/usr/lib/oracle/11.1/client/lib \
Le Debian rules (gdal 1.5.2-3) cercano la libreria Oracle nnz10, mentre attualmente esiste la libreria nnz11; sistemare con un link simbolico:
ln -s libnnz11.so /usr/lib/oracle/11.1/client/lib/libnnz10.so
Infine lanciare la compilazione del pacchetto (l'opzione -rfakeroot
è richiesta solo se non si è utente root):
dpkg-buildpackage -rfakeroor
La libreria GDAL richiede la presenza di molte librerie e per la sua compilazione sono richiesti i rispettivi header file. Per fortuna dpkg-buildpackage
elenca tutti i pacchetti necessari (le build dependencies) non appena viene lanciato. Si deve provvedere ad installare tutti i pacchetti richiesti.
Al termine della compilazione, nella directory padre si trovano i pacchetti:
Si installano almeno i pacchetti gdal-bin
e libgdal1-1.5.0
. Conviene metterli on-hold per evitare che vengano aggiornati:
Per verificare che la libreria installata abbia il supporto Oracle:
ldd /usr/lib/libgdal1.5.0.so | grep oracle ogrinfo --formats