1 (edited by arcenterre 2021-06-29 13:50:32)

Topic: Utilisation de composer

Salut,

j'ai un petit problème sur l'espace web : en vue d'installer PrettyNoémieCMS  j'ai installé Composer en suivant les indications de la FAQ. J'ai donc installé composer dans le dossier ~/arcenterre1/tools/composer/

Suite à quoi j'ai suivi les instructions du README pour installer les dépendances du CMS, or l'installation se passe mal sans que je puisse me l'expliquer.

cd ~/arcenterre1/arcenterre.tuxfamily.org-web/htdocs/pretty

php ~/arcenterre1/tools/composer/composer.phar install

Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Package operations: 26 installs, 0 updates, 0 removals
  - Installing bcosca/fatfree (3.7.1): Extracting archive
  - Installing doctrine/lexer (1.2.0): Extracting archive
  - Installing ezyang/htmlpurifier (v4.12.0): Extracting archive
  - Installing psr/container (1.0.0): Extracting archive
  - Installing symfony/service-contracts (v2.0.1): Extracting archive
  - Installing symfony/stopwatch (v5.0.2): Extracting archive
  - Installing symfony/process (v5.0.2): Extracting archive
  - Installing symfony/polyfill-php72 (v1.13.1): Extracting archive
  - Installing paragonie/random_compat (v9.99.99): Extracting archive
  - Installing symfony/polyfill-php70 (v1.13.1): Extracting archive
  - Installing symfony/options-resolver (v5.0.2): Extracting archive
  - Installing symfony/finder (v5.0.2): Extracting archive
  - Installing symfony/polyfill-ctype (v1.13.1): Extracting archive
  - Installing symfony/filesystem (v5.0.2): Extracting archive
  - Installing psr/event-dispatcher (1.0.0): Extracting archive
  - Installing symfony/event-dispatcher-contracts (v2.0.1): Extracting archive
  - Installing symfony/event-dispatcher (v5.0.2): Extracting archive
  - Installing symfony/polyfill-php73 (v1.13.1): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.13.1): Extracting archive
  - Installing symfony/console (v5.0.2): Extracting archive
  - Installing php-cs-fixer/diff (v1.3.0): Extracting archive
  - Installing doctrine/annotations (v1.8.0): Extracting archive
  - Installing psr/log (1.1.2): Extracting archive
  - Installing composer/xdebug-handler (1.4.0): Extracting archive
  - Installing composer/semver (1.5.0): Extracting archive
  - Installing friendsofphp/php-cs-fixer (v2.16.1): Extracting archive
    Install of doctrine/lexer failed
    Install of psr/container failed
    Install of symfony/service-contracts failed
    Install of symfony/stopwatch failed
    Install of symfony/process failed
    Install of symfony/polyfill-php72 failed
    Install of paragonie/random_compat failed
    Install of symfony/polyfill-php70 failed
  0/18 [>---------------------------]   0%    Install of symfony/polyfill-ctype failed
    Install of symfony/event-dispatcher-contracts failed
    Install of symfony/polyfill-php73 failed
  3/18 [====>-----------------------]  16%    Install of symfony/filesystem failed
    Install of psr/event-dispatcher failed
    Install of symfony/event-dispatcher failed
  6/18 [=========>------------------]  33%    Install of symfony/options-resolver failed
  7/18 [==========>-----------------]  38%    Install of symfony/polyfill-mbstring failed
  8/18 [============>---------------]  44%    Install of symfony/finder failed
    Install of composer/xdebug-handler failed
 10/18 [===============>------------]  55%    Install of bcosca/fatfree failed
 11/18 [=================>----------]  61%    Install of composer/semver failed
 12/18 [==================>---------]  66%    Install of psr/log failed
 13/18 [====================>-------]  72%    Install of doctrine/annotations failed
 14/18 [=====================>------]  77%    Install of php-cs-fixer/diff failed
 15/18 [=======================>----]  83%    Install of symfony/console failed
 16/18 [========================>---]  88%    Install of ezyang/htmlpurifier failed
 17/18 [==========================>-]  94%    Skipped installation of bin php-cs-fixer for package friendsofphp/php-cs-fixer: file not found in package
    Install of friendsofphp/php-cs-fixer failed
 18/18 [============================] 100%
                                                                                                   
  [RuntimeException]                                                                               
  Could not delete /home/arcenterre1/arcenterre.tuxfamily.org-web/htdocs/pretty/vendor/composer/

Est-ce que l'architecture de tuxfamily ou mon installation de composer pourraient etre en cause ? S'agirait-il d'un problème de droits ?

Edit : je précise que le dossier vendor est créé et rempli de fichiers des dépendances après la tentative d'installation, mais accéder au dossier pretty ne renvoie qu'à une page vide. Modifier les droits du dossier en 775 n'a rien changé

Re: Utilisation de composer

Hello,

