Description
Je ne présenterais ni PHP, ni composer…
Installation
pkg_add -v composer
Après l’installation de Composer, faites une mise à jour de lui-même :
composer self-update
Configuration
De même, je ne détaillerais pas la configuration ni de PHP, ni de Composer, d’autant que par défaut pour ce dernier, il n’y a rien à faire en soit - il est bien sûr possible de configurer certaines options…
Diagnostic
Pour finir, on exécute ensuite un petit diagnostic :
$ composer diagnose
Checking platform settings: OK
Checking git settings: OK git version 2.46.1
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking github.com rate limit: OK
Checking disk free space: OK
Checking pubkeys:
Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0 87719BA6 8F3BB723 4E5D42D0 84A14642
Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B 0C708369 153E328C AD90147D AFE50952
OK
Checking Composer version: OK
Checking Composer and its dependencies for vulnerabilities: OK
Composer version: 2.8.6
PHP version: 8.2.28
PHP binary path: /usr/local/bin/php-8.2
OpenSSL version: LibreSSL 4.0.0
curl version: 8.12.0 libz 1.3.1.1-motley ssl LibreSSL/4.0.0
zip: extension present, unzip present, 7-Zip not available
Tous les voyants sont OK, Composer a la dernière version en cours, et il s’exécute bien avec la version de PHP désirée
Dépannage
PHP 7
Pour information, par défaut, Composer est configuré pour être exécuté avec php-7.0 sous la 6.4, et php-7.1 sous 6.5 - qu’il installe en dépendances (avec femail*)
Le problème qui se pose est que si vous utilisez php-7.2, voire php-7.3, Composer s’exécutera avec l’environnement PHP pour lequel il est paramétré par défaut - logique, vous me direz !
Alors, comment le contraindre ?
Très facilement :
# sed -i -e "s/php-7.x/php-7.y/" "$(which composer)"
où :
7.xest votre installation PHP par défaut,- et
7.yla version de PHP que vous préférez utiliser, telle que 7.2, par exemple…
Error: Do not run Composer as root/super user
Et, oui, il n’est pas recommandé d'exécuter Composer avec des droits d'administrateurs - alors ne le faites pas !
Plus d’informations, sur : https://getcomposer.org/root
Error: Missing pubkey for…
Il est possible que lors du diagnostique, vous vous retrouvez avec ce message d’erreur sur fond rouge :
Checking pubkeys: FAIL
Missing pubkey for tags verification
Missing pubkey for dev verification
Run composer self-update --update-keys to set them up
Il vous dit quoi faire !!!
Donc :
$ composer self-update --update-keys
Open https://composer.github.io/pubkeys.html to find the latest keys
Enter Dev / Snapshot Public Key (including lines with -----):
Là, le shell reste en attente jusqu’à ce que vous lui copiez la clé demandée, que vous trouverez sur https://composer.github.io/pubkeys.html, puisqu’il a même la gentillesse de vous le dire !
Il vous demande de rentrer dans un premier temps, la clé Dev / Snapshot Public,
puis une fois validée, vous demandera d’intégrer la clé Tags Public.
Et pour finir vous dira dans quel répertoire personnel, elles seront enregistrées.
Si l’entrée saisie n’est pas correcte, vous aurez un message d’erreur : Invalid input,
il vous sera redemandé de faire la saisie !
Error: curl version: missing…
Si le test se plaint que la version de curl est manquante, tel que :
curl version: missing, using php streams fallback, which reduces performance
Vérifiez si vous avez installé le paquet php-curl correspondant à votre version
de PHP, et que vous avez bien lié le binaire dans le répertoire correspondant à
votre version de PHP, tel que (par exemple) :
doas ln -sf /etc/php-8.2.sample/curl.ini /etc/php-8.2/; done
Puis relancez le diagnostic ;)