Ubuntu12.04上配置CartoDB

原创 2013年12月02日 15:45:21

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了,但是配置到最后一步失败还是很不甘心。不知有没有朋友遇到过同样的问题,期待赐教交流!

python+cartodb+ExifRead 打造自己的大数据照片地图

做为一个程序员,整天在讨论什么算法,什么数据,有时候也应该为自己打造自己的数据,可视化自己的数据。这次我们用的是python,当然还有CartoDB,我们要生成的是一个在线的地图数据 最后结果见 ...
  • gmszone
  • gmszone
  • 2014年03月24日 20:18
  • 4334

ubuntu12.04下搭建QT4.0开发环境

1.安装QT4 首先保证ubuntu可以上网,然后通过apt-get install命令安装qt开发相关的软件包: $ sudo apt-get install libqt4-dev libqt4-d...
  • lieyanhaipo
  • lieyanhaipo
  • 2013年11月26日 16:10
  • 984

ubuntu12.04下搭建ftp服务器

楼主想把同学硬盘里面的200多G电影共享给实验室的小伙伴们看,就打算在内网服务器上搭建一个ftp的服务器。 1.安装ftp 首先在终端下键入如下内容,安装ftp服务器: sudo apt-get in...
  • looong2b
  • looong2b
  • 2014年05月09日 17:00
  • 2187

Ubuntu 12.04 下 android studio 安装 和 配置

Ubuntu 12.04 下 android studio 安装 和 配置   参考:www.Android-studio.org/ 参考:http://blog.csdn.net/singleton...
  • miker1230
  • miker1230
  • 2016年06月04日 10:15
  • 1745

ubuntu 12.04安装配置samba

1、使用下列命令安装samba sudo apt-get install samba sudo apt-get install smbfs 注明:我使用如下命令安装 我们需要做的第一件事是安装Sam...
  • rangf
  • rangf
  • 2014年12月05日 00:25
  • 19384

ubuntu12.04 安装eclipse C++,并配置交叉编译工程

使用eclipse C++ 可以省去makefile的步骤,创建的工程也可以像在WINDOWS 底下一样进行代码编辑和编译。 感谢 http://blog.csdn.net/zgrjkflmkyc/a...
  • LingYiZhangFanKai
  • LingYiZhangFanKai
  • 2015年09月12日 14:27
  • 1459

虚拟机(VMware10.0)上安装Ubuntu12.04操作系统

文档内容源于yze。感谢~安装虚拟机的过程就不阐述了,直接进入配置环节。
  • liu1guo2qiang3
  • liu1guo2qiang3
  • 2016年12月02日 18:35
  • 2435

ubuntu 12.04连接不上网

一、如果输入ifconfig,没有eth0:,那你需要安装网卡驱动,如下: ubuntu中查看网卡类型及是否安装网卡驱动程序    1输入: lspci 或者 lspci –v 或lspci–v...
  • u011053107
  • u011053107
  • 2013年12月26日 11:13
  • 3647

ubuntu12.04安装maven3.0.4

ubuntu12.04安装maven3.0.4 参考链接:http://maven.apache.org/download.cgi 1,确认已经安装jdk, $ java --v...
  • hillchan31
  • hillchan31
  • 2013年01月14日 15:18
  • 1830

Ubuntu12.04下安装Hadoop2.4.0单机模式详细教程

Ubuntu12.04 安装Hadoop2.4.0 详细教程。
  • u012178251
  • u012178251
  • 2015年04月20日 16:33
  • 1103
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ubuntu12.04上配置CartoDB
举报原因:
原因补充:

(最多只允许输入30个字)