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.x
est votre installation PHP par défaut,- et
7.y
la 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 ;)