возможна установка npm с использованием nvm, но возврат команды npm, не найденной при установке npm

Я пытаюсь установить npm с nvm, используя скрипт ansible playbook на Ubuntu 18.04.2 LTS. Он устанавливается, но при запуске команды установки npm возвращает ошибку ["/bin/bash: npm: command not found"]

это сценарий

- name: Create destination dir if it does not exist
    file:
      mode: 0775
      path: "/usr/local/nvm"
      state: directory
    when: "nvm_dir != ''"

  - name: Install NVM
    shell: "curl https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | NVM_SOURCE="" NVM_DIR=/usr/local/nvm PROFILE=/root/.bashrc bash"
    args:
      warn: false
    register: nvm_result

Это репозиторий, в котором я получаю код (https://github.com/morgangraphics/ansible-role-nvm)


person Mohammad Quadri    schedule 28.06.2019    source источник


Ответы (1)


По умолчанию модуль оболочки использует /bin/sh, если исполняемый файл не был явно определен в модуле с помощью args/keyword.

Похоже, что /bin/bash (вариант оболочки не установлен на хосте), что приводит к ошибке. Скрипту нужен bin/bash.

bin/bash обычно устанавливается во всех операционных системах. Может быть проблема с путями.

Также обновлен код ниже с условием.

---
- hosts: localhost
  tasks:
    - name: Create destination dir if it does not exist
      file:
        mode: 0775
        path: "/usr/local/nvm"
        state: directory
      when: "nvm_dir is not defined"

    - name: Install NVM
      shell: 'curl https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | NVM_SOURCE="" NVM_DIR=/usr/local/nvmPROFILE=/root/.bashrc bash'
      args:
        warn: false
      register: nvm_result
person error404    schedule 28.06.2019