2016-10-26 4 views
0

У меня есть следующие bitbucket.pipelines.yml:Почему «apt-get install nodejs -y» не устанавливает npm?

image: python:3.5.1 

pipelines: 
    branches: 
    master: 
     - step: 
      script: 
      - apt-get update 
      - apt-get install nodejs -y 
      - npm install 
      - npm run build 
      - python get-pip.py 
      - pip install boto3==1.3.0 
      - python s3_upload.py io-master.fromthiscomesthat.co.uk dist io-master 

Установив узел, сборка затем терпит неудачу, пытаясь запустить npm:

+ npm install 
bash: npm: command not found 

Я полагаю, это потому, что npm не в пути. Или что-то. Мои навыки Ubuntu/UNIX не самые лучшие.

Как добавить установку в путь?

Update

Ok, после того, как много возился мой YAML теперь выглядит следующим образом:

image: python:3.5.1 

pipelines: 
    branches: 
    master: 
     - step: 
      script: 
      - apt-get update 
      - apt-get install lsb-release -y 
      - curl --silent https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - 
      - VERSION=node_5.x 
      - DISTRO="$(lsb-release -s -c)" # <--- error here 
      - echo "deb https://deb.nodesource.com/$VERSION $DISTRO main" | tee /etc/apt/sources.list.d/nodesource.list 
      - echo "deb-src https://deb.nodesource.com/$VERSION $DISTRO main" | tee -a /etc/apt/sources.list.d/nodesource.list 
      - apt-get update 
      - apt-get install nodejs -y 
      - npm install 
      - npm run build 
      - python get-pip.py 
      - pip install boto3==1.3.0 
      - python s3_upload.py io-master.fromthiscomesthat.co.uk dist io-master 

Теперь у меня есть меньше проблемы. lsb-release не найден, хотя установщик устанавливает его правильно. Это проблема пути ?; как я могу выполнить это, когда я не знаю, где он установлен? Его трудно отлаживать, потому что он работает в экземпляре докера на Bitbucket.

ответ

4

Ubuntu содержит версию Node.js в своих репозиториях по умолчанию, которые могут быть использованы, но в нее входит только двоичный файл узла. Если вы хотите установить npm вы можете это сделать, набрав:

apt-get install npm

Однако, я рекомендую вам добавить PPA (персональный пакет архив) поддерживается NodeSource. Это, вероятно, будет иметь более современные версии Node.js, чем официальные репозитории Ubuntu.

Вам необходимо установить PPA, чтобы получить доступ к его содержимому, а затем вы можете установить пакет nodejs так же, как вы это делали выше.

curl -sL https://deb.nodesource.com/setup | sudo bash - 
sudo apt-get install nodejs 

Используя эту опцию, nodejs пакет содержит nodejs бинарник, а также НПМ, так что вам не нужно устанавливать отдельно НПМ.

+0

Это замечательно, спасибо; однако у меня есть еще одна проблема, о которой я говорил выше. Есть идеи? – serlingpa

Смежные вопросы