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