30 апреля 2018

Установка и настройка OSRM 5.17 на Centos 7

1. Подготовка:
yum install yum-utils centos-release-scl epel-release
yum-config-manager --enable rhel-server-rhscl-7-rpms
yum install devtoolset-6 git zlib-devel cmake3 wget


2. Установка
Под root:
useradd osrm
mkdir -p /opt/osrm/src
chown -R osrm:osrm /opt/osrm

Далее под osrm:
su osrm
cd /opt/osrm/src
wget https://github.com/Project-OSRM/osrm-backend/archive/5.17.zip
unzip 5.17.zip && cd osrm-backend-5.17 && mkdir build && cd build
scl enable devtoolset-6 bash
cmake3 .. -DENABLE_MASON=ON -DCMAKE_INSTALL_PREFIX=/opt/osrm
cmake3 --build . --target install

3. Обработка карты (под osrm, необходимо временно дать 16Гб RAM на время просчёта):
mkdir -p /opt/osrm/maps && cd /opt/osrm/maps
wget http://download.geofabrik.de/russia-latest.osm.pbf
export PATH=/opt/osrm/bin:$PATH
osrm-extract russia-latest.osm.pbf
osrm-partition russia-latest.osm.pbf
osrm-customize russia-latest.osm.pbf

По-итогу будет куча файлов. Исходный pbf можно удалить. Плюс можно урезать теперь RAM до 4GB

4. Cоздадим юнит-файл для запуска OSRM как службы (под root):
touch /etc/systemd/system/osrm.service

Залить в него следующий текст:
[Unit]
Description=OSRM routing daemon

[Service]
User=osrm
Group=osrm
Environment="PATH=/opt/osrm:/opt/osrm/bin:/opt/osrm/lib:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin"
Type=simple
OOMScoreAdjust=-100
ExecStart=/opt/osrm/bin/osrm-routed --algorithm=MLD --port=5000 --threads=4 /opt/osrm/maps/russia-latest.osrm

[Install]
WantedBy=multi-user.target

5. Разрешим автозапуск и запустим службу (под root):
systemctl enable osrm
systemctl start osrm

Должен начаться слушаться порт tcp/5000. Разрешим в файерволе доступ к нему:
firewall-cmd --permanent --zone=public --add-port=5000/tcp
firewall-cmd --reload

6. Документация по API OSRM: https://github.com/Project-OSRM/osrm-backend/blob/5.17/docs/http.md

1 комментарий:

  1. Напишите пожалуйста ваши контакты, срочно, нужна платная помощь по установке OSRM на centos7

    ОтветитьУдалить