Вопрос или проблема
У меня мало знаний об Ubuntu 14.04.
Мне нужно установить Node.js. Ubuntu, который я использую, — это большая система для организации, поэтому у меня нет доступа к sudo
, но я заметил, что npm 1.3.10 установлен.
Я ищу последовательность команд для установки Node.js в мой пользовательский каталог. Я скачал Node.js
отсюда на nodejs.org (версия LTS, 64 бита) по пути ~/Downloads/node-v8.9.1-linux-x64.tar.xz
. Что мне делать дальше?
Для установки Node.js и npm локально без использования sudo откройте терминал и введите:
echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
wget -c http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=~/local
make install
wget -c https://www.npmjs.org/install.sh | sh
Пакет curl не установлен в Ubuntu по умолчанию. Если у вас нет curl на системе, замените все вхождения curl
в файле install.sh на wget -c
и сохраните изменения в файле install.sh перед его запуском.
Это установит node-v9.2.0, который является более поздней версией Node.js, чем файл, который вы уже скачали.
Я работаю таким образом – в 2 шага.
Шаг 1: Скачайте и извлеките бинарные файлы nodejs
# создайте каталог, где вы хотите установить node js
mkdir ~/nodejs-latest
# скачайте и извлеките бинарные файлы nodejs в созданный каталог
cd ~/nodejs-latest
wget -c http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
Шаг 2: Установите PATH и источник
# добавьте следующие строки в файл ~/.bashrc
export NODE_HOME=~/nodejs-latest
export PATH=$PATH:$NODE_HOME/bin
# обновите переменные окружения
source ~/.bashrc
Вы можете проверить установку nodejs с помощью node --version
и npm --version
.
NodeJS упомянул простой процесс на их официальном сайте:
# Скачайте и установите nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
# вместо перезапуска оболочки
\. "$HOME/.nvm/nvm.sh"
# Скачайте и установите Node.js:
nvm install 22
# Проверьте версию Node.js:
node -v # Должен вывести "v22.14.0".
nvm current # Должен вывести "v22.14.0".
# Проверьте версию npm:
npm -v # Должен вывести "10.9.2".
Источник: https://nodejs.org/en/download
Мне нравится использовать группы Ubuntu для достижения этой цели. Это довольно просто.
-
Сначала установите nodejs и npm с помощью apt-get
sudo apt-get update && sudo apt-get install nodejs npm
-
Узнайте, кто вошел в систему, то есть имя пользователя, выполните следующую команду, чтобы увидеть его в терминале
whoami
-
Вы можете увидеть список групп, к которым вы принадлежите, с помощью очень простой команды; обычно первая группа — это ваше имя пользователя
groups
-
Выполните следующее, чтобы предоставить доступ вошедшему пользователю
sudo chmod 777 -R /usr/local && sudo chgrp $(whoami) -R /usr/local
-
Обновите npm и nodejs
npm install -g npm
Вы все готовы, ваш пользователь может запускать команды npm без sudo
Вы также можете обратиться к npm возникает ошибка без sudo.
.
Ответ или решение
Чтобы установить Node.js без прав суперпользователя (sudo), но используя уже установленную устаревшую версию npm 1.3.10 на Ubuntu 14.04, необходимо воспользоваться альтернативными способами установки. Рассмотрим пошаговую инструкцию по установке Node.js в локальный каталог пользователя. В качестве примера будем использовать скачанный файл node-v8.9.1-linux-x64.tar.xz
.
Теория
Когда у вас нет доступа к системным каталогам или правам суперпользователя, можно установить Node.js в пользовательский каталог. Несмотря на ограничения операционной системы, можно эффективно управлять необходимыми версиями Node.js и npm, используя локальные ресурсы. Этот подход требует ручной настройки окружения и работа с переменными PATH для использования локально установленных версий программ.
Пример
-
Создание необходимых директорий и распаковка Node.js:
-
Сначала создайте каталог
~/local
, где будут храниться бинарные файлы Node.js, и~/node-latest-install
для временной установки. Используйте следующие команды:mkdir -p ~/local mkdir ~/node-latest-install
-
Далее скопируйте загруженный tar.xz файл в
~/node-latest-install
и разархивируйте его:cp ~/Downloads/node-v8.9.1-linux-x64.tar.xz ~/node-latest-install cd ~/node-latest-install tar -xvf node-v8.9.1-linux-x64.tar.xz
-
Создайте необходимые структурные каталоги:
mkdir -p ~/local/bin
-
-
Настройка PATH и среды для использования локальной версии Node.js:
-
В
~/.bashrc
(или~/.bash_profile
в зависимости от используемой системной оболочки) добавьте следующие строки, чтобы новые исполняемые файлы были видимы в системе:echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc echo 'export NODE_HOME=$HOME/node-latest-install/node-v8.9.1-linux-x64' >> ~/.bashrc echo 'export PATH=$NODE_HOME/bin:$PATH' >> ~/.bashrc
-
Обновите текущие настройки окружения:
source ~/.bashrc
-
-
Установка npm без sudo:
-
Поскольку npm 1.3.10 уже установлен и может не поддерживать современные функции или библиотеки, рекомендуется обновить npm до последней версии без использования sudo:
curl -L https://www.npmjs.com/install.sh | bash
-
Это может произойти из-за ограничения прав, поэтому имейте в виду, что могут потребоваться дополнительные настройки, такие как использование менеджера версий Node (NVM), если потребуется обновление npm до более поздней версии.
-
-
Проверка установки:
-
Убедитесь, что Node.js и npm настроены правильно, выполнив проверочные команды:
node --version npm --version
-
Применение
Теперь у вас должна быть рабочая установка Node.js в пользовательском каталоге, доступная без использования прав суперпользователя. Такая настройка позволяет устанавливать и обновлять зависимости локально, обеспечивая независимость от системно администрируемых версий Node.js и npm. Это может быть особенно полезно при работе в крупных организациях с ограниченным доступом к системным ресурсам.
Если впоследствии вам понадобится переключаться между разными версиями Node.js или сталкиваться с проблемами в совместимости, можно рассмотреть установку nvm (Node Version Manager) по схеме, описанной выше, чтобы управлять различными версиями Node.js без прав суперпользователя. Однако в данном случае, с фокусом на использование имеющихся инструментов, предложенный подход служит эффективным и надежным решением для локального управления Node.js.