Тема открытого правительства и открытых данных все больше набирает обороты и приобретает популярность среди многих стран мира, их правительств и организаций. К тому же совсем недавно в России был принят закон об открытых данных, что указывает на растущий интерес к этой теме. В Украине тоже правительство движется в сторону публикации открытых данных. Собственно, раз это популярно, то можно на этом заработать или же принять участие в модном движении. К тому же ежегодно проводятся конкурсы, фестивали и хакатоны по созданию сайтов и приложений для публикации открытых данных.
Открытые данные — это способ представления общедоступной информации в машиночитаемой форме. В виде, в котором разработчики могут загрузить их в базы данных, проанализировать и представить в куда более наглядной и понятной форме чем то, как это делается в государственных системах.
Я бы хотел поделиться личным опытом «создания» (установки) сайта для публикации открытых данных. Я использовал платформу с открытым исходным кодом CKAN. Идти ли подобным путем, использовать другую платформу или написать свой сайт с нуля — Вам решать. Надеюсь, моя статья поможет Вам сделать верный выбор.
CKAN — это система управления данными, которая делает их доступными за счет инструментов, упрощающих их публикацию, распространение, поиск и использование. Более 50 стран, организаций и городов выбрали данную платформу для публикации своих данных. Среди них Великобритания, США, Чехия, Австралия, Бразилия и прочие. Вообщем, список внушительный. Сама платформа написана на python. Здесь подробная статья на английском. Здесь подробная статья на русском.
Установка CKAN
По данному адресу находится подробная инструкция по установке платформы. Правда, не все работает так гладко, как там описано. Я потратил порядочное количество дней, чтобы разобраться и установить платформу. В свою очередь разработчики предлагают платные условия по установке,
Вам предлагают два способа установки платформы: установка пакетом или установка из исходников. Первый способ экономит огромное количество вашей “нервной” энергии. Но он подойдет вам только в том случае, если у вас подходящая система. На данный момент это Ubuntu 12.04 (до недавнего времени была — 10.04). Вот на нее и рекомендую вам ставить данную платформу. Если же вы уверены в своих силах или уже имеете настроенную систему и не хотите от нее отказываться, то Вам поможет wiki проекта. Мой опыт — OpenVZ Ubuntu 12.04.
Итак, первый путь — пакетная установка. У меня она не получилась, по указанной выше причине (несогласованность версий ОС). Но и тут я смогу дать вам пару советов. Так как это был мой первый опыт администрирования виртуального сервера (да и вообще администрирования), то мои советы могут показаться опытным (бородатым) админам детскими, но а для начинающих, я надеюсь, будут полезными.
!!!Обратите внимание на версию устанавливаемой платформы. CKAN переводится в данный момент более чем на 30 языков мира, но с разным успехом. Перевод осуществляют волонтеры. И каждая новая версия выпускается с разным набором переводов. Проследите по этому адресу статус перевода той версии, которую собираетесь устанавливать. Мне пришлось участвовать в переводе русской и украинской локали (ver. 2.0 — 2.1), так как перевод не был готов. Перевод осуществляется на сайте transifex. У вас есть выбор — либо ставить последнюю версию, у которой присутствует перевод, либо принять участие в переводе. Статус перевода русской локали.
Installing CKAN from Package
1. Install the CKAN Package
Делаем все по инструкции. Если без ошибок — идем дальше, если ошибки — переходите ко второму способу. Это правило работает для всех пунктов. Но прежде проверьте суть ошибки — может дело в вас или в настройках сервера.
2. Install PostgreSQL and Solr
Перед установкой базы данных нам следует дать самим себе права на перезапись стека /dev/null, иначе мы получим ошибку /dev/null: Permission denied.
Фикс простой — получаем root-овые права и чиним:
# rm /dev/null && mknod -m 0666 /dev/null c 1 3
Проверяем:
# ls -la /dev/null
crw-rw-rw- 1 root root 1, 3 2010-12-24 01:53 /dev/null
После установки PostgreSQL необходимо установить локаль и кодировку текста. Устанавливаем языки в систему:
apt-get install language-pack-ru-base (apt-get install language-pack-uk-base)
Останавливаем базу данных:
pg_dropcluster --stop 9.1 main
И устанавливаем саму локаль (учтите, что все базы будут иметь одну локаль):
pg_createcluster --locale ru_RU.UTF8 9.1 main (pg_createcluster --locale uk_UA.UTF8 9.1 main)
Перегружаемся и проверяем — теперь базы данных должны иметь нужную нам локаль и кодировку:
reboot
sudo -u postgres psql -l
Разработчики рекомендуют установить пакет solr-jetty. Но, по моим наблюдениям и опыту — он не работает. Не знаю почему. Все перепробовал, но не работает. Пришлось идти в обход. Если и у вас не получиться запустить нативным методом sorl, то ловите фикс:
Присваиваем значение последней версии jetty:
JETTY_VERSION=7.6.10.v20130312
Берем ее:
wget http://download.eclipse.org/jetty/$JETTY_VERSION/dist/jetty-distribution-$JETTY_VERSION.tar.gz
Распаковываем:
tar xfz jetty-distribution-$JETTY_VERSION.tar.gz
Берем последнюю версию sorl:
wget http://apache-mirror.telesys.org.ua/lucene/solr/3.6.2/apache-solr-3.6.2.zip
Распаковываем:
unzip -q apache-solr-3.6.2.zip
Заходим:
cd apache-solr-3.6.2/example/
Запускаем в фоновом режиме sorl:
nohup java -jar start.jar&
Четко выполняйте все инструкции в мануале, и вскоре вы увидите работающий сайт.
Теперь второй путь, если у Вас не Ubuntu 12.04
Еще раз обращаю внимание на wiki по установке CKAN.
Installing CKAN from Source
1. Install the required packages
Нам предлагают такой набор пакетов:
sudo apt-get install python-dev postgresql libpq-dev python-pip python-virtualenv git-core solr-jetty openjdk-6-jdk
Я же рекомендую вам установить следующий набор (не забываем apt-get update и про /dev/null (описано выше)):
sudo aptitude install python-dev postgresql-9.1 libpq-dev python-pip python-virtualenv git-core openjdk-6-jdk curl nginx gcc bcc tcc
3. Setup a PostgreSQL database
+ дополнительная настройка описана выше
5. Setup Solr
описано выше
9. You’re done!
Вам предлагают код:
paster serve /etc/ckan/default/development.ini
Мое предложение для запуска в фоне:
nohup paster serve /etc/ckan/default/development.ini&
Для тестирования на локальной машине пройденных шагов достаточно. А вот если вы хотите перекинуть на сервер свою платформу, то тут я тоже дам вам один совет.
Deploying a Source Install
Мой добрый совет (за который огромное спасибо ibegtin) звучит так — используйте Nginx. Это значительно ускорит ваш сайт. Вот здесь имеется замечательная инструкция по установке связки paster + Nginx. Мне она очень помогла решить именно таким образом вопрос с виртуализацией платформы
Во всем же остальном просто следуйте инструкции, и все у вас получиться. Если возникнут вопросы — вы можете задать их мне или написать разработчикам. Также вы можете подписаться на рассылку новостей или следить за развитием проекта в twitter .
Полезные ресурсы
CKAN Storage Extension for Google Refine
Integrating CKAN and Drupal
Сайты на платформе CKAN
Список сайтов, работающих на данной платформе
Сайт-каталог, работающий на CKAN, который собирает данные про существующие хабы данных.
Хаб открытых данных в Российской Федерации
Хаб открытых данных в Российской Федерации по деятельности правоохранительных органов власти
Международный хаб, работающий на платформе CKAN. Вам не обязательно создавать свой хаб. Вы можете загружать сюда любые открытые данные и использовать api или ссылаться на данный ресурс. Выбор за вами. Удачи!
Автор: sofist