代码之家  ›  专栏  ›  技术社区  ›  Zwii Doan

将jpostal/libposal部署到EC2实例中

  •  2
  • Zwii Doan  · 技术社区  · 8 年前

    我正在尝试将jpostal构件部署到EC2实例中,以便我们的web应用程序可以使用该库。据我所知,“scr/main/jniLibs”中的jni文件链接到“/usr/local/include/libposal”和“/usr/local/lib/”中的c库。但是,我无权在EC2实例中将“libposal.h”写入“/usr/local/include/libposal”和“pkgconfig,libposal.a,libposal.la,libposal.so,libposal.so.1,libposal.so.1.0.0”写入“/usr/local/lib/”。有什么解决办法吗?

    谢谢

    1 回复  |  直到 8 年前
        1
  •  0
  •   Zwii Doan    7 年前

    我设法将所有人工制品构建并保存到本地文件夹中,例如“/app/libposal/”,然后部署过程只需将它们复制到EC2机器中的同一文件夹中。关键是使用/配置命令以指定所有文件夹来存储人工制品,并且有一个棘手的步骤,我使用自己的jpostal\U构建。sh而不是默认值:

    1、自定义“jpostal\u build.sh”有2行:

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

    2、主脚本“generate\u jpostal\u 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