J'ai pu reproduire ton souci. Ton installation de composer semble correcte. Il ne semble pas s'agir d'un problème de droits (j'ai d'ailleurs rétabli les permissions). Il est encore trop tôt pour dire si l'architecture de TuxFamily est responsable de ce souci.
Les installations échouent également avec --no-dev, qui réduit le nombre de paquets à installer à... deux. Idem en enlevant la variable d'environnement COMPOSER_HOME.
Même en -vvv, composer ne semble pas disposé à dire pourquoi les installations échouent.
Je ne compte pas autant de commandes en "exit 1" que de failed, j'en déduis que les commandes exécutées ne sont pas le cœur du souci. Par contre, il y a effectivement pas mal de rmdir() qui terminent en ENOTEMPTY, ce qui me fait songer à un problème de chemin.
Je continue de creuser le sujet...

Re: Utilisation de composer

Eh bien, oui, il s'agit peut-être d'un souci induit par l'architecture TuxFamily : en effet, si je déporte le dossier de destination des paquets vers /tmp:

mkdir /tmp/dest
chgrp arcenterre1 /tmp/dest
chmod +s /tmp/dest
COMPOSER_VENDOR_DIR=/tmp/dest ~/arcenterre1/tools/composer/composer.phar install
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Package operations: 26 installs, 0 updates, 0 removals
  - Installing bcosca/fatfree (3.7.1): Extracting archive
  - Installing doctrine/lexer (1.2.0): Extracting archive
  - Installing ezyang/htmlpurifier (v4.12.0): Extracting archive
  - Installing psr/container (1.0.0): Extracting archive
  - Installing symfony/service-contracts (v2.0.1): Extracting archive
  - Installing symfony/stopwatch (v5.0.2): Extracting archive
  - Installing symfony/process (v5.0.2): Extracting archive
  - Installing symfony/polyfill-php72 (v1.13.1): Extracting archive
  - Installing paragonie/random_compat (v9.99.99): Extracting archive
  - Installing symfony/polyfill-php70 (v1.13.1): Extracting archive
  - Installing symfony/options-resolver (v5.0.2): Extracting archive
  - Installing symfony/finder (v5.0.2): Extracting archive
  - Installing symfony/polyfill-ctype (v1.13.1): Extracting archive
  - Installing symfony/filesystem (v5.0.2): Extracting archive
  - Installing psr/event-dispatcher (1.0.0): Extracting archive
  - Installing symfony/event-dispatcher-contracts (v2.0.1): Extracting archive
  - Installing symfony/event-dispatcher (v5.0.2): Extracting archive
  - Installing symfony/polyfill-php73 (v1.13.1): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.13.1): Extracting archive
  - Installing symfony/console (v5.0.2): Extracting archive
  - Installing php-cs-fixer/diff (v1.3.0): Extracting archive
  - Installing doctrine/annotations (v1.8.0): Extracting archive
  - Installing psr/log (1.1.2): Extracting archive
  - Installing composer/xdebug-handler (1.4.0): Extracting archive
  - Installing composer/semver (1.5.0): Extracting archive
  - Installing friendsofphp/php-cs-fixer (v2.16.1): Extracting archive
Generating autoload files
htdocs/pretty$ ls -al /tmp/dest/
total 356
drwsr-sr-x   12 arcenterre arcenterre1   4096 Jun 29 19:57 .
drwxrwxrwt 9396 root       root        311296 Jun 29 19:57 ..
-rw-r--r--    1 arcenterre arcenterre1    178 Jun 29 19:57 autoload.php
drwxr-sr-x    3 arcenterre arcenterre1   4096 Jun 29 19:57 bcosca
drwxr-sr-x    2 arcenterre arcenterre1   4096 Jun 29 19:57 bin
drwxr-sr-x    4 arcenterre arcenterre1   4096 Jun 29 19:57 composer
drwxr-sr-x    4 arcenterre arcenterre1   4096 Jun 29 19:57 doctrine
drwxr-sr-x    3 arcenterre arcenterre1   4096 Jun 29 19:57 ezyang
drwxr-sr-x    3 arcenterre arcenterre1   4096 Jun 29 19:57 friendsofphp
drwxr-sr-x    3 arcenterre arcenterre1   4096 Jun 29 19:57 paragonie
drwxr-sr-x    3 arcenterre arcenterre1   4096 Jun 29 19:57 php-cs-fixer
drwxr-sr-x    5 arcenterre arcenterre1   4096 Jun 29 19:57 psr
drwxr-sr-x   16 arcenterre arcenterre1   4096 Jun 29 19:57 symfony

À la lecture de https://getcomposer.org/doc/03-cli.md#c … untime-env , je soupçonne Composer de faire des choses un peu spéciales pour aller toujours plus vite, butant ainsi sur une subtilité indéfinie de vhffsfs, notre filesystem virtuel utilisé pour les manipulations en SSH. À creuser.
En attendant, il doit suffire de déplacer le contenu de /tmp/dest dans le dossier pretty/vendor (ce que j'ai fait).
Et de fait, https://arcenterre.tuxfamily.org/pretty/signIn reflète désormais mieux qu'une page vide.

Re: Utilisation de composer

Génial, merci beaucoup ! Je vais documenter ceci sur la page https://faq.tuxfamily.org/WebArea/Compat/Composer/En.