Разверните jpostal / libpostal в экземплярах EC2 - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь развернуть артефакты jpostal в экземплярах EC2, чтобы наше веб-приложение могло использовать библиотеку. Как я понимаю, файлы jni в "scr / main / jniLibs" связаны с библиотеками c в "/ usr / local / include / libpostal" и "/ usr / local / lib /". Однако у меня нет разрешения на запись "libpostal.h" в "/ usr / local / include / libpostal" и "pkgconfig, libpostal.a, libpostal.la, libpostal.so, libpostal.so.1, libpostal.so .1.0.0 "into" / usr / local / lib / "в экземплярах EC2. Есть ли какое-то решение для этого?

Спасибо.

1 Ответ

0 голосов
/ 06 августа 2018

Мне удалось собрать и сохранить все артефакты в локальной папке, например «/ app / libpostal /», а затем процесс развертывания просто копирует их в ту же папку на компьютере EC2. Главное - использовать команду ./configure, чтобы указать все папки для хранения артефактов, и есть хитрый шаг, где я использую свой собственный jpostal_build.sh вместо стандартного:

1. Пользовательский файл "jpostal_build.sh" имеет 2 строки:

./bootstrap.sh

./configure --libdir=/app/libpostal/jniLibs make install

2. Основной скрипт "generate_jpostal_artifacts.sh":

#!/bin/bash
#################################################
## Build jpostal and libpostal artefacts
#################################################
#Install required build tools 

sudo apt-get install curl autoconf automake libtool pkg-config

#Clean up and checkout libpostal from github

sudo rm -rf /app/libpostal

sudo mkdir -p /app/libpostal

sudo chown -R $USER /app

git clone https://github.com/openvenues/libpostal 

cd libpostal

./bootstrap.sh

#Configure data directory and C libraries location 

./configure --prefix=/app/libpostal --datadir=/app/libpostal/datadir

#Build libpostal 

make -j4 make install sudo ldconfig cd ..

#Build jpostal 

rm -rf ./jpostal

git clone https://github.com/openvenues/jpostal.git

cp jpostal_build.sh ./jpostal/build.sh

export PKG_CONFIG_PATH=/app/libpostal/lib/pkgconfig/

pkg-config --cflags --libs libpostal

cd jpostal

./gradlew assemble

cd ..

#################################################
## zip all libpostal/jpostal artifacts for future deployment
################################################# 

cd /app

tar -cvzf totalcheck-libpostal-1.0.0.tar.gz libpostal

#################################################
## Create config file for local
################################################# 

echo $(pwd)/libpostal/jniLibs > /var/tmp/libpostal_configs.txt

echo $(pwd)/libpostal/datadir/libpostal >> /var/tmp/libpostal_configs.txt
...