Prendendo come riferimento la documentazione ufficiale per l'installazione di CKAN a partire dai sorgenti abbiamo creato questo tutorial di installazione specifica su CentOS 6.5, ma facilmente estensibile a una qualunque distribuzione Linux.
Nota: avendo a disposizione una infrastruttura di derivazione Debian si può procedere all'installazione di CKAN direttamente dai package seguendo sempre la documentazione ufficiale.
$ yum install git
$ yum install postgresql postgresql-libs postgresql-server postgresql-devel
$ yum install python python-devel python-setuptools
$ easy_install pip
$ easy_install virtualenv
Scarichiamo java come pacchetto rpm e procedi all'installazione
$ rpm -ivh <nomepacchettorpm>
Scarichiamo solr ed estrai l'archivio in /usr/local
$ tar -xzvf solr.tgz -C /usr/local
Scarichiamo jetty ed estrai l'archivio in /usr/local
$ tar -xzvf jetty.tar.gz -C /usr/local
Attraverso i seguenti passi si procede alla creazione e attivazione del virtualenv Python, al download dei sorgenti ckan e alla loro compilazione:
$ mkdir -p /usr/lib/default
$ virtualenv --no-site-packages /usr/lib/ckan/default
$ . /usr/lib/ckan/default/bin/activate
$ pip install -e 'git+https://github.com/ckan/ckan.git@ckan-2.2#egg=ckan'
$ pip install -r /usr/lib/ckan/default/src/ckan/requirements.txt --allow-all-external
$ deactivate
$ . /usr/lib/ckan/default/bin/activate
Nota: in particolare l'opzione allow-all-external è stata necessaria all'installazione e non risulta documentata nel tutorial ufficiale CKAN.
Listiamo elenco db:
$ sudo -u postgres psql -l
Controlliamo che l'encoding sia UTF-8 e procediamo alla creazione di utente e db:
$ sudo -u postgres createuser -S -D -R -P ckan_default
$ sudo -u postgres createdb -O ckan_default ckan_default -E utf-8
$ mkdir /etc/ckan/default
$ cd /usr/lib/ckan/default/src/ckan
$ paster make-config ckan /etc/ckan/default/development.ini
$ ln -s /usr/lib/ckan/default/src/ckan/who.ini /etc/ckan/default/who.ini
Editiamo il file development.ini in modo tale da modificare la proprietà sqlalchemy.url e ckan.site_id:
sqlalchemy.url = postgresql://ckan_default:pass@localhost/ckan_default
ckan.site_id = default
Deploy di Solr su Jetty assumendo di averli decompressi in /usr/local/solr e /usr/local/jetty:
$ cd /usr/local/solr/dist
$ cp solr.war /usr/local/jetty/webapps
$ cp /usr/local/solr/dist/solrj-lib/* /usr/local/jetty/lib/ext
$ cd /usr/local/jetty
$ ln -s /usr/local/solr/example/solr
Utilizziamo lo schema.xml presente nei sorgenti di ckan:
$ ln -s /usr/lib/ckan/default/src/ckan/ckan/config/solr/schema-2.0.xml /usr/local/solr/example/solr/collection1/conf/schema.xml
Impostiamo Jetty per girare sulla porta 8983 editando il file /usr/local/jetty/bin/jetty.sh:
JETTY_ARGS=jetty.port=8983
Aggiorniamo la properties solr_url nel file /etc/ckan/default/development.ini:
solr_url=http://127.0.0.1:8983/solr
Procediamo alla creazione delle tabelle su postgres:
$ cd /usr/lib/ckan/default/src/ckan
$ paster db init -c /etc/ckan/default/development.ini
Creazione della directory per il salvataggio dei file:
$ mkdir -p /var/lib/ckan/default
Editazione del file development.ini; è sufficiente "scommentare" le seguenti righe:
ofs.impl = pairtree
ofs.storage_dir = /var/lib/ckan/default
$ /usr/local/jetty/bin/jetty.sh start
$ cd /usr/lib/ckan/default/src/ckan
$ paster serve /etc/ckan/default/development.ini
Istanza del CKAN installata nella stesura di questo tutorial