#!/bin/bash set -eu -o pipefail [[ -f /.dockerenv ]] && { echo "Not supported in Docker. Upgrade the container instead"; exit 0; } new_cfg=/usr/local/etc/ncp-recommended.cfg [[ -f "${new_cfg}" ]] || { echo "Already on the lastest recommended distribution. Abort." >&2; exit 1; } APTINSTALL="apt-get install -y --no-install-recommends" export DEBIAN_FRONTEND=noninteractive echo " >>> ATTENTION <<< This is a dangerous process that is only guaranteed to work properly if you have not made manual changes in the system. Backup the SD card first and proceed at your own risk. Note that this is not a requirement for NCP to continue working properly. The current distribution will keep receiving updates for some time. Do you want to continue? [y/N]" read key [[ "$key" == y ]] || exit 0 source /usr/local/etc/library.sh # sets NCPCFG RELEASE PHPVER old_cfg="${NCPCFG}" trap "echo 'Something went wrong. Fix it and try again'" EXIT ncc maintenance:mode --on || true apt-get update apt-get upgrade -y # remove old PHP version set +e apt-get purge -y php${PHPVER} php${PHPVER}-curl php${PHPVER}-gd php${PHPVER}-fpm php${PHPVER}-cli php${PHPVER}-opcache \ php${PHPVER}-mbstring php${PHPVER}-xml php${PHPVER}-zip php${PHPVER}-fileinfo php${PHPVER}-ldap \ php${PHPVER}-intl php${PHPVER}-bz2 php${PHPVER}-json apt-get purge -y php${PHPVER}-mysql apt-get purge -y php${PHPVER}-redis apt-get purge -y php${PHPVER}-exif apt-get purge -y php${PHPVER}-imagick set -e # update sources sed -i 's/stretch/buster/g' /etc/apt/sources.list sed -i 's/stretch/buster/g' /etc/apt/sources.list.d/* rm -f /etc/apt/sources.list.d/php.list # install latest distro apt-get update apt-get dist-upgrade -y # install latest PHP version release_new=$(jq -r '.release' < "${new_cfg}") php_ver_new=$(jq -r '.php_version' < "${new_cfg}") $APTINSTALL -t ${release_new} php${php_ver_new} php${php_ver_new}-curl php${php_ver_new}-gd php${php_ver_new}-fpm php${php_ver_new}-cli php${php_ver_new}-opcache \ php${php_ver_new}-mbstring php${php_ver_new}-xml php${php_ver_new}-zip php${php_ver_new}-fileinfo php${php_ver_new}-ldap \ php${php_ver_new}-intl php${php_ver_new}-bz2 php${php_ver_new}-json $APTINSTALL php${php_ver_new}-mysql $APTINSTALL -t ${release_new} php${php_ver_new}-redis $APTINSTALL -t ${release_new} php-smbclient exfat-fuse exfat-utils $APTINSTALL -t ${release_new} php${php_ver_new}-exif #$APTINSTALL -t ${release_new} imagemagick php${php_ver_new}-imagick ghostscript apt-get autoremove -y apt-get clean # configure latest PHP version cat > /etc/php/${php_ver_new}/mods-available/opcache.ini < /etc/php/${php_ver_new}/fpm/conf.d/90-ncp.ini <