geerlingguy / drupal-vm

A VM for Drupal development
https://www.drupalvm.com/
MIT License
1.37k stars 647 forks source link

Run Composer installer skipping #2161

Closed humour-picasso closed 3 years ago

humour-picasso commented 3 years ago

Issue Type

Your Environment

Vagrant 2.2.15
VirtualBox 6.1.16_Ubuntur140961
ansible 2.9.6

Your OS

Full console output

TASK [geerlingguy.composer : Run Composer installer.] ** skipping: [xxxx]

Summary

I add composer_version: '2.0.12' in config.yml but skipped the task Run Composer install. How can I make my config.yml take effect and install composer 2.0.12

geerlingguy commented 3 years ago

That will be skipped if Composer is already installed; see: https://github.com/geerlingguy/ansible-role-composer/blob/master/tasks/main.yml#L7-L9

If you want to update an existing composer installation you'd need to set the variable to keep it updated: https://github.com/geerlingguy/ansible-role-composer/blob/master/tasks/main.yml#L38-L43

humour-picasso commented 3 years ago

That will be skipped if Composer is already installed; see: https://github.com/geerlingguy/ansible-role-composer/blob/master/tasks/main.yml#L7-L9

If you want to update an existing composer installation you'd need to set the variable to keep it updated: https://github.com/geerlingguy/ansible-role-composer/blob/master/tasks/main.yml#L38-L43

Thank you very much for your reply, I tried configuring composer_keep_updated: true and now it`s working

BatXie commented 3 years ago

I met the same issue, but for me, I want to install a composer in branch 1. But it seems that drupal-vm installed a composer in branch 2 by default. Due to that the installation of composer is skipped. Here is my question, does there have a way to specify the version of composer?

For those who may see this comment:

I didn't find a way to specify a version of 1.x, but by composer_version_branch: '--1' and composer_keep_updated: true, I can get the latest version of composer in branch 1. Because when composer finding a update it will trigger composer self update <composer_version_branch>.

The document says I can specify the version via composer_version: '', but that didn't work for me.

webprogrammierer commented 2 years ago

I get the same error on vagrant provision:

"stderr": "Warning from https://repo.packagist.org: Support for Composer 1 is deprecated and some packages will not be available. You should upgrade to Composer 2.

Is there a solution in the meantime?

webprogrammierer commented 2 years ago

After adding composer_keep_updated: true i get this error:

"stderr": "The \"hirak/prestissimo\" plugin (installed globally) was skipped because it requires a Plugin API version (\"^1.0.0\") that does not match your Composer installation (\"2.1.0\"). You may need to run composer update with the \"--no-plugins\" option.\n\n

webprogrammierer commented 2 years ago

On second run I get this error:

TASK [geerlingguy.drupal : Move Drupal project files to drupal_composer_install_dir (this may take a while).] ***
fatal: [drupalvm3]: FAILED! => {"changed": true, "cmd": ["cp", "-r", "/tmp/composer-project/.", 
"/var/www/drupalvm/drupal/"], "delta": "0:01:08.630048", "end": "2021-12-18 11:22:49.660347", "msg": "non-zero return 
code", "rc": 1, "start": "2021-12-18 11:21:41.030299", "stderr": "cp: cannot create symbolic link 
'/var/www/drupalvm/drupal/./vendor/bin/var-dump-server': Protocol error", "stderr_lines": ["cp: cannot create symbolic 
link '/var/www/drupalvm/drupal/./vendor/bin/var-dump-server': Protocol error"], "stdout": "", "stdout_lines": []}

Ist this symbolic link necessary?