#!/bin/bash ##makedesc: Install composer (latest) echo echo "===============================================" echo "Installing composer (latest)..." echo "===============================================" echo installed() { command -v "$1" >/dev/null 2>&1 } if installed "php"; then if installed "composer"; then echo "WARNING: You already have composer installed - removing to install actual version" sudo apt remove -y --autoremove composer sudo rm -f /bin/composer sudo rm -f /usr/bin/composer sudo rm -f /usr/local/bin/composer sudo rm -rf /usr/src/composer fi sudo mkdir -m 0777 -p /usr/src/composer cd /usr/src/composer # https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')" sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then >&2 echo 'ERROR: Invalid installer checksum' rm composer-setup.php exit 1 fi php composer-setup.php --quiet sudo cp /usr/src/composer/composer.phar /usr/local/bin/composer cd - >/dev/null sudo rm -rf /usr/src/composer/ installed "composer" && composer --version else echo "WARNING: You need to have php installed" fi # title "Installing composer.phar in home dir..." # cd ~ # EXPECTED_SIGNATURE="$(wget -q -O - https://composer.github.io/installer.sig)" # php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" # ACTUAL_SIGNATURE="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" # if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ] # then # >&2 echo 'ERROR: Invalid installer signature' # rm composer-setup.php # exit 1 # fi # php composer-setup.php --quiet # RESULT=$? # rm composer-setup.php