diff --git a/bootstrap.sh b/bootstrap.sh index ed99e49f342c7f18fb698949de7fe908c4a39fe8..3045b86f7ae57630a75b9e33823dad228603e0e3 100644 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -10,8 +10,7 @@ # - pgRouting # - osmosis # - osm2pgrouting -# into a centos6 (32bit, 64bit) or centos7 (64bit only) environment -# (fedora 20 might also work - in 32bit or 64bit versions - but is untested) +# into a centos6 (32bit and 64bit) or centos7 (64bit only) environment # # It can be used in the context of a Vagrantfile to configure a vagrant box and all # the installations can be configured using global variables (some packages are only @@ -44,6 +43,7 @@ INSTALL_HTTPD=true INSTALL_ISOCHRONE_LOCAL=false # installs isochrone from vagrant start directory (eclipse project) INSTALL_ISOCHRONE_RELEASE=true # installs latest isochrone release from nexus repository INSTALL_ISOCHRONE_SNAPSHOT=true # installs latest isochrone snapshot from nexus repository +INSTALL_ISOCHRONE_TOOLS=true # installs latest isochrone tools from nexus repository INSTALL_NEO4J=false INSTALL_NEO4J_SPATIAL=false INSTALL_PGROUTING=false @@ -101,7 +101,7 @@ WORKING_DIR=`pwd` #Armadillo from epel is too new for postgis (version 4 instead of 3), so use hard-coded file here ARMADILLO_FILE="armadillo-3.800.2-1.el6.x86_64.rpm" -ARMADILLO_URL="$CACHE_DIR_REMOTE/armadillo-3.800.2-1.el6.x86_64.rpm" +ARMADILLO_URL="$CACHE_DIR_REMOTE/$ARMADILLO_FILE" GEOSERVER_VERSION="2.6.2" GEOSERVER_FILE="geoserver-$GEOSERVER_VERSION-war.zip" GEOSERVER_DOWNLOAD_URL="http://sourceforge.net/projects/geoserver/files/GeoServer/$GEOSERVER_VERSION/$GEOSERVER_FILE" @@ -111,11 +111,11 @@ JAVA_VERSION="8u31" JAVA_FILE_32="jdk-$JAVA_VERSION-linux-i586.rpm" JAVA_FILE_64="jdk-$JAVA_VERSION-linux-x64.rpm" JAVA_CRYPTO_FILE="jce_policy-8.zip" -MAVEN_VERSION="3.2.2" +MAVEN_VERSION="3.2.5" MAVEN_FILE="apache-maven-$MAVEN_VERSION-bin.zip" MAVEN_DOWNLOAD_URL="http://tweedo.com/mirror/apache/maven/maven-3/$MAVEN_VERSION/binaries/$MAVEN_FILE" NEO4J_DB_USER="neo4j" -NEO4J_VERSION="2.1.6" +NEO4J_VERSION="2.1.7" NEO4J_FILE="neo4j-community-$NEO4J_VERSION-unix.tar.gz" NEO4J_DOWNLOAD_URL="http://dist.neo4j.org/$NEO4J_FILE" NEO4J_SERVICE_NAME="neo4j-service" @@ -123,12 +123,14 @@ NEO4J_SPATIAL_GIT_URL="https://github.com/neo4j/spatial.git" NEO4J_SPATIAL_VERSION="0.13-neo4j-2.1" NEO4J_SPATIAL_PLUGIN_DOWNLOAD_URL="http://dist.neo4j.org.s3.amazonaws.com/spatial/neo4j-spatial-$NEO4J_SPATIAL_VERSION-server-plugin.zip" NEXUS_ARTIFACT_NAME="isochrone-web" +NEXUS_ARTIFACT_NAME_TOOLS="isochrone-tools" NEXUS_BASE_URL="http://138.232.66.78/nexus" NEXUS_PUBLIC_REPO="isochrone" #NEXUS_PUBLIC_REPO="public" NEXUS_RELEASE_ISOCHRONE="$NEXUS_BASE_URL/service/local/artifact/maven/content?r=$NEXUS_PUBLIC_REPO&g=at.uibk.dbis&a=$NEXUS_ARTIFACT_NAME&v=RELEASE&p=war" #NEXUS_RELEASE_ISOCHRONE="$NEXUS_BASE_URL/service/local/artifact/maven/content?r=$NEXUS_PUBLIC_REPO&g=at.uibk.dbis&a=$NEXUS_ARTIFACT_NAME&v=0.2.2&p=war" NEXUS_SNAPSHOT_ISOCHRONE="$NEXUS_BASE_URL/service/local/artifact/maven/content?r=$NEXUS_PUBLIC_REPO&g=at.uibk.dbis&a=$NEXUS_ARTIFACT_NAME&v=LATEST&p=war" +NEXUS_SNAPSHOT_ISOCHRONE_TOOLS="$NEXUS_BASE_URL/service/local/artifact/maven/content?r=$NEXUS_PUBLIC_REPO&g=at.uibk.dbis&a=$NEXUS_ARTIFACT_NAME_TOOLS&v=LATEST&c=static&p=jar" NEXUS_YUM_REPO="http://www.krismer.de/files/krismer.repo" #OSM_BBOX_BZ="top=46.5200 left=11.3000 bottom=46.4500 right=11.3873" #OSM_BBOX_IBK="top=47.3592 left=11.3020 bottom=47.2108 right=11.4554" @@ -155,7 +157,7 @@ OSMOSIS_FILE="osmosis-$OSMOSIS_VERSION.zip" OSMOSIS_DOWNLOAD_URL="http://bretth.dev.openstreetmap.org/osmosis-build/$OSMOSIS_FILE" POSTGIS_GIT_URL="https://github.com/postgis/postgis.git" POSTGIS_VERSION="auto" # activate to install from repository -#POSTGIS_VERSION="2.1.3" # activate to install from source +#POSTGIS_VERSION="2.1.5" # activate to install from source POSTGRESQL_DATA_DIR="/var/lib/pgsql/data" POSTGRESQL_SERVICE_NAME="postgresql" POSTGRESQL_SHORT_VERSION="" @@ -165,12 +167,12 @@ PGROUTING_VERSION="auto" # activate to install from repository #PGROUTING_VERSION="2.0.0" # activate to install from source REPO_ELGIS="none" REPO_EPEL="none" -REPO_POSTGRESQL="" # will be set later (depending on architecture) +REPO_POSTGRESQL="none" # will be set later (depending on architecture) REPO_POSTGRESQL_32="auto" REPO_POSTGRESQL_64="auto" -REPO_RPMFORGE="" # will be set later (depending on architecture) -REPO_RPMFORGE_32="http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm" -REPO_RPMFORGE_64="http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm" +REPO_RPMFORGE="none" # will be set later (depending on architecture) +REPO_RPMFORGE_32="auto" +REPO_RPMFORGE_64="auto" REPO_RPMFORGE_CONFIG="/etc/yum.repos.d/rpmforge.repo" SELINUX_CONFIG="/etc/selinux/config" TABLE_PREFIX_BZ="bz_" @@ -182,7 +184,7 @@ TEMPLATE_PSIPROBE_VERSION="2.3.3" TEMPLATE_PSIPROBE_FILE="probe-$TEMPLATE_PSIPROBE_VERSION.zip" TEMPLATE_PSIPROBE_DOWNLOAD_URL="https://psi-probe.googlecode.com/files/$TEMPLATE_PSIPROBE_FILE" TEMPLATE_DIR_ISOCHRONE="/vagrant" -TOMCAT_VERSION="8.0.18" +TOMCAT_VERSION="8.0.20" TOMCAT_FILE="apache-tomcat-$TOMCAT_VERSION.tar.gz" TOMCAT_DOWNLOAD_URL="http://tweedo.com/mirror/apache/tomcat/tomcat-8/v$TOMCAT_VERSION/bin/$TOMCAT_FILE" TOMCAT_MEMORY_OPTS="-Xmx2048m -Xms512m" @@ -207,7 +209,7 @@ fi DISTRI_NAME=$(cat "$DISTRI_FILE" | head -n 1) DISTRI_SUPPORTED=false -DISTRI_TYPE="Fedora 20" +DISTRI_TYPE="" DISTRI=$(printf "$DISTRI_NAME" | cut -d " " -f 1) if [ "$DISTRI" == "CentOS" ]; then POSTGRESQL_SHORT_VERSION="94" @@ -218,23 +220,21 @@ if [ "$DISTRI" == "CentOS" ]; then REPO_EPEL="http://mirror.vutbr.cz/epel/6/i386/epel-release-6-8.noarch.rpm" REPO_POSTGRESQL_32="http://yum.postgresql.org/$POSTGRESQL_VERSION/redhat/rhel-6-i386/pgdg-centos$POSTGRESQL_SHORT_VERSION-$POSTGRESQL_VERSION-1.noarch.rpm" REPO_POSTGRESQL_64="http://yum.postgresql.org/$POSTGRESQL_VERSION/redhat/rhel-6-x86_64/pgdg-centos$POSTGRESQL_SHORT_VERSION-$POSTGRESQL_VERSION-1.noarch.rpm" + REPO_RPMFORGE_32="http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm" + REPO_RPMFORGE_64="http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm" DISTRI_SUPPORTED=true elif printf "$DISTRI_NAME" | egrep -q " 7." ; then DISTRI_TYPE="CentOS 7" - ARMADILLO_FILE="" + ARMADILLO_FILE="none" REPO_EPEL="http://mirror.vutbr.cz/epel/7/x86_64/e/epel-release-7-5.noarch.rpm" REPO_POSTGRESQL_64="http://yum.postgresql.org/$POSTGRESQL_VERSION/redhat/rhel-7-x86_64/pgdg-centos$POSTGRESQL_SHORT_VERSION-$POSTGRESQL_VERSION-1.noarch.rpm" REPO_RPMFORGE_64="http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm" DISTRI_SUPPORTED=$IS_64_BIT fi -elif [ "$DISTRI" == "Fedora"]; then - if echo $DISTRI_NAME | egrep -q " 20 (Heisenbug)" ; then - DISTRI_SUPPORTED=true - fi fi if ! $DISTRI_SUPPORTED; then - echo "Unsupported OS. Only CentOS 6, CentOS 7 (64bit) and Fedora 20 are supported!" + echo "Unsupported OS. Only CentOS 6 (32bit and 64bit) and CentOS 7 (64bit) are supported!" exit 1; fi @@ -263,7 +263,7 @@ fi if $INSTALL_NEO4J_SPATIAL; then INSTALL_MAVEN=$IMPORT_DATA_OSM || $IMPORT_DATA_OSM_CACHED fi -if $INSTALL_TOMCAT || $INSTALL_GEOSERVER || $INSTALL_NEO4J || $INSTALL_NEO4J_SPATIAL || $IMPORT_DATA_OSM; then +if $INSTALL_ISOCHRONE_TOOLS || $INSTALL_TOMCAT || $INSTALL_GEOSERVER || $INSTALL_NEO4J || $INSTALL_NEO4J_SPATIAL || $IMPORT_DATA_OSM; then INSTALL_JAVA=true fi if $INSTALL_PGROUTING; then @@ -528,9 +528,6 @@ echo " Bootstrapping the VM:" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo "Operating system $DISTRI_NAME" echo " - osType: $DISTRI_TYPE" -if [ "$DISTRI_TYPE" == "Fedora 20" ]; then - echo " - using untested operating system!!" -fi if $IS_LOCAL_TEST_DEPLOY; then echo "Starting in local test deploy mode"; fi echo "Installing software:" if $INSTALL_HTTPD; then echo " - apache webserver"; fi @@ -562,6 +559,7 @@ if $IMPORT_SCHEDULES; then echo "Importing schedules"; fi if $INSTALL_ISOCHRONE_LOCAL; then echo "Importing project \"isochrone (local testing)\""; fi if $INSTALL_ISOCHRONE_RELEASE; then echo "Importing project \"isochrone (release)\""; fi if $INSTALL_ISOCHRONE_SNAPSHOT; then echo "Importing project \"isochrone (testing)\""; fi +if $INSTALL_ISOCHTONE_TOOLS; then echo "Importing project \"isochrone-tools\""; fi if $INSTALL_PROJECT_PSIPROBE; then echo "Importing project \"psi-probe\""; fi echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo " Performing installations:" @@ -586,7 +584,7 @@ if $INSTALL_POSTGRES; then fi if $INSTALL_POSTGIS; then - if [ "$ARMADILLO_FILE" != "" ]; then + if [ "$ARMADILLO_FILE" != "none" ]; then fn_download_newer $DOWNLOAD_DIR/$ARMADILLO_FILE "$ARMADILLO_URL" yum -y localinstall $DOWNLOAD_DIR/$ARMADILLO_FILE >> install_armadillo.log 2>&1 fi @@ -726,7 +724,6 @@ if $INSTALL_ISOCHRONE_RELEASE; then echo "Installing template project \"isochrone (release)\"" echo " - artifact: $NEXUS_RELEASE_ISOCHRONE" - # we do not save this file in download dir (we do not want caching for isochrone.war) fn_download $DOWNLOAD_DIR/isochrone.war $NEXUS_RELEASE_ISOCHRONE cp $DOWNLOAD_DIR/isochrone.war $TOMCAT_WEBAPP_DIR/isochrone.war unzip -o -d $TOMCAT_WEBAPP_DIR/isochrone $TOMCAT_WEBAPP_DIR/isochrone.war >> install_isochrone_release.log 2>&1 @@ -737,13 +734,19 @@ if $INSTALL_ISOCHRONE_SNAPSHOT; then echo "Installing template project \"isochrone (testing)\"" echo " - artifact: $NEXUS_SNAPSHOT_ISOCHRONE" - # we do not save this file in download dir (we do not want caching for testing.war) fn_download $DOWNLOAD_DIR/testing.war $NEXUS_SNAPSHOT_ISOCHRONE cp $DOWNLOAD_DIR/testing.war $TOMCAT_WEBAPP_DIR/testing.war unzip -o -d $TOMCAT_WEBAPP_DIR/testing $TOMCAT_WEBAPP_DIR/testing.war >> install_isochrone_snapshot.log 2>&1 rm -f $TOMCAT_WEBAPP_DIR/testing.war >> install_isochrone_snapshot.log 2>&1 fi +if $INSTALL_ISOCHRONE_TOOLS; then + echo "Installing \"isochrone-tools\"" + echo " - artifact: $NEXUS_SNAPSHOT_ISOCHRONE_TOOLS" + + fn_download $DOWNLOAD_DIR/isochrone-tools.jar $NEXUS_SNAPSHOT_ISOCHRONE_TOOLS +fi + if $INSTALL_PROJECT_PSIPROBE; then echo "Installing template project \"psi-probe\" version $TEMPLATE_PSIPROBE_VERSION" echo " - artifact: $TEMPLATE_PSIPROBE_DOWNLOAD_URL" @@ -952,6 +955,7 @@ if $IMPORT_DATA; then echo " Importing data:" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + # Import real world datasets fn_import_data "Bozen" "$OSM_FILE_ITALY" "$OSM_FILE_BZ_FILTERED" "$OSM_BBOX_BZ" "bz_export.sql.gz" "$TABLE_PREFIX_BZ" fn_import_data "Innsbruck" "$OSM_FILE_AUSTRIA" "$OSM_FILE_IBK_FILTERED" "$OSM_BBOX_IBK" "" "$TABLE_PREFIX_IBK" fn_import_data "San Francisco" "$OSM_FILE_CALIFORNIA" "$OSM_FILE_SF_FILTERED" "$OSM_BBOX_SF" "sf_export.sql.gz" $TABLE_PREFIX_SF @@ -960,6 +964,12 @@ if $IMPORT_DATA; then # fn_import_data "Alto Adige" "$OSM_FILE_ITALY" "$OSM_FILE_ST_FILTERED" "$OSM_BBOX_ST" "st_export.sql.gz" $TABLE_PREFIX_ST # fi + # Generate synthetic data + if $INSTALL_POSTGIS && $INSTALL_ISOCHRONE_TOOLS; then + java -cp $DOWNLOAD_DIR/isochrone-tools.jar at.uibk.dbis.isochrone.generator.GridNetworkGenerator -d 100 -l 60 > "$WORKING_DIR/generate_gridNetwork.log" 2>&1 + java -cp $DOWNLOAD_DIR/isochrone-tools.jar at.uibk.dbis.isochrone.generator.SpiderNetworkGenerator -d 6 -lvl 1000 -l 60 > "$WORKING_DIR/generate_spiderNetwork.log" 2>&1 + fi + if $INSTALL_GEOSERVER; then if $INSTALL_NEO4J_SPATIAL; then echo "Configuring neo4j data permissions for geoserver"