Mise à jour / Installation de composer

BUT : Installation ou mise à jour de la commande composer

composer est un gestionnaire de dépendance pour les projets php. Il permet de gérer les modules/paquets à installer ou à mettre à jour pour vos projets (exemple laravel, etc).
Sous ubuntu l’installation via apt installe la version 1.x de composer et non pas la version 2.x
Voici un petit script qui va installer (ou mettre à jour) composer :

#!/bin/bash
#
#    Installation ou Mise à Jour de composer
#

# relance automatiquement ce script en mode root si user standard
[ ! $UID -eq 0 ] && echo "Lancement en mode ROOT" && sudo $0 "$@" && exit

echo "Installation de 'composer' v2"

# récupération de la version de composer (0 si non installé)
[ ! "$(command -v composer)" ] && COMPOSER_VERSION=0 || COMPOSER_VERSION=$(composer -V | sed -e "s/version //g" | cut -d " " -f 2 | cut -d "." -f 1)

if [ $COMPOSER_VERSION -eq 2 ]
then
  # version 2
  echo "composer v2 : pas de mise à jour"
else
  # version 1 ou non installée
  [ $COMPOSER_VERSION -eq 1 ] && [ -f /usr/bin/composer ] && echo "composer v1 : mise à jour" && mv /usr/bin/composer /usr/bin/composer-v1
  # récupération checksum du dernier script
  EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')"
  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: la checksum de l'installateur est invalide"
    rm composer-setup.php
    exit 1
  fi
  echo "composer v2 : installation"
  php composer-setup.php --quiet
  RESULT=$?
  rm composer-setup.php
  [ $RESULT -eq 0 ] && echo "composer v2 : installée"
fi
Enregistrez le fichier avec CTRL + O (la touche o pas zéro)

Sortir de l’éditeur nano avec CTRL + X

Rendre exécutable le script :

Puis lancer le script :

Lancement en mode ROOT
[sudo] password for bzg: 
Installation de 'composer' v2
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Continue as root/super user [yes]? yes

Si composer existe déjà il va dire qu’il ne faut pas le lancer en mode root, répondre ‘yes’ car composer n’est utilisé ici que pour connaitre sa version

composer sera soit installé ou mis à jour si besoin avec ce script que vous pourrez installer sur tous vos serveurs utilisant laravel, symphony ou tout autre projet utilisant composer