关闭

Ubuntu12.04上配置CartoDB

标签: GIS
1213人阅读 评论(2) 收藏 举报
分类:

CartoDB是一个正在研发的开源的空间数据可视化的平台,支持SQL语句,能实现数据的上载、编辑、融合、搜索(支持SQL)、发布等功能。看上去很不错~

实验室的项目需要一个Web端的空间数据可视化平台,于是我开始了和CartoDB战斗:在实验室的机器上配置它。虽然到现在为止还是没有最终配置成功,但是在配置过程当中的一些问题个人认为也很有必要记录一下。以下的配置步骤有些摘自github上的CartoDB小组,自己针对配置有问题的步骤做了说明。

CartoDB需要在Ubuntu机器上配置,研发团队目前是基于Ubuntu 10.04开发的,但是也没有否定其他version的系统。我自己在用Ubuntu10.04配置的时候,GDAL的部分依赖项Ubuntu10.04貌似不支持,于是换了12.04,GDAL安装顺利!以下是配置步骤:


sudo apt-get install git-core


从github上下载cartodb20包
git clone --recursive https://github.com/CartoDB/cartodb20.git

添加源
sudo apt-get install python-software-properties

sudo add-apt-repository ppa:cartodb/gis

sudo add-apt-repository ppa:cartodb/mapnik

sudo add-apt-repository ppa:cartodb/nodejs

sudo add-apt-repository ppa:cartodb/redis

sudo add-apt-repository  ppa:cartodb/postgresql

安装压缩和解压软件 (用来存储上传的文件和生成table)
sudo apt-get install unp

sudo apt-get install zip

安装GEOS  (提供几何功能)
sudo apt-get install libgeos-c1 libgeos-dev

安装GDAL  (支持栅格数据)
sudo apt-get install gdal-bin libgdal1-dev

安装GEOJSON  (支持GEOJSON数据)
sudo apt-get install libjson0 python-simplejson libjson0-dev

安装PROJ4  (提供重投影支持)
sudo apt-get install proj-bin proj-data libproj-dev

安装Postgres  (提供数据库支持)
sudo apt-get install postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1 postgresql-server-dev-9.1
sudo apt-get install postgresql-plpython-9.1

安装Postgis
下载postgis-2.0.2.tar.gz并安装
cd /usr/local/src
sudo wget http://download.osgeo.org/postgis/source/postgis-2.0.2.tar.gz
sudo tar xzf postgis-2.0.2.tar.gz
cd postgis-2.0.2
sudo ./configure --with-raster --with-topology
sudo apt-get install make
sudo make
sudo make install

设置postgres密码
sudo passwd postgres

创建template_postgis
su postgres
createdb -E UTF8 template_postgis
createlang -d template_postgis plpgsql
psql -d postgres -c \
 "UPDATE pg_database SET datistemplate='true' WHERE datname='template_postgis'"
psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/postgis.sql
psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/spatial_ref_sys.sql
psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/legacy.sql
psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/rtpostgis.sql
psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/topology.sql
psql -d template_postgis -c "GRANT ALL ON geometry_columns TO PUBLIC;"
psql -d template_postgis -c "GRANT ALL ON spatial_ref_sys TO PUBLIC;"

回到user
su user

安装Ruby1.9.2(这部分在github上CartoDB团队没有给出安装的方法,下面是自己找的)CartoDB是基于Ruby开发的
sudo apt-get install libreadline-dev
sudo apt-get install build-essential git-core
sudo apt-get install curl

sudo vim /home/user/.bash_profile
加入
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" #load RVM into a shell session as a function


PATH=$PATH:$HOME/.rvm/bin #Add RVM to PATH for scripting
保存退出
source ~/.bash_profile

source ~/.bashrc

type rvm | head -1  查看运行是否正常 rvm is a function表正常
rvm install 1.9.2
rvm use --default 1.9.2

安装Nodejs (Map tiler API和SQL API都是Node.js应用程序)
sudo apt-get install nodejs npm

安装Redis-server  (Windshaft和SQL API都依赖于Redis)
sudo apt-get install redis-server


安装 Python 依赖项(这一步中GDAL的依赖项安装不成功,因此暂时将python_requirements.txt中的GDAL依赖项删掉了,在下面自己找了其他的方法来安装GDAL依赖项)
sudo easy_install pip
sudo pip install -r python_requirements.txt(将python_requirements.txt中的GDAL依赖项删掉)


