add centos install and ubuntu build from source instructions

This commit is contained in:
rmrice 2017-02-16 15:27:55 -05:00
parent ca7a6ac515
commit a2120f2388
2 changed files with 142 additions and 10 deletions

View file

@ -9,13 +9,15 @@ When running docker image, no special installation is needed -- the docker will
Just run ``docker run -it -v $(pwd):/data -p 8080:80 klokantech/tileserver-gl``.
Additional options (see :doc:`/usage`) can be passed to the TileServer GL by appending them to the end of this command. You can, for example, do the following:
Additional options (see usage_) can be passed to the TileServer GL by appending them to the end of this command. You can, for example, do the following:
.. _usage: https://github.com/klokantech/tileserver-gl/blob/master/docs/usage.rst
* ``docker run ... klokantech/tileserver-gl my-tiles.mbtiles`` -- explicitly specify which mbtiles to use (if you have more in the folder)
* ``docker run ... klokantech/tileserver-gl --verbose`` -- to see the default config created automatically
npm
===
Using npm
=============
Just run ``npm install -g tileserver-gl``.
@ -31,28 +33,57 @@ These are required on Debian 9:
* ``libcairo2-dev``
* ``libprotobuf-dev``
Installing on CentOS
----------------------
CentOS requires additional alterations, since dependencies like mapbox-gl-native require the a more recent version of gcc/g++ libraries than what CentOS upgrades provide. Detailed instructions for installing Tileserver-GL on CentOS can be found here_.
.. _here: https://github.com/klokantech/tileserver-gl/blob/master/docs/installation_centos.rst
``tileserver-gl-light`` on npm
==============================
-----------------------------------
Alternatively, you can use ``tileserver-gl-light`` package instead, which is pure javascript (does not have any native dependencies) and can run anywhere, but does not contain rasterization features.
Build from source
=======================
From source
===========
Make sure you have Node v4 (nvm install 4) and run::
Make sure you have Node v4 (nvm_ install 4) and run::
npm install
node .
.. _nvm:
On Ubuntu
------------
Tested on Ubuntu 16.04 with node v4.2.6::
sudo apt-get install -y software-properties-common protobuf-compiler pkg-config libcairo2-dev libjpeg-dev libgif-dev git libgl1-mesa-glx build-essential g++ curl
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs xvfb
sudo mkdir /var/cache/npm
sudo npm config set cache /var/cache/npm --global
cd /tmp
git clone https://github.com/klokantech/tileserver-gl.git
cd tileserver-gl/
sudo npm install -g --unsafe-perm
On OSX
======
-------
Make sure to have dependencies of canvas_ package installed::
brew install pkg-config cairo libpng jpeg giflib
.. _canvas: https://www.npmjs.com/package/canvas

View file

@ -0,0 +1,101 @@
======================================
Installing Tileserver-GL on CentOS 7
======================================
Mapbox-GL-native requires a more recent version of gcc/g++ libraries than is packaged with CentOS7 updates, so installation needs to be done a little differently. This assumes you're working on a fresh CentOS instance.
---------
First Add EPEL repo for extra packages::
#!/usr/bin/env bash
sudo yum -y install epel-release
Update and upgrade your system::
sudo yum -q -y update
sudo yum -q -y upgrade
Now install Node v4.X. This can be done through nvm, but if you are starting on a fresh instance, this will do the trick to setup the NodeJsv4.X repo::
curl -sL https://rpm.nodesource.com/setup_4.x | sudo bash -
Install necessary dependencies.
NOTE: We probably dont need all of these. There are a few left over from the initial Centos testing.::
sudo yum -y -q install \
autoconf \
automake \
cairo \
cairo-devel \
cairomm-devel \
cmake3 \
curl \
gcc \
gcc-c++ \
giflib-devel \
git \
git-core \
libcurl \
libjpeg-turbo-devel \
mesa-dri-drivers \
nodejs-4.2.5 \
nodejs-devel-4.2.5 \
pango \
pango-devel \
pangomm \
pangomm-devel \
protobuf \
protobuf-compiler \
protobuf-devel \
xorg-x11-server-Xvfb
Add the fedora repo to get updated versions of gcc & g++
**IMPORTANT NOTE: Don't do a system update after enableing this repo. It will get UGLY really fast.**::
echo "[warning:fedora]" | sudo tee /etc/yum.repos.d/FedoraRepo.repo
echo "name=fedora" | sudo tee -a /etc/yum.repos.d/FedoraRepo.repo
echo "mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-23&arch=\$basearch" | sudo tee -a /etc/yum.repos.d/FedoraRepo.repo
echo "enabled=1" | sudo tee -a /etc/yum.repos.d/FedoraRepo.repo
echo "gpgcheck=1" | sudo tee -a /etc/yum.repos.d/FedoraRepo.repo
echo "gpgkey=https://getfedora.org/static/34EC9CBA.txt" | sudo tee -a /etc/yum.repos.d/FedoraRepo.repo
Get new versions of gcc & g++::
sudo yum -y update gcc g++
Potentially unnecessary step::
sudo alternatives --install /usr/bin/cmake qmake /usr/bin/cmake3 500
This stops tileserver-gl complaining about a missing library::
sudo ln -s /lib64/libcurl.so.4.3.0 /lib64/libcurl-gnutls.so.4.3.0
sudo ln -s /lib64/libcurl.so.4.3.0 /lib64/libcurl-gnutls.so.4
Change permissions blocking tileserver from accessing dependencies...
*This is seriously UGLY and a security problem but it gets around errors with "npm -g"*::
sudo chmod -R 777 /usr/lib/node_modules/
sudo chmod o+w /usr/bin
Install tileserver from npm::
npm install -g tileserver-gl
Grab the tileserver demo data::
curl -o zurich_switzerland.mbtiles https://openmaptiles.os.zhdk.cloud.switch.ch/v3.3/extracts/zurich_switzerland.mbtiles
Use xvfb to run the tile server manually::
xvfb-run -s "-screen 0 1024x768x24 +extension GLX" /usr/bin/tileserver-gl --verbose