Установка node 14 на CentOS 7, как это работает?

Вопрос или проблема

Код для установки node 14 на centos7:

RUN curl -sL https://rpm.nodesource.com/setup_14.x | bash -
RUN yum -y install nodejs 

Как это работает? Первая команда загружает пакет. Где он хранится? Как вторая команда устанавливает nodejs из загруженного пакета? Спасибо.

В чем разница между bash и bash -?

ОБНОВЛЕНИЕ: Если кто-то пришел к этому вопросу в поисках установки node на centos7, вот фрагмент кода, который получает точную версию с сайта NodeJS.

RUN wget https://nodejs.org/download/release/v14.17.0/node-v14.17.0-linux-x64.tar.gz && \
    tar xf node-v14.17.0-linux-x64.tar.gz -C /opt/ && \
    rm node-v14.17.0-linux-x64.tar.gz
ENV PATH=/opt/node-v14.17.0-linux-x64/bin:$PATH
RUN npm config set cache /tmp --global

  1. Похоже, первая команда curl загружает инструкции rpm с указанного URL.
  2. Команда bash выполняет эти инструкции rpm и, вероятно, сохраняет пакет NPM 14.x в локальном реестре RPM.
  3. Команда yum install nodejs устанавливает nodejs из локального реестра RPM.

Эквивалентный синтаксис wget:

RUN wget -O - https://rpm.nodesource.com/setup_14.x | bash
RUN yum -y install nodejs 

А чтобы скачать конкретную версию NodeJS с официального сайта, вот она:

RUN wget https://nodejs.org/download/release/v14.17.0/node-v14.17.0-linux-x64.tar.gz && \
    tar xf node-v14.17.0-linux-x64.tar.gz -C /opt/ && \
    rm node-v14.17.0-linux-x64.tar.gz
ENV PATH=/opt/node-v14.17.0-linux-x64/bin:$PATH
RUN npm config set cache /tmp --global

Ответ или решение

Установка Node.js 14 на CentOS 7: Подробное объяснение

Установка Node.js 14 на операционной системе CentOS 7 может быть выполнена с использованием предоставленного скрипта, который состоит из двух команд:

RUN curl -sL https://rpm.nodesource.com/setup_14.x | bash -
RUN yum -y install nodejs 

Как это работает?

  1. Первый шаг — загрузка и выполнение скрипта установки:

    Команда curl -sL https://rpm.nodesource.com/setup_14.x | bash - выполняет следующие действия:

    • curl загружает скрипт настройки RPM (файлы пакетов) с сервера NodeSource, который является официальным создателем пакетов Node.js для различных дистрибутивов Linux.
    • Флаг -sL для curl указывает, что необходимо работать в бесшумном режиме (-s) и следовать перенаправлениям (-L), если они имеются.
    • Загрузка происходит в память, так как данные передаются через пайп (|) сразу на выполнение в интерпретаторе bash.
    • Взаимодействие с сервером происходит временно, и после завершения выполнения скрипта загруженные данные не хранятся на диске.
  2. Второй шаг — установка Node.js:

    Команда yum -y install nodejs выполняет установку Node.js:

    • yum — это менеджер пакетов для систем на основе RPM, который упрощает установку и управление пакетами программного обеспечения.
    • В результате выполнения предыдущей команды в локальный репозиторий yum будут добавлены информацию и зависимости для установки Node.js 14.
    • Флаг -y позволяет автоматизировать процесс, соглашаясь со всеми запросами на подтверждение.
    • После выполнения этой команды Node.js установится вместе с npm (Node Package Manager), если он включен в пакет Node.js.

Разница между bash и bash -

Когда вы используете bash, это просто запускает интерпретатор bash, который может выполнять скрипты. Используя bash -, вы указываете интерпретатору, что он должен работать в "интерактивном режиме" с входными данными со стандартного ввода. Однако в данном случае эта разница незначительна, так как оба способа вызывают выполнение скрипта без дополнительных параметров, и результат будет одинаковым в контексте выполнения скрипта установки.

Альтернативный способ установки Node.js с использованием wget

Также можно установить Node.js, загружая его непосредственно с сайта официальной документации Node.js. Пример команд может выглядеть следующим образом:

RUN wget https://nodejs.org/download/release/v14.17.0/node-v14.17.0-linux-x64.tar.gz && \
    tar xf node-v14.17.0-linux-x64.tar.gz -C /opt/ && \
    rm node-v14.17.0-linux-x64.tar.gz
ENV PATH=/opt/node-v14.17.0-linux-x64/bin:$PATH
RUN npm config set cache /tmp --global
  1. Здесь wget загружает архив сNode.js версии 14.17.0 и распаковывает его в каталог /opt/.
  2. После этого архивный файл удаляется для освобождения места на диске.
  3. ENV добавляет путь к бинарным файлам Node.js в переменную PATH, что позволяет запускать Node.js и npm из любого места в командной строке.
  4. Установка кэша npm в временную директорию упрощает управление зависимостями.

Таким образом, установка Node.js на CentOS 7 может быть выполнена несколькими способами, но оба подхода обеспечивают установку необходимого программного обеспечения для дальнейшей разработки приложений на JavaScript с использованием Node.js.

Оцените материал
Добавить комментарий

Капча загружается...