diff --git a/bin/install_rasdaman.sh b/bin/install_rasdaman.sh index 1bf182bf0..1e07e4702 100755 --- a/bin/install_rasdaman.sh +++ b/bin/install_rasdaman.sh @@ -33,136 +33,24 @@ USER_HOME="/home/$USER_NAME" RMANHOME=/opt/rasdaman -TOMCAT_WEBAPPS=/var/lib/tomcat9/webapps -TOMCAT_SVC=tomcat9 - -setup_rasdaman_repo() -{ - echo "Setup rasdaman package repository..." - # add rasdaman public key - local rasdaman_pkgs_url="http://download.rasdaman.org/packages" - wget -q -O - "$rasdaman_pkgs_url/rasdaman.gpg" | apt-key add - \ - || { echo "Failed importing rasdaman GPG key."; return 1; } - # add rasdaman repo - local codename="$1" - local release="$2" - echo "deb [arch=amd64] $rasdaman_pkgs_url/deb $codename $release" > /etc/apt/sources.list.d/rasdaman.list -} - -unpack_war_file() -{ - # unpacks $1.war into a directory $1, and removes $1.war - local war_name="$1" - local war_file="$war_name.war" - pushd "$TOMCAT_WEBAPPS" - if [ -f "$war_file" ]; then - mkdir -p "$war_name" - mv "$war_file" "$war_name" - pushd "$war_name" - unzip "$war_file" && rm -f "$war_file" # extract - popd - fi - popd -} - -delete_not_needed_files() -{ - # remove development stuff - for f in lib include share/rasdaman/war share/rasdaman/raswct; do - rm -rf $RMANHOME/$f - done - # remove development docs - rm -rf $RMANHOME/share/rasdaman/doc/doc-* - rm -rf $RMANHOME/share/rasdaman/doc/manuals - # remove html docs (20MB), still remaining pdf docs (5MB) - rm -rf $RMANHOME/share/rasdaman/doc/html - # remove unneeded demo data, was inserted during installation - rm -rf $RMANHOME/share/rasdaman/petascope/petascope_insertdemo_data - # remove unneeded javascript code - rm -rf $RMANHOME/share/rasdaman/www/rasql-web-console - # strip executables - for e in rascontrol rasql rasserver rasmgr; do - strip --strip-unneeded $RMANHOME/bin/$e > /dev/null 2>&1 || true - done - - # remove secore as it takes up 250 MB, use remote service - sed -i 's|secore_urls=.*|secore_urls=https://ows.rasdaman.org/def,http://www.opengis.net/def|' \ - /opt/rasdaman/etc/petascope.properties - rm -rf $TOMCAT_WEBAPPS/def.war $TOMCAT_WEBAPPS/def $TOMCAT_WEBAPPS/secoredb -} - install_rasdaman_pkg() { - echo "Install rasdaman package..." - apt-get -qq update -y - # automate any configuration update dialog - export DEBIAN_FRONTEND=noninteractive - sudo apt-get install -y $TOMCAT_SVC - apt-get -o Dpkg::Options::="--force-confdef" install -y rasdaman \ - || { echo "Failed installing rasdaman package."; return 1; } - # make sure the rasdaman package is not removed by apt-get autoremove - echo "rasdaman hold" | dpkg --set-selections - # apt-mark manual rasdaman - delete_not_needed_files - - # -------- - # need to unpack the war files (tomcat doesn't do it which causes issues) - unpack_war_file rasdaman - service $TOMCAT_SVC restart - # -------- - - echo - echo "Rasdaman package installed successfully." - echo -} - -rasdaman_service() -{ - local cmd=$1 - sudo -u rasdaman /opt/rasdaman/bin/${cmd}_rasdaman.sh - sleep 2 -} - -replace_rasdaman_user_with_system_user() -{ - local rasdaman_user=rasdaman - local rasdaman_group=rasdaman - echo "Replacing regular user '$rasdaman_user' with a system user..." - - # stop rasdaman service first, otherwise userdel will fail - rasdaman_service stop - - userdel $rasdaman_user || { echo "Failed removing rasdaman user."; return 1; } - groupdel $rasdaman_group > /dev/null 2>&1 - - adduser --system --group --home /opt/rasdaman --no-create-home --shell /bin/bash $rasdaman_user - chown -R $rasdaman_user:$rasdaman_group /opt/rasdaman - # this directory is owned by an invalid uid after the user change, it can be just deleted - rm -rf /tmp/rasdaman_* - # add rasdaman user to tomcat group - adduser $rasdaman_user tomcat - # and user to rasdaman group - adduser $USER_NAME $rasdaman_group - - rasdaman_service start + local archive="rasdaman-osgeolive-package.tar.gz" + local archive_url="http://kahlua.eecs.jacobs-university.de/~earthlook/osgeo/$archive" + + echo "Installing rasdaman into $RMANHOME..." + mkdir -p $RMANHOME + pushd $RMANHOME > /dev/null + wget -q "$archive_url" -O - | tar xz + echo "Installed size: $(du -sh .)" + chown -R $USER_NAME: $RMANHOME + popd > /dev/null } -create_bin_starters() +install_rasdaman_dependencies() { - echo "Creating starting scripts..." - cat > $RMANHOME/bin/rasdaman-start.sh < $RMANHOME/bin/rasdaman-stop.sh < "$dst" <> "$USER_HOME/.bashrc" + echo "export RASDATA=\$RMANHOME/data" >> "$USER_HOME/.bashrc" + echo "export PATH=\$PATH:\$RMANHOME/bin" >> "$USER_HOME/.bashrc" +} + deploy_local_earthlook() { echo "Deploying local earthlook..." - local tmp_dir=/tmp/earthlook - local data_url="http://kahlua.eecs.jacobs-university.de/~earthlook/osgeo/earthlook.tar.gz" - - mkdir -p "$tmp_dir" - pushd "$tmp_dir" > /dev/null - # download data - wget -q "$data_url" -O earthlook.tar.gz - # extract - tar xzf earthlook.tar.gz - rm -rf earthlook.tar.gz + local tmp_dir=$RMANHOME/earthlook local rasdaman_demo_path="/var/www/html/rasdaman-demo" rm -rf "$rasdaman_demo_path" @@ -236,50 +150,30 @@ deploy_local_earthlook() # deploy mv "$tmp_dir" "$rasdaman_demo_path" chmod 755 "$rasdaman_demo_path" - popd > /dev/null - - # start tomcat and rasdaman - service $TOMCAT_SVC start - sleep 10 - - # Then import the selected coverages from Earthlook demo-data to local petascope - # to be used for some demos which use queries on these small coverages. - # (total size for Earthlook demo pages + data in tar file should be < 15 MB). - "$rasdaman_demo_path/insert_demo_data.sh" 2>&1 } -add_rasdaman_path_to_bashrc() +update_libgdal_java() { - echo "Add rasdaman profile to the user's bashrc..." - echo "source /etc/profile.d/rasdaman.sh" >> "$USER_HOME/.bashrc" - # To find path to wcst_import.sh when deploying Earthlook - source /etc/profile.d/rasdaman.sh + # copy v3.2 of libgdal-java jni libs, see https://trac.osgeo.org/osgeolive/ticket/2288 + local v32="$RMANHOME/libgdal-java" + if [ -d "$v32" ]; then + mkdir -p /usr/lib/jni/ + mv $v32/* /usr/lib/jni/ && \ + rm -rf $v32 + fi } # # Install and setup demos # -setup_rasdaman_repo "focal" "nightly" install_rasdaman_pkg - -replace_rasdaman_user_with_system_user -create_bin_starters +install_rasdaman_dependencies +install_systemd_unit create_desktop_applications add_rasdaman_path_to_bashrc deploy_local_earthlook - -rasdaman_service stop -service $TOMCAT_SVC stop - - -mv /etc/apt/sources.list.d/rasdaman.list /etc/apt/sources.list.d/rasdaman.list.disabled -apt-get -qq update -y - -# echo "Rasdaman command log:" -# echo "===============================================" -# cat /tmp/rasdaman.install.log -# echo "===============================================" +update_libgdal_java #### "$BUILD_DIR"/diskspace_probe.sh "`basename $0`" end