Возможна установка npm с помощью nvm, но при установке npm не найдена возвращаемая команда npm - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь установить npm с помощью nvm с помощью скрипта ansible playbook в Ubuntu 18.04.2 LTS. Он устанавливается, но при запуске команды npm install возвращает ошибку ["/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)

1 Ответ

0 голосов
/ 28 июня 2019

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

Похоже на /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
...