安装GDAL依赖项(自己找的其他方法)
pip install --no-install GDAL
pip install --no-download GDAL

sudo apt-add-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update
sudo apt-get install python-gdal

sudo apt-get install libgdal-dev
export CPLUS_INCLUDE_PATH=/usr/include/gdal
export C_INCLUDE_PATH=/usr/include/gdal
pip install GDAL


安装Varnish (是Web应用程序的加速器。Windshaft通过此来加速Map API和Map tile的连接)
sudo pip install -e git+https://github.com/RealGeeks/python-varnish.git@0971d6024fbb2614350853a5e0f8736ba3fb1f0d#egg=python-varnish

安装Mapnik(CartoDB提供的Mapnik的源有问题,自己重新找了一个源) (用来创建较为美观的API。可以创建和修改map tile的style

sudo add-apt-repository ppa:mapnik/v2.2.0
sudo apt-get update
sudo apt-get install libmapnik mapnik-utils python-mapnik
再执行一遍README中安装Mapnik的指令
sudo apt-get install libmapnik-dev python-mapnik mapnik-utils


下载CartoDB-SQL-API.git并安装  (提供通过HTTP执行SQL语句的功能)
git clone git://github.com/CartoDB/CartoDB-SQL-API.git
cd CartoDB-SQL-API
git checkout master
npm install
名称不对应,需要改配置文件的名字,否则找不到development状态
cp config/environments/development.js.example config/environments/development.js
node app.js development

下载Windshaft-cartodb.git并安装 (用来支持CartoDBMaps API
git clone git://github.com/CartoDB/Windshaft-cartodb.git
cd Windshaft-cartodb
git checkout master
npm install
需要改配置文件的名字,否则找不到development状态
cp config/environments/development.js.example config/environments/development.js
node app.js development


运行CartoDB
用户名
export SUBDOMAIN=development
cd cartodb20
git checkout master
redis-server
rvm use 1.9.2@cartodb --create && bundle install
bundle install
mv config/app_config.yml.sample config/app_config.yml
vim config/app_config.yml
mv config/database.yml.sample config/database.yml
vim config/database.yml(创建postgres用户的密码,在config/database.yml中加入密码,注意密码要用双引号。。。)
echo "127.0.0.1 ${SUBDOMAIN}.localhost.lan" | sudo tee -a /etc/hosts

sh script/create_dev_user ${SUBDOMAIN}(需要输入密码、密码、邮箱)

就是在这一步,按照要求输入后会报这样的错误:NoMethodError: undefined method `email=' for #<User @values={}

提示没有插入email的方法,有人进Postgres看了,找不到任何关于Insert的方法。于是,至此,最后一步出现了问题,大哭大闹T——T

以下是我找到的一些关于这个问题的帖子,也没有很好的解决方法。由于我也不是很熟悉Ruby,于是就不知道是开发的问题,还是Ruby版本不兼容的问题鸟~~~

https://groups.google.com/forum/#!msg/cartodb/cI_O5FQp5Ro/WV-F4hnTWRIJ

https://github.com/CartoDB/cartodb/issues/259

https://github.com/CartoDB/cartodb/issues/233

https://github.com/mikel/mail/issues/58


在服务器上启动CartoDB

QUEUE=* bundle exec rake resque:work(接着就没反应了,应该是开启成功了吧)

单独开一个终端
bundle exec rails s -p 3000(这个也没有反应了)
单独开一个终端
cd CartoDB-SQL-API
node app.js development
单独开一个终端
cd Windshaft-cartodb

node app.js development


于是,启动CartoDB需要打开4个终端,有时候redis-sever也会捣捣乱,此时需要再开一个终端启动一下它。

在浏览器中输入 http://XXX.XXX.XXX.XXX:3000,需要输入之前创建的用户名(或邮箱)和密码,由于之前没有Insert成功,所以提示没有该用户,于是就只能停留在登录界面了。。。。

CartoDB上新注册的用户好像有上传5个table的权限。当然CartoDB也提供付费的服务。

本以为开源的CartoDB配置起来会十分容易,没想到遇到了这么多的问题。虽然项目已经决定不用CartoDB了,但是配置到最后一步失败还是很不甘心。不知有没有朋友遇到过同样的问题,期待赐教交流!

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1573次
    • 积分:37
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章分类
    文章存档
    最新评论