taler-deployment

Deployment scripts and configuration files
Log | Files | Refs | README

install_packages.sh (2664B)


      1 #!/bin/bash
      2 # This file is in the public domain.
      3 
      4 set -eu
      5 
      6 source functions.sh
      7 
      8 detect_distro
      9 
     10 # Debian package architecture (do not hardcode amd64 — arm64 trixie has binary-arm64)
     11 APT_ARCH=$(dpkg --print-architecture)
     12 
     13 # Program versions
     14 PG_VERSION=$( ./postgres_version.sh )
     15 
     16 if [[ "$PG_VERSION" -lt 15 ]]
     17 then
     18   echo "Available postgresql version $PG_VERSION is too old"
     19   exit 1
     20 fi
     21 
     22 
     23 say "Installing necessary packages (this may take a while)..."
     24 
     25 ## Update
     26 
     27 apt-get update &>> setup.log
     28 
     29 ## General requirements
     30 
     31 apt-get install \
     32   uuid-runtime \
     33   make \
     34   sudo \
     35   curl \
     36   jq \
     37   wget \
     38   nginx \
     39   gettext-base \
     40   "postgresql-${PG_VERSION}" \
     41   "postgresql-client-${PG_VERSION}" \
     42   dbconfig-pgsql \
     43   certbot \
     44   python3-sphinx \
     45   python3-pip \
     46   python3-certbot-nginx -y &>> setup.log
     47 
     48 # These extra packages are used by the setup scripts
     49 pip3 install --break-system-packages \
     50      argon2-cffi \
     51      sphinx-markdown-builder \
     52      pycryptodome &>> setup.log
     53 
     54 ## Add GNU Taler deb.taler.net to /etc/apt/sources.list
     55 
     56 say "Adding GNU Taler apt repository"
     57 say "Detected distro $DISTRO"
     58 
     59 case $DISTRO in
     60 debian)
     61   if test "${APT_TESTING:-n}" == y; then
     62     cat >/etc/apt/sources.list.d/taler.sources <<EOF
     63 Architectures: $APT_ARCH
     64 Components: main
     65 X-Repolib-Name: Taler
     66 Signed-By: /etc/apt/keyrings/taler-systems.gpg
     67 Suites: $VERSION_CODENAME-testing
     68 Types: deb
     69 URIs: https://deb.taler.net/apt/debian
     70 EOF
     71     say "Setup $VERSION_CODENAME-testing packages ($APT_ARCH)"
     72     wget -O /etc/apt/keyrings/taler-systems.gpg https://taler.net/taler-systems.gpg &>> setup.log
     73   else
     74     cat >/etc/apt/sources.list.d/taler.sources <<EOF
     75 Architectures: $APT_ARCH
     76 Components: main
     77 X-Repolib-Name: Taler
     78 Signed-By: /etc/apt/keyrings/taler-systems.gpg
     79 Suites: $VERSION_CODENAME
     80 Types: deb
     81 URIs: https://deb.taler.net/apt/debian
     82 EOF
     83     say "Setup $VERSION_CODENAME packages ($APT_ARCH)"
     84     wget -O /etc/apt/keyrings/taler-systems.gpg https://taler.net/taler-systems.gpg &>> setup.log
     85   fi
     86   ;;
     87 ubuntu)
     88   echo "deb [arch=$APT_ARCH signed-by=/etc/apt/keyrings/taler-systems.gpg] https://deb.taler.net/apt/ubuntu $VERSION_CODENAME main" >/etc/apt/sources.list.d/taler.list
     89   wget -O /etc/apt/keyrings/taler-systems.gpg https://taler.net/taler-systems.gpg &>> setup.log
     90   ;;
     91 *)
     92   say "Unsupported distro: $DISTRO"
     93   exit 1
     94   ;;
     95 esac
     96 
     97 ## Specific GNU Taler packages
     98 
     99 say "Installing GNU Taler packages (this may take a while)..."
    100 
    101 apt-get update &>> setup.log
    102 apt-get install \
    103   taler-exchange \
    104   taler-terms-generator \
    105   taler-merchant \
    106   taler-harness \
    107   taler-wallet-cli \
    108   taler-exchange-offline \
    109   libeufin-bank \
    110   libeufin-nexus \
    111   -y \
    112   &>> setup